我正在嘗試在儲存桶策略中使用 kms 金鑰別名

我正在嘗試在儲存桶策略中使用 kms 金鑰別名

我正在使用以下儲存桶策略:

{ "Version": "2012-10-17", "Id": "Policy1566337631537", "Statement": [ { "Sid": "Stmt156", "Effect": "Deny", "Principal": "Stmt156", "Effect": "Deny", "Principal": "", "操作": "s3:PutObject", "資源": "arn:aws:s3:::jmalacho-test-bucket23/*", "條件": { "StringNotEquals": { "s3:x-amz-server-side-加密-aws-kms -key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }

然後,當我嘗試使用 CLI 上傳檔案時,出現「拒絕存取」錯誤。

aws s3 cpnotes.txt s3://jmalacho-test-bucket23/notes.txt --sse aws:kms --sse-kms-key-id 別名/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/UsingKMSEncryption.html

別名與上面提到的需要「特定 KMS 金鑰」的概念不一致,因為別名不引用特定金鑰,除非別名恰好指向該金鑰時短暫地引用。

也:

僅在下列操作中可使用別名作為KeyId參數的值:

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

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

相關內容