Estoy intentando utilizar un alias de clave kms en una política de depósito

Estoy intentando utilizar un alias de clave kms en una política de depósito

Estoy usando la siguiente política de depósito:

{ "Versión": "2012-10-17", "Id": "Policy1566337631537", "Declaración": [ { "Sid": "Stmt156", "Efecto": "Denegar", "Principal": "", "Acción": "s3:PutObjeto", "Recurso": "arn:aws:s3:::jmalacho-test-bucket23/*", "Condición": { "StringNotEquals": { "s3:x-amz-server-side-encryption-aws-kms -key-id": "arn:aws:kms:us-east-2:123456789012:alias/ExampleAlias" } } } ] }

Luego, cuando intento cargar un archivo usando la CLI, aparece un error de Acceso denegado.

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

Si uso el key-id arn, la política funciona. ¿No es posible utilizar un alias de clave en una política de depósito?

Gracias

Respuesta1

La documentación sugiere que no es posible.

Amazon S3 también admite la s3:x-amz-server-side-encryption-aws-kms-key-idclave de condición, que puede utilizar para solicitar una clave KMS específica para el cifrado de objetos. La CMK que especifique en la política debe utilizar el arn:aws:kms:region:acct-id:key/key-idformato.

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

Un alias no sería coherente con el concepto de requerir "una clave KMS específica" como se mencionó anteriormente, ya que un alias no hace referencia a una clave específica, excepto de manera transitoria mientras el alias apunta a la clave.

También:

Puede utilizar un alias como valor del parámetro KeyId solo en las siguientes operaciones:

  • DescribeKey

  • Encrypt

  • GenerateDataKey

  • GenerateDataKeyWithoutPlaintext

  • ReEncrypt

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

información relacionada