AWS プライベート認証機関 (AWS プライベート CA) を更新して、証明書失効リスト (CRL) を設定しましたが、「ACM プライベート CA サービスプリンシパル 'acm-pca.amazonaws.com' には 's3:GetBucketAcl' アクセス許可が必要です」というエラーが表示されました。
簡単な説明
AWS プライベート CA は、ユーザーが使用するように指定した Amazon Simple Storage Service (Amazon S3) バケットに CRL を配置します。Amazon S3 バケットは、アタッチされたアクセス許可ポリシーによって保護する必要があります。許可されたユーザーとサービスプリンシパルには、AWS Private CA がバケットにオブジェクトを配置できるようにするための PUT アクセス許可と、オブジェクトを取得するための Get アクセス許可が必要です。詳細については、「Amazon S3 における CRL のアクセスポリシー」を参照してください。
解決策
注: AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、「AWS CLI で発生したエラーのトラブルシューティング」を参照してください。また、AWS CLI の最新バージョンを使用していることを確認してください。
デフォルトの Amazon S3 ポリシーを許容度の低いポリシーに置き換えるには、次の手順を実行します。
-
Amazon S3 コンソールを開きます。
-
バケットのリストから、CRL を配置するバケットを開きます。
-
[アクセス許可] タブを選択します。
-
[バケットポリシー] で、[編集] を選択します。
-
次のポリシーをコピーし、[ポリシー] に貼り付けます。
{
"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"
}
}
}
]
}
注: Resource の値は、お使いの Amazon S3 バケット名に置き換えます。aws:SourceAccount の値は、お使いのアカウント ID に置き換えます。aws:SourceArn の値は、実際の ARN に置き換えます。
-
[変更を保存] を選択します。
-
CRL を暗号化します。
-
update-certificate-authority コマンドを実行し、AWS プライベート CA の失効設定を更新します。
aws acm-pca update-certificate-authority --certificate-authority-arn Certification_Auhtority_ARN --revocation-configuration file://revoke_config.txt
注: Certification_Auhtority_ARN は、実際の ARN に置き換えます。
**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 失効設定を更新します。
関連情報
CloudFront で S3 の Block Public Access (BPA) を有効にする
Amazon S3 のセキュリティベストプラクティス
GetBucketAcl