¿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?
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:
- Su usuario o rol de AWS Identity and Access Management (IAM) tiene el permiso s3:PutObject en el bucket.
- Su clave de AWS KMS no tiene el alias «aws/s3». Este alias no se puede usar para el cifrado predeterminado del bucket si las entidades principales de IAM de varias cuentas están cargando los objetos. Para obtener más información sobre la administración de políticas y claves de AWS KMS, consulte Protección de los datos con el cifrado del lado del servidor con claves de AWS Key Management Service (SSE-KMS).
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
Vídeos relacionados
Contenido relevante
- OFICIAL DE AWSActualizada hace 2 años
- OFICIAL DE AWSActualizada hace un año
- OFICIAL DE AWSActualizada hace 8 meses