Amazon S3 バケットからオブジェクトをダウンロードまたはコピーしたときに、「暗号文で、存在しない、このリージョンに存在しない、またはアクセスが許可されていないカスタマーマスターキーが指定されています。」というエラーが表示されるのはなぜですか?

所要時間2分
0

Amazon Simple Storage Service (Amazon S3) バケットからオブジェクトをダウンロードまたはコピーしようとすると、次のエラーが表示されます: 暗号文で、存在しない、このリージョンに存在しない、またはアクセスが許可されていないカスタマーマスターキーが指定されています。

解決策

このエラーは、次の両方の条件に当てはまる場合に表示されます。

  • リクエストを行うバケットに保存されているオブジェクトが、AWS Key Management Service (AWS KMS) キーで暗号化されている。
  • リクエストを行う AWS Identity and Access Management (IAM) ロールまたはユーザーに、オブジェクトの暗号化に使用される AWS KMS キーにアクセスするための十分なアクセス権限がない。

注: AWS コマンドラインインターフェイス (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
}

出力の SSEKEMSKeyId フィールドに、オブジェクトの暗号化に使用された 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公式
AWS公式更新しました 10ヶ月前
コメントはありません

関連するコンテンツ