¿Por qué recibo un mensaje de error de acceso denegado cuando cargo archivos a mi bucket de Amazon S3 con el cifrado predeterminado de AWS KMS?

4 minutos de lectura
0

Mi bucket de Amazon Simple Storage Service (Amazon S3) tiene el cifrado predeterminado de AWS Key Management Service (AWS KMS). Estoy intentando cargar archivos al bucket, pero Amazon S3 muestra un mensaje de error de acceso denegado. ¿Cómo puedo solucionar este problema?

Resolución

Primero, confirme:

A continuación, actualice los permisos de AWS KMS de su usuario o rol de IAM en función del mensaje de error que reciba.

Importante:

  • Si la clave de AWS KMS y el rol de IAM pertenecen a cuentas de AWS diferentes, se deben actualizar la política de IAM y la política de claves de KMS. Asegúrese de añadir los permisos de KMS tanto a la política de IAM como a la política de claves de KMS.
  • Para utilizar una política de IAM para controlar el acceso a una clave de KMS, la política de claves de la clave de KMS debe conceder a la cuenta permiso para usar las políticas de IAM.

«An error occurred (AccessDenied) when calling the PutObject operation: Access Denied»

Este mensaje de error indica que su usuario o rol de IAM necesita permiso para la acción kms:GenerateDataKey.

Siga estos pasos para añadir permisos a kms:GenerateDataKey:

1.    Abra la consola de IAM.

2.    Elija el usuario o el rol de IAM que va a utilizar para cargar archivos al bucket de Amazon S3.

3.    En la pestaña Permisos, expanda cada política para ver su documento de política de JSON.

4.    En los documentos de política de JSON, busque las políticas relacionadas con el acceso a AWS KMS. Revise las instrucciones con "Effect": "Allow" para comprobar si el usuario o el rol tienen permisos para la acción kms:GenerateDataKey en la clave de AWS KMS del bucket.

5.    Si falta este permiso, agréguelo a la política correspondiente. Para obtener instrucciones, consulte Adición de permisos a un usuario (consola) o Modificación de una política de permisos de rol (consola).

6.    En los documentos de política de JSON, busque las instrucciones con el texto "Effect": "Deny". Confirme que esas instrucciones no deniegan la acción s3:PutObject en el bucket. Las instrucciones no deben denegar al usuario o rol de IAM el acceso a la acción kms:GenerateDataKey en la clave utilizada para cifrar el bucket. Además, los permisos de KMS y S3 requeridos no deben restringirse al utilizar las políticas de punto de conexión de VPC, las políticas de control de servicios, los límites de permisos o las políticas de sesión.

«An error occurred (AccessDenied) when calling the CreateMultipartUpload operation: Access Denied»

Este mensaje de error indica que su usuario o rol de IAM necesita permiso para las acciones kms:GenerateDataKey y kms:Decrypt.

Siga estos pasos para añadir permisos para las acciones kms:GenerateDataKey y kms:Decrypt:

1.    Abra la consola de IAM.

2.    Elija el usuario o el rol de IAM que va a utilizar para cargar archivos al bucket de Amazon S3.

3.    En la pestaña Permisos, expanda cada política para ver su documento de política de JSON.

4.    En los documentos de política de JSON, busque las políticas relacionadas con el acceso a AWS KMS. Revise las instrucciones con "Effect": "Allow" para verificar si el rol tiene permisos para las acciones kms:GenerateDataKey y kms:Decrypt en la clave de AWS KMS del bucket.

5.    Si faltan estos permisos, agréguelos a la política correspondiente. Para obtener instrucciones, consulte Adición de permisos a un usuario (consola) o Modificación de una política de permisos de rol (consola).

6.    En los documentos de política de JSON, busque las instrucciones con el texto "Effect": "Deny". A continuación, confirme que esas instrucciones no deniegan la acción s3:PutObject en el bucket. Las instrucciones no deben denegar al usuario o rol de IAM el acceso a las acciones kms:GenerateDataKey y kms:Decrypt en la clave utilizada para cifrar el bucket. Además, los permisos de KMS y S3 requeridos no deben restringirse al utilizar las políticas de punto de conexión de VPC, las políticas de control de servicios, los límites de permisos o las políticas de sesión.


Información relacionada

Establecer el comportamiento del cifrado predeterminado del lado del servidor para los buckets de Amazon S3

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años