
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-id
clave 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 elarn:aws:kms:region:acct-id:key/key-id
formato.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