Я использую следующую политику сегментации:
{ "Версия": "2012-10-17", "Идентификатор": "Policy1566337631537", "Заявление": [ { "Сид": "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 псевдоним/ExampleAlias
Если я использую key-id arn, политика работает. Разве нельзя использовать key-alias в политике bucket?
Спасибо
решение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