Estou tentando usar um alias de chave kms em uma política de bucket

Estou tentando usar um alias de chave kms em uma política de bucket

Estou usando a seguinte política de bucket:

{ "Versão": "17/10/2012", "Id": "Policy1566337631537", "Declaração": [ { "Sid": "Stmt156", "Efeito": "Negar", "Principal": "", "Ação": "s3:PutObject", "Recurso": "arn:aws:s3:::jmalacho-test-bucket23/*", "Condição": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms -key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }

Então, quando tento fazer upload de um arquivo usando a CLI, recebo um erro de acesso negado.

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

Se eu usar o key-id arn, a política funciona. Não é possível usar um alias de chave em uma política de bucket?

Obrigado

Responder1

A documentação sugere que você não pode.

O Amazon S3 também oferece suporte à s3:x-amz-server-side-encryption-aws-kms-key-idchave de condição, que pode ser usada para exigir uma chave KMS específica para criptografia de objetos. A chave KMS especificada na política deve usar o arn:aws:kms:region:acct-id:key/key-idformato.

https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingKMSEncryption.html

Um alias não seria consistente com o conceito de exigir "uma chave KMS específica", conforme mencionado acima, uma vez que um alias não se refere a uma chave específica, exceto temporariamente, enquanto o alias aponta para a chave.

Também:

Você pode usar um alias como valor do parâmetro KeyId somente nas seguintes operações:

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

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

informação relacionada