¿Cómo puedo usar AWS KMS para cifrar una carpeta específica de mi bucket de Amazon S3?

3 minutos de lectura
0

Quiero cifrar una carpeta específica de mi bucket de Amazon Simple Storage Service (Amazon S3) con una clave de AWS Key Management Service (AWS KMS).

Resolución

Uso de la consola de Amazon S3

  1. Abra la consola de Amazon S3.
  2. Navegue hasta la carpeta que quiera cifrar.
    Advertencia: Si la carpeta contiene una gran cantidad de objetos, es posible que aparezca un error de limitación. Para evitar errores de limitación, aumente los límites de solicitud de Amazon S3 en su bucket de Amazon S3. Para obtener más consejos sobre la solución de problemas relacionados con los errores de limitación, consulte ¿Por qué me aparece un error de ThrottlingExceptions al realizar solicitudes a AWS KMS?
  3. Seleccione la carpeta y, a continuación, elija Acciones.
  4. Seleccione Editar cifrado del lado del servidor.
  5. En Habilitando el cifrado del servidor, elija Habilitar.
  6. Elija Tipo de clave de cifrado para su clave de AWS Key Management Service (SSE-KMS).
  7. Seleccione la clave de AWS KMS que desee utilizar para el cifrado de carpetas.
    Nota: La clave denominada aws/s3 es una clave predeterminada que administra AWS KMS. Puede cifrar la carpeta con la clave predeterminada o con una clave personalizada.
  8. Seleccione Guardar cambios.

Uso de AWS CLI

No puede cambiar el cifrado de una carpeta existente desde un comando de la Interfaz de la línea de comandos de AWS (AWS CLI). En su lugar, ejecute un comando que copie la carpeta sobre sí misma con el cifrado de AWS KMS activado.

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

Para cifrar los archivos con la clave de AWS KMS predeterminada (aws/s3), ejecute el siguiente comando:

aws s3 cp s3://awsexamplebucket/abc s3://awsexamplebucket/abc --recursive --sse aws:kms

La sintaxis de este comando copia la carpeta sobre sí misma con el cifrado de AWS KMS.

Para cifrar los archivos mediante una clave de AWS KMS personalizada, ejecute el siguiente comando:

aws s3 cp s3://awsexamplebucket/abc s3://awsexamplebucket/abc --recursive --sse aws:kms --sse-kms-key-id a1b2c3d4-e5f6-7890-g1h2-123456789abc

Nota: Sustituya --sse-kms-key-id por su propio identificador de clave.

Requisito para que las cargas futuras cifren los objetos con AWS KMS

Tras cambiar la configuración de cifrado, solo se cifran los objetos que ya están en la carpeta. Después de este cambio, podrá cargar objetos sin cifrar. Para exigir que las futuras cargas cifren los objetos con AWS KMS, utilice una política de bucket como la que se muestra en el siguiente ejemplo:

{
  "Version": "2012-10-17",
  "Id": "PutObjPolicy",
  "Statement": [
    {
      "Sid": "DenyIncorrectEncryptionHeader",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/awsexamplefolder/*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": "aws:kms"
        }
      }
    },
    {
      "Sid": "DenyUnEncryptedObjectUploads",
      "Effect": "Deny",
      "Principal": "*",
      "Action": "s3:PutObject",
      "Resource": "arn:aws:s3:::awsexamplebucket/awsexamplefolder/*",
      "Condition": {
        "Null": {
          "s3:x-amz-server-side-encryption": true
        }
      }
    }
  ]
}

Esta política de bucket deniega el acceso a s3:PutObject en docexamplebucket/docexamplefolder/* a menos que la solicitud incluya el cifrado del lado del servidor con AWS KMS.

Información relacionada

Uso del cifrado del lado del servidor con claves de AWS KMS (SSE-KMS)

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 6 meses