我更新了我的 AWS Private Certificate Authority (AWS Private CA) 以配置证书吊销列表 (CRL)。但是,我收到了“The ACM Private CA Service Principal 'acm-pca.amazonaws.com' requires 's3:GetBucketAcl' permissions(ACM Private CA 服务主体“acm-pca.amazonaws.com”需要“s3:GetBucketAcl”权限)错误。
简短描述
AWS Private CA 将 CRL 放入您指定的 Amazon Simple Storage Service (Amazon S3) 存储桶中以供使用。必须使用附加的权限策略保护您的 Amazon S3 存储桶。授权用户和服务主体需要 Put 权限才能允许 AWS Private CA 将对象放入存储桶,并需要 Get 权限来检索这些对象。有关详细信息,请参阅 Amazon S3 中的 CRL 访问策略。
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要将默认 Amazon S3 策略替换为不太宽松的策略,请完成以下步骤:
-
打开 Amazon S3 控制台。
-
从存储桶列表中,打开要放置 CRL 的存储桶。
-
选择 Permissions(权限)选项卡。
-
在 Bucket policy(存储桶策略)中,选择 Edit(编辑)。
-
在 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"
}
}
}
]
}
**注意:**将 Resource(资源)的值替换为您的 Amazon S3 存储桶名称。将 aws:SourceAccount 的值替换为您的账户 ID。将 aws:SourceArn 的值替换为您的 ARN。
-
选择 Save changes(保存更改)。
-
加密您的 CRL。
-
运行 update-certificate-authority 命令以更新 AWS Private 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 中关闭了屏蔽公共访问权限 (BPA) 功能,则您可以指定 BUCKET_OWNER_FULL_CONTROL 或 PUBLIC_READ 作为值。
- 如果您使用 AWS 管理控制台配置 CRL,您可能会收到“ValidationException”错误。重复步骤 8,通过 AWS CLI 更新 CA 吊销配置。
相关信息
使用 CloudFront 启用 S3 屏蔽公共访问权限 (BPA)
Amazon S3 的安全防护最佳实践
GetBucketAcl