バケットポリシーで kms キーエイリアスを使用しようとしています

バケットポリシーで kms キーエイリアスを使用しようとしています

次のバケット ポリシーを使用しています。

{ "バージョン": "2012-10-17", "Id": "Policy1566337631537", "ステートメント": [ { "Sid": "Stmt156", "効果": "拒否", "プリンシパル": ""、"アクション": "s3:PutObject"、"リソース": "arn:aws:s3:::jmalacho-test-bucket23/*", "条件": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }

その後、CLI を使用してファイルをアップロードしようとすると、アクセス拒否エラーが発生します。

aws s3 cp notes.txt s3://jmalacho-test-bucket23/notes.txt --sse aws:kms --sse-kms-key-id alias/ExampleAlias

key-id arn を使用すると、ポリシーは機能します。バケット ポリシーでキー エイリアスを使用することはできませんか?

ありがとう

答え1

ドキュメントではそれができないと示されています。

Amazon S3 はs3:x-amz-server-side-encryption-aws-kms-key-id条件キーもサポートしており、これを使用してオブジェクトの暗号化に特定の KMS キーを要求することができます。ポリシーで指定する KMS キーは、形式を使用する必要がありますarn:aws:kms:region:acct-id:key/key-id

https://docs.aws.amazon.com/AmazonS3/latest/dev/KMSEncryptionの使用.html

エイリアスは、一時的にエイリアスがたまたまキーを指している場合を除き、特定のキーを参照しないため、前述の「特定の KMS キー」を必要とするという概念と一致しません。

また:

次の操作でのみ、KeyId パラメータの値としてエイリアスを使用できます。

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

https://docs.aws.amazon.com/kms/latest/developerguide/programming-aliases.html

関連情報