¿Necesito especificar la clave de AWS KMS al descargar un objeto cifrado con KMS de Amazon S3?

3 minutos de lectura
0

Quiero descargar objetos almacenados de Amazon Simple Storage Service (Amazon S3) que utilicen el cifrado del lado del servidor con claves gestionadas por AWS Key Management Service (SSE-KMS).

Solución

No necesita especificar el identificador de clave de AWS Key Management Service (AWS KMS) al descargar un objeto cifrado con SSE-KMS desde un bucket de S3. En su lugar, necesita el permiso para descifrar la clave de AWS KMS.

Cuando un usuario envía una solicitud GET, Amazon S3 debe comprobar la autorización correspondiente. Amazon S3 comprueba si el usuario o rol de AWS Identity and Access Management (IAM) que envió la solicitud está autorizado para descifrar la clave del objeto. Si el usuario o el rol de IAM y la clave pertenecen a la misma cuenta de AWS, la política de claves debe conceder permisos de descifrado.

Nota: Cuando el usuario o rol de IAM y la clave de KMS estén en la misma cuenta, puede usar las políticas de IAM para controlar el acceso a la clave. Sin embargo, debe modificar la política de claves para activar explícitamente las políticas de IAM con el fin de permitir el acceso a la clave. Para obtener más información, consulte Uso de políticas de IAM con AWS KMS.

Si el usuario o el rol de IAM y la clave pertenecen a cuentas diferentes, debe conceder permisos de descifrado en la política del usuario de IAM y en la política de claves.

A continuación, se muestra un ejemplo de política de IAM que permite al usuario descifrar la clave de AWS KMS y también descargarla desde el bucket de S3:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "VisualEditor0",
      "Effect": "Allow",
      "Action": [
        "kms:Decrypt",
        "s3:GetObject"
      ],
      "Resource": [
        "arn:aws:kms:example-region-1:123456789012:key/example-key-id",
        "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*"
      ]
    }
  ]
}

A continuación, se muestra un ejemplo de declaración de política de claves que permite al usuario descifrar la clave:

{
  "Sid": "Allow decryption of the key",
  "Effect": "Allow",
  "Principal": {
    "AWS": [
      "arn:aws:iam::123456789012:user/Bob"
    ]
  },
  "Action": [
    "kms:Decrypt"
  ],
  "Resource": "*"
}

Nota: Para los usuarios o roles de IAM que pertenezcan a una cuenta diferente a la del bucket, la política de bucket también debe conceder al usuario acceso a los objetos. Por ejemplo, si el usuario necesita descargar desde el bucket, debe tener permiso para ejecutar la accións3:GetObject de la política del bucket.

Una vez tenga el permiso para descifrar la clave, puede descargar los objetos de S3 cifrados con la clave mediante la interfaz de la línea de comandos de AWS (AWS CLI). Ejecute un comando similar al siguiente:

aws s3api get-object --bucket DOC-EXAMPLE-BUCKET --key dir/example-object-name example-object-name

**Nota:**Si recibe errores al ejecutar los comandos de AWS CLI, asegúrese de utilizar la versión más reciente de AWS CLI.

Información relacionada

GetObject

get-object

Protección de datos mediante el cifrado del lado del servidor con las CMK almacenadas en AWS Key Management Service (SSE-KMS)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace un año