我正在使用以下儲存桶策略:
{ "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