為什麼我在更新 ACM Private Certificate Authority CRL 組態時收到 Amazon S3 GetBucketAcl 許可錯誤?

上次更新日期:2022 年 06 月 08 日

我更新了 AWS Certificate Manager (ACM) Private Certificate Authority (CA) 以設定憑證撤銷清單 (CRL)。但收到了類似以下內容的錯誤:

"The ACM Private CA Service Principal 'acm-pca.amazonaws.com' requires 's3:GetBucketAcl' permissions." (ACM Private CA Service Principal 'acm-pca.amazonaws.com' 需要 's3:GetBucketAcl' 許可。)

如何解決此錯誤?

簡短描述

ACM Private CA 將 CRL 置於您指定要使用的 Amazon Simple Storage Service (Amazon S3) 儲存貯體中。您的 Amazon S3 儲存貯體必須由連接的許可政策提供保護。授權的使用者和服務主體需要 Put 許可,才能允許 ACM Private CA 將物件置於儲存貯體,以及 Get 許可才能進行擷取。

如需詳細資訊,請參閱 Amazon S3 中 CRL 存取政策

解決方案

請遵循這些指示,以下列較不寬鬆的政策取代預設的 Amazon S3 政策。

注意:如果您在執行 AWS Command Line Interface (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 撤銷組態。

此文章是否有幫助?


您是否需要帳單或技術支援?