跳至內容

當我從 Amazon S3 儲存貯體下載或複製物件時,為什麼會出現「密文指的是客戶主金鑰不存在、在此區域中不存在,或者不允許您進行存取」錯誤?

2 分的閱讀內容
0

當我嘗試從 Amazon Simple Storage Service (Amazon S3) 儲存貯體下載或複製物件時,出現以下錯誤: 密文指的是客戶主金鑰不存在、在此區域中不存在,或者不允許您進行存取。

解決方案

當以下兩個條件都成立時,您會收到此錯誤:

  • 儲存在您提出請求的儲存貯體中的物件是使用 AWS Key Management Service (KMS) 金鑰加密。
  • 提出請求的 AWS Identity and Access Management (IAM) 角色或使用者沒有足夠的權限,無法存取用於加密物件的 AWS KMS 金鑰。

**注意事項:**如果您在執行AWS Command Line Interface (AWS CLI) 命令時收到錯誤,請確定您使用的是最新的 AWS CLI 版本

您可以使用 AWS CLI 命令 head-object 檢查物件的加密:

aws s3api head-object --bucket my-bucket --key my-object

請務必在前面的命令中執行以下動作:

  • my-bucket 取代為您的儲存貯體的名稱。
  • my-object 取代為您的物件的名稱。

此命令輸出如下所示:

{
  "AcceptRanges": "bytes",
  "ContentType": "text/html",
  "LastModified": "Thu, 16 Apr 2015 18:19:14 GMT",
  "ContentLength": 77,
  "VersionId": "null",
  "ETag": "\"30a6ec7e1a9ad79c203d05a589c8b400\"",
  "ServerSideEncryption": "aws:kms",
  "Metadata": {},
  "SSEKMSKeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",
  "BucketKeyEnabled": true
}

輸出中的 SSekMSkeyID 欄位指定用來加密物件的 AWS KMS 金鑰。

若要解決此錯誤,請執行以下任一動作:

  • 請確定附加至 IAM 使用者或角色的政策具有必要的權限。範例:
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": [
      "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    ]
  }
}
  • 請確定 AWS KMS 政策具有必要的權限。範例:
{
  "Version": "2012-10-17",
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "AWS": "arn:aws:iam::AWS-account-ID:user/user-name-1"
    },
    "Action": [
      "kms:DescribeKey",
      "kms:GenerateDataKey",
      "kms:Decrypt"
    ],
    "Resource": "*"
  }
}

如果 IAM 使用者或角色和 AWS KMS 金鑰來自不同的 AWS 帳戶,請確認以下事項:

  • 附加到 IAM 實體的政策具有必要的 AWS KMS 權限。
  • AWS KMS 金鑰政策會將所需的權限授與 IAM 實體。

**重要事項:**您無法在跨帳戶使用案例中使用 AWS 受管金鑰,因為無法修改 AWS 受管金鑰政策。

若要取得 AWS KMS 金鑰的詳細資訊,請執行 describe-key 命令:

aws kms describe-key --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

您還可以使用 AWS KMS 主控台檢視關於 AWS KMS 金鑰的詳細資料

**注意事項:**確定已啟用用來加密物件的 AWS KMS 金鑰。

相關資訊

我的 Amazon S3 儲存貯體具備使用自訂 AWS KMS 金鑰的預設加密功能。如何允許使用者從儲存貯體下載及上傳?

從 Amazon S3 下載 KMS 加密物件時,是否需要指定 AWS KMS 金鑰?

AWS 官方已更新 3 年前