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 キーを指定する必要がありますか?