AWS Certificate Manager (ACM) のプライベート認証局 (CA) の証明書失効リスト (CRL) を作成しようとしています。どうすればよいですか?
簡単な説明
ACM プライベート CA は、使用するように指定した Amazon Simple Storage Service (Amazon S3) バケットに CRL を配置します。Amazon S3 バケットは、アタッチされた許可ポリシーによって保護されている必要があります。承認されたユーザーとサービスプリンシパルには、ACM プライベート CA がバケットにオブジェクトを配置することを許可する Put 許可と、それらのオブジェクトを取得するための Get 許可が必要です。
詳細については、「Access policies for CRLs in Amazon S3」(Amazon S3 の CRL のアクセスポリシー) を参照してください。
解決方法
次の手順に従って、Amazon S3 バケット、Amazon CloudFront ディストリビューションを作成し、CRL の CA を設定します。
注:
ステップ 1: BPA 設定を有効化した状態で新しい Amazon S3 バケットを作成する
1. Amazon S3 コンソールを開き、[Create bucket] (バケットを作成) を選択します。
2. [Bucket name] (バケット名) で、バケットの名前を入力します。
3. [Object Ownership] (オブジェクト所有権) で [ACLs enabled] (ACL 有効) を選択し、[Create bucket] (バケットを作成) を選択します。
4. [Buckets] (バケット) で、ステップ 3 で作成したバケットを選択します。
5. [Permissions] (許可) タブを選択します。
6. [Bucket policy] (バケットポリシー) で、[Edit] (編集) を選択します。
7. [Policy] (ポリシー) で、次のポリシーをコピーして貼り付けます。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "acm-pca.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:PutObjectAcl",
"s3:GetBucketAcl",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::your-crl-storage-bucket/*",
"arn:aws:s3:::your-crl-storage-bucket"
],
"Condition": {
"StringEquals": {
"aws:SourceAccount": "account",
"aws:SourceArn": "arn:partition:acm-pca:region:account:certificate-authority/CA_ID"
}
}
}
]
}
注: S3 バケット名、アカウント ID、ACM PCA ARN を変数に置き換えます。
8. [Save changes] (変更を保存) を選択します。
詳細については、[Creating a bucket] (バケットの作成) を参照してください。
ステップ 2: CloudFront ディストリビューションを作成する
1. CloudFront コンソールを開いてから、[Create Distribution] (ディストリビューションを作成) を選択します。
2. [Origin domain] (オリジンドメイン) で、前のステップで作成したバケットの名前を入力します。
3. [S3 bucket access] (S3 バケットアクセス) で、[Yes use OAI (bucket can restrict access to only CloudFront)] (はい、OAI を使用します (バケットは CloudFront のみへのアクセスを制限できます)) を選択します。
4. [Origin access identity] (オリジンアクセスアイデンティティ) で [Create new OAI] (新しい OAI を作成) を選択し、[Create] (作成) を選択します。
5. [Create distribution] (ディストリビューションを作成) を選択します。
詳細については、「Creating a distribution」(ディストリビューションの作成) を参照してください。
ステップ 3: CRL で CA を設定する
1. 次のような AWS CLI コマンド create-certificate-authority を使用して CA を作成します。
$ aws acm-pca create-certificate-authority --certificate-authority-configuration "KeyAlgorithm=RSA_2048,SigningAlgorithm=SHA256WITHRSA,Subject={CommonName=s3-bpa}" --certificate-authority-type "ROOT" --revocation-configuration "CrlConfiguration={Enabled=true,S3BucketName=examplebucket,ExpirationInDays=7,S3ObjectAcl=BUCKET_OWNER_FULL_CONTROL}" --region us-east-1
revoke_config.txt ファイルには、次のような失効情報が含まれています。
{
"CrlConfiguration": {
"Enabled": true,
"ExpirationInDays": integer,
"S3BucketName": "string",
"S3ObjectAcl": "BUCKET_OWNER_FULL_CONTROL"
}
}
注: AWS マネジメントコンソールを使用して CRL を設定した場合、「ValidationException」エラーが表示されることがあります。ステップ 1 を繰り返して、AWS CLI を使用して CA 失効設定を更新する
(オプション) ステップ 4: CRL を暗号化する
CRL を含む Amazon S3 バケットで自動暗号化またはカスタム暗号化を設定できます。手順については、「Encrypting your CRLs」(CRL の暗号化) を参照してください。
関連情報
Planning a certificate revocation list (CRL) (証明書失効リスト (CRL) を計画する)
How to securely create and store your CRL for ACM Private CA (ACM Private CA の CRL を安全に作成して保存する方法)
Security best practices for Amazon S3 (Amazon S3 のセキュリティベストプラクティス)
ACM Private CA best practices (ACM Private CA のベストプラクティス)