跳至内容

更新我的 AWS Private CA CRL 配置时,为什么会收到 Amazon S3 GetBucketACL 权限错误?

2 分钟阅读
0

我更新了我的 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 策略替换为不太宽松的策略,请完成以下步骤:

  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"
            }
          }
        }
      ]
    }

    **注意:**将 Resource(资源)的值替换为您的 Amazon S3 存储桶名称。将 aws:SourceAccount 的值替换为您的账户 ID。将 aws:SourceArn 的值替换为您的 ARN。

  6. 选择 Save changes(保存更改)。

  7. 加密您的 CRL。

  8. 运行 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_CONTROLPUBLIC_READ 作为值。
  • 如果您使用 AWS 管理控制台配置 CRL,您可能会收到“ValidationException”错误。重复步骤 8,通过 AWS CLI 更新 CA 吊销配置。

相关信息

使用 CloudFront 启用 S3 屏蔽公共访问权限 (BPA)

Amazon S3 的安全防护最佳实践

GetBucketAcl

AWS 官方已更新 1 年前