AWS Certificate Manager (ACM) プライベート認証局 (CA) を更新して、証明書失効リスト (CRL) を設定しました。しかし、次のようなエラーが表示されました。
「The ACM Private CA Service Principal 'acm-pca.amazonaws.com' requires 's3:GetBucketAcl' permissions.」(ACM プライベート CA サービスプリンシパル「acm-pca.amazonaws.com」には、「s3:GetBucketAcl」許可が必要です。)
このエラーを解決するにはどうすればよいですか?
簡単な説明
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 ポリシーを、次の許容度の低いポリシーに置き換えます。
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI の最新バージョンを使用していることを確認してください。
1. Amazon S3 コンソールを開きます。
2. バケットのリストから、CRL を配置するバケットを開きます。
3. [Permissions] (アクセス権限) タブを選択します。
4. [Bucket policy] (バケットポリシー) で [Edit] (編集) を選択します。
5. [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 を変数に置き換えます。
6. [Save changes] (変更を保存) を選択します。
7. 手順に従って CRL を暗号化します。
8. 次のような AWS CLI コマンド update-certificate-authority を使用して、CA 失効設定を更新します。
$ aws acm-pca update-certificate-authority --certificate-authority-arn <Certification_Auhtority_ARN> --revocation-configuration file://revoke_config.txt
revoke_config.txt ファイルには、次のような失効情報が含まれています。
{
"CrlConfiguration": {
"Enabled": <true>,
"ExpirationInDays": <7>,
"CustomCname": "<example1234.cloudfront.net>",
"S3BucketName": "<example-test-crl-bucket-us-east-1>",
"S3ObjectAcl": "<BUCKET_OWNER_FULL_CONTROL>"
}
}
注:
- Amazon S3 で Block Public Access (BPA) 機能を無効にした場合、値として BUCKET_OWNER_FULL_CONTROL または PUBLIC_READ のいずれかを指定できます。
- AWS マネジメントコンソールを使用して CRL を設定した場合、「ValidationException」エラーが表示されることがあります。ステップ 8 を繰り返し、AWS CLI を使用して CA 失効設定を更新します。
関連情報
Enabling the S3 Block Public Access (BPA) feature (S3 Block Public Access (BPA) 機能を有効にする)
Amazon S3 のセキュリティベストプラクティス
GetBucketAcl