¿Por qué no puedo subir un archivo grande a Amazon S3 con el cifrado de clave de AWS KMS?

3 minutos de lectura
0

Quiero cargar un archivo grande al bucket de Amazon Simple Storage Service (Amazon S3). En mi solicitud de carga, incluyo información de cifrado con una clave de AWS Key Management Service (AWS KMS). Sin embargo, aparece un error de acceso denegado.

Breve descripción

Confirme que tiene permiso para llevar a cabo acciones de kms:Decrypt en la clave de AWS KMS que utiliza para cifrar el objeto.

En el caso de archivos grandes, los comandos de S3 de alto nivel de la interfaz de la línea de comandos de AWS (AWS CLI), los AWS SDK y muchos programas de terceros llevan a cabo automáticamente una carga multiparte. Para usar una clave de AWS KMS para cifrar una carga multiparte, debe tener los permisos kms:GenerateDataKey y kms:Decrypt. Los permisos kms:GenerateDataKey le permiten iniciar la carga. Con los permisos de kms:Decrypt, puede cifrar las partes recién cargadas con la clave que utilizó para las partes anteriores del mismo objeto.

Nota: Después de cargar todas las partes, debe ensamblarlas para completar la operación de carga multiparte. Como las partes cargadas están cifradas en el servidor con una clave de AWS KMS, debe descifrar las partes del objeto antes de poder ensamblarlas. Por lo tanto, debe tener permisos kms:Decrypt para las solicitudes de carga multiparte que utilizan el cifrado del lado del servidor con claves de AWS KMS (SSE-KMS).

Resolución

Su rol y clave de AWS Identity and Access Management (IAM) pueden estar en la misma cuenta de AWS o en cuentas diferentes. Si su rol y clave de IAM están en la misma cuenta, puede especificar los permisos kms:Decrypt desde una política de IAM o una política de claves de AWS KMS. Si su rol y clave de IAM están en cuentas diferentes, debe especificar los permisos kms:Decrypt tanto en la clave como en la política de IAM.

Política de claves

Revise la política de claves de AWS KMS en la vista de políticas de la Consola de administración de AWS.

En la política de claves, busque las instrucciones en las que el ARN de su usuario o rol de IAM aparezca como entidad principal de AWS. El ARN tiene el formato siguiente: arn:aws:iam::111122223333:user/john.

A continuación, consulte la lista de acciones que permiten sus declaraciones de usuario o rol de IAM. En las cargas multiparte, la lista de acciones permitidas debe incluir kms:Decrypt con SSE-KMS.

Por ejemplo, la siguiente instrucción de una política de claves permite al usuario John llevar a cabo las acciones kms:Decrypt y kms:GenerateDataKey:

{  
            "Sid": "Allow use of the key",  
            "Effect": "Allow",  
            "Principal": {  
                "AWS": "arn:aws:iam::111122223333:user/john"  
            },  
            "Action": [  
                "kms:Decrypt",  
                "kms:GenerateDataKey"  
            ],  
            "Resource": "*"  
        },

Permisos de IAM

Para revisar los permisos que tiene en IAM, abra la consola de IAM y, a continuación, elija su usuario o rol de IAM.

Revise la lista de políticas de permisos que se aplican a su usuario o rol de IAM. Asegúrese de que se aplique una política que le permita llevar a cabo la acción kms:Decrypt en la clave que utiliza para cifrar el objeto:

{  
  "Version": "2012-10-17",  
  "Statement": {  
    "Effect": "Allow",  
    "Action": [  
      "kms:Decrypt",  
      "kms:GenerateDataKey"  
    ],  
    "Resource": [  
      "arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd"  
    ]  
  }  
}

Esta instrucción de ejemplo concede al usuario de IAM acceso para ejecutar kms:Decrypt y kms:GenerateDataKey en la clave arn:aws:kms:example-region-1:123456789098:key/111aa2bb-333c-4d44-5555-a111bb2c33dd.

Para obtener instrucciones sobre cómo actualizar los permisos de IAM, consulte Cambio de los permisos de un usuario de IAM.

Información relacionada

AWS Policy Generator

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 8 meses