Especificación del cifrado del servidor de doble capa con claves de AWS KMS (DSSE-KMS)
Puede aplicar cifrado cuando cargue un objeto nuevo o copie un objeto existente.
Puede especificar DSSE-KMS con la consola de Amazon S3, la API de REST de Amazon S3 y la AWS Command Line Interface (AWS CLI). Para obtener más información, consulte los siguientes temas.
nota
Puede utilizar AWS KMS keys de varias regiones en Amazon S3. No obstante, Amazon S3 trata las claves de varias regiones como si fueran claves de una sola región y no utiliza las características de varias regiones de la clave. Para obtener más información, consulte Using multi-Region keys en la AWS Key Management Service Developer Guide.
nota
Si desea utilizar una clave de KMS propiedad de una cuenta diferente, primero debe tener permiso para utilizar la clave. Para obtener más información sobre los permisos entre cuentas para las claves de KMS, consulte Crear claves de KMS que otras cuentas puedan utilizar en la Guía para desarrolladores de AWS Key Management Service.
En esta sección se describe cómo configurar o cambiar el tipo de cifrado de un objeto para utilizar el cifrado del servidor de doble capa con claves de AWS Key Management Service (AWS KMS) (DSSE-KMS) mediante la consola de Amazon S3.
nota
-
Puede cambiar el cifrado de un objeto si el objeto es menor de 5 GB. Si el objeto es mayor de 5 GB, debe usar la AWS CLI o los AWS SDK para cambiar el cifrado de un objeto.
-
Para obtener una lista de los permisos adicionales necesarios para cambiar el cifrado de un objeto, consulte Permisos necesarios para las operaciones de la API de Amazon S3. Para ver políticas de ejemplo que conceden estos permisos, consulte Ejemplos de políticas basadas en identidad para Amazon S3.
Si cambia el cifrado de un objeto, se crea un nuevo objeto para reemplazar el antiguo. Si el control de versiones de S3 está activado, se crea una nueva versión del objeto y el objeto existente se convierte en una versión anterior. El rol que cambia la propiedad también se convierte en el propietario del nuevo objeto o (versión del objeto).
Para añadir o cambiar el cifrado de un objeto
Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/
. -
En el panel de navegación, elija Buckets y, a continuación, la pestaña Buckets de uso general. Desplácese hasta el bucket o la carpeta de Amazon S3 que contiene los objetos que desea cambiar.
-
Seleccione la casilla de verificación de los objetos que desea cambiar.
-
En el menú Acciones, elija Editar cifrado del servidor en la lista de opciones que aparece.
Desplácese hasta la sección Cifrado del servidor.
En Configuración del cifrado, elija Usar la configuración del bucket para el cifrado predeterminado o Anular la configuración del bucket para el cifrado predeterminado.
-
Si elige Anular la configuración del bucket para el cifrado predeterminado, debe configurar los siguientes ajustes de cifrado.
-
En Tipo de cifrado, seleccione Cifrado del servidor de doble capa con claves de AWS Key Management Service (DSSE-KMS).
-
En Clave de AWS KMS, siga una de las siguientes opciones para elegir su clave de KMS:
-
Para seleccionar en una lista de claves de KMS disponibles, marque Elija entre sus claves de AWS KMS keys y seleccione su clave de KMS en la lista de claves disponibles.
En esta lista aparecen tanto la Clave administrada de AWS (
aws/s3
) como las claves administradas por el cliente. Para obtener más información acerca de las claves administradas por el cliente, consulte Claves de cliente y claves de AWS en la Guía para desarrolladores de AWS Key Management Service. -
Para introducir el ARN de la clave de KMS, elija Introducir el ARN de la clave de AWS KMS key e introduzca el ARN de la clave de KMS en el campo que aparece.
-
Para crear una nueva clave administrada por el cliente en la consola de AWS KMS, elija Crear una clave de KMS.
Para obtener más información acerca de cómo crear una AWS KMS key, consulte Creación de claves en la AWS Key Management Service Guía para desarrolladores.
importante
Solo puede utilizar las claves de KMS que estén disponibles en la misma Región de AWS del bucket. La consola de Amazon S3 solo muestra las primeras 100 claves de KMS de la misma región del bucket. Para utilizar una clave de KMS que no aparezca en la lista, debe introducir el ARN de la clave de KMS. Si desea utilizar una clave de KMS propiedad de una cuenta de diferente, primero debe tener permiso para utilizar la clave y, después, debe introducir el ARN de la clave de KMS.
Amazon S3 admite solo claves KMS de cifrado simétricas y no claves KMS asimétricas. Para obtener más información, consulte Identificación de claves de KMS asimétricas en la Guía para desarrolladores de AWS Key Management Service.
-
-
-
En Clave de bucket, seleccione Desactivar. Las claves de bucket de S3 no son compatibles con DSSE-KMS.
-
En Configuración de copia adicional, elija si desea Copiar la configuración de origen, No especificar la configuración o Especificar la configuración. Copiar la configuración de origen es la opción predeterminada. Si solo desea copiar el objeto sin los atributos de configuración de origen, elija No especificar la configuración. Elija Especificar la configuración para especificar la configuración de la clase de almacenamiento, las ACL, las etiquetas de objetos, los metadatos, el cifrado del servidor y las sumas de comprobación adicionales.
-
Elija Guardar cambios.
nota
En esta acción se aplica el cifrado a todos los objetos especificados. Al cifrar carpetas, espere a que finalice la operación de guardado para agregar nuevos objetos a la carpeta.
Cuando cree un objeto, es decir, cuando cargue un objeto nuevo o copie uno existente, podrá especificar el uso del cifrado del servidor de doble capa con AWS KMS keys (DSSE-KMS) para cifrar los datos. Para ello, añada el encabezado x-amz-server-side-encryption
a la solicitud. Configure el valor del encabezado para el algoritmo de cifrado aws:kms:dsse
. Amazon S3 confirma que su objeto se ha almacenado con cifrado DSSE-KMS al devolver el encabezado de respuesta x-amz-server-side-encryption
.
Si especifica el encabezado x-amz-server-side-encryption
con un valor de aws:kms:dsse
, también puede utilizar los siguientes encabezados de solicitud:
-
x-amz-server-side-encryption-aws-kms-key-id:
SSEKMSKeyId
-
x-amz-server-side-encryption-context:
SSEKMSEncryptionContext
Temas
Operaciones de la API de REST de Amazon S3 que admiten DSSE-KMS
Las siguientes operaciones de la API de REST aceptan los encabezados de solicitud x-amz-server-side-encryption
, x-amz-server-side-encryption-aws-kms-key-id
y x-amz-server-side-encryption-context
.
-
PutObject: cuando cargue datos mediante la operación de la API
PUT
, puede especificar estos encabezados de solicitud. -
CopyObject: al copiar un objeto, tiene un objeto de origen y otro de destino. Al pasar encabezados DSSE-KMS con la operación
CopyObject
, estos se aplican solo al objeto de destino. Cuando copie un objeto existente, independientemente de si el objeto de origen está cifrado o no, el objeto de destino no estará cifrado, a no ser que solicite explícitamente el cifrado del lado del servidor. -
Objeto POST: cuando utilice una operación
POST
para cargar un objeto, en vez de proporcionar los encabezados de solicitud, debe proporcionar la misma información en los campos del formulario. -
CreateMultipartUpload: cuando cargue objetos grandes mediante la carga multiparte, puede especificar estos encabezados en la solicitud
CreateMultipartUpload
.
Los encabezados de respuesta de las siguientes operaciones de API de REST devuelven el encabezado x-amz-server-side-encryption
cuando un objeto se almacena con el cifrado del servidor.
importante
-
Todas las solicitudes
GET
yPUT
para un objeto protegido por AWS KMS generarán un error si no las realiza con la capa de sockets seguros (SSL), la seguridad de la capa de transporte (TLS) o Signature Version 4. -
Si su objeto utiliza DSSE-KMS, no envíe encabezados de solicitud de cifrado para solicitudes
GET
yHEAD
porque, de lo contrario, obtendrá un errorHTTP 400 (Bad Request)
.
Contexto de cifrado (x-amz-server-side-encryption-context
)
Si especifica x-amz-server-side-encryption:aws:kms:dsse
, la API de Amazon S3 admitirá un contexto de cifrado con el encabezado x-amz-server-side-encryption-context
. Un contexto de cifrado es un conjunto definido de pares clave-valor que contienen información contextual adicional sobre los datos.
Amazon S3 utiliza automáticamente el nombre de recurso de Amazon (ARN) del objeto como par del contexto de cifrado; por ejemplo, arn:aws:s3:::
.object_ARN
Si lo desea, puede proporcionar un par de contexto de cifrado adicional mediante el encabezado x-amz-server-side-encryption-context
. No obstante, dado que el contexto de cifrado no está cifrado, asegúrese de no incluir información confidencial. Amazon S3 almacena este par de claves adicional junto con el contexto de cifrado predeterminado.
Para obtener información sobre el contexto de cifrado en Amazon S3, consulte Contexto de cifrado. Para obtener información general sobre el contexto de cifrado, consulte Conceptos de AWS Key Management Service: contexto de cifrado en la Guía para desarrolladores de AWS Key Management Service.
ID de clave de AWS KMS (x-amz-server-side-encryption-aws-kms-key-id
)
Puede utilizar el encabezado x-amz-server-side-encryption-aws-kms-key-id
para especificar el ID de la clave administrada por el cliente utilizado para proteger los datos. Si especifica el encabezado x-amz-server-side-encryption:aws:kms:dsse
, pero no proporciona el encabezado x-amz-server-side-encryption-aws-kms-key-id
, Amazon S3 utiliza la Clave administrada de AWS (aws/s3
) para proteger los datos. Si desea utilizar una clave administrada por el cliente, debe proporcionar el encabezado x-amz-server-side-encryption-aws-kms-key-id
de dicha clave.
importante
Cuando utilice una AWS KMS key para el cifrado en el lado del servidor en Amazon S3, debe elegir una clave de cifrado de KMS simétrica. Amazon S3 solo admite claves KMS de cifrado simétricas. Para obtener más información sobre estas claves, consulte Symmetric encryption KMS keys (Claves de KMS de cifrado simétricas) en la Guía para desarrolladores de AWS Key Management Service.
Cuando se carga un objeto nuevo o se copia uno existente, puede especificar que se use DSSE-KMS para cifrar los datos. Para ello, añada el parámetro --server-side-encryption
aws:kms:dsse
a la solicitud. Utilice el parámetro --ssekms-key-id
para agregar la clave de AWS KMS administrada de cliente que ha creado. Si especifica example-key-id
--server-side-encryption aws:kms:dsse
, pero no proporciona un ID de clave de AWS KMS, Amazon S3 utilizará la clave administrada de AWS (aws/s3
).
aws s3api put-object --bucket
amzn-s3-demo-bucket
--keyexample-object-key
--server-side-encryption aws:kms:dsse --ssekms-key-idexample-key-id
--bodyfilepath
Puede cifrar un objeto no cifrado para usar DSSE-KMS volviendo a copiar el objeto en su lugar.
aws s3api copy-object --bucket
amzn-s3-demo-bucket
--keyexample-object-key
--bodyfilepath
--bucketamzn-s3-demo-bucket
--keyexample-object-key
--sse aws:kms:dsse --sse-kms-key-idexample-key-id
--bodyfilepath