Actualización de cifrado del servidor para los datos existentes
Todos los bucket de Amazon S3 tienen el cifrado configurado de forma predeterminada y los objetos se cifran de forma automática con el cifrado del servidor mediante claves administradas de Amazon S3 (SSE-S3). Esta configuración de cifrado predeterminada se aplica a todos los objetos nuevos en los buckets de Amazon S3.
Con la operación de la API UpdateObjectEncryption, puede actualizar automáticamente el tipo de cifrado del servidor de un objeto cifrado existente en un bucket de uso general del cifrado del servidor con el cifrado administrado por Amazon S3 (SSE-S3) al cifrado del servidor con claves de cifrado de AWS Key Management Service (AWS KMS) (SSE-KMS). La operación de la API UpdateObjectEncryption utiliza el cifrado de sobre para volver a cifrar la clave de datos utilizada para cifrar y descifrar el objeto con el tipo de cifrado del servidor recién especificado.
Amazon S3 realiza esta actualización del tipo de cifrado sin ningún movimiento de datos. En otras palabras, cuando usa la operación UpdateObjectEncryption, los datos no se copian, los objetos archivados en S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive no se restauran, y los objetos en la clase de almacenamiento de S3 Intelligent-Tiering no se mueven entre niveles. Además, la operación UpdateObjectEncryption conserva todas las propiedades de los metadatos de los objetos, incluida la clase de almacenamiento, la fecha de creación, la fecha de última modificación, ETag y las propiedades de suma de comprobación.
La operación UpdateObjectEncryption es compatible con todas las clases de almacenamiento de S3 compatibles con los buckets de uso general. Puede utilizar la operación UpdateObjectEncryption para hacer lo siguiente:
-
Cambie los objetos cifrados del cifrado del servidor con cifrado administrado por Amazon S3 (SSE-S3) a cifrado del servidor con claves de cifrado de AWS Key Management Service (AWS KMS) (SSE-KMS).
-
Actualice los objetos cifrados de SSE-KMS por objeto para usar claves de bucket de S3, que disminuye el tráfico de solicitud de AWS KMS de Amazon S3 a AWS KMS. Para obtener más información, consulte Reducción del costo de SSE-KMS con las claves de bucket de Amazon S3.
-
Cambie la clave de KMS administrada por el cliente que se usa para cifrar los datos, de modo que pueda cumplir con los estándares personalizados de rotación de claves.
nota
Los objetos de origen que no estén cifrados o que estén cifrados con cifrado del servidor de doble capa con AWS KMS keys (DSSE-KMS) o claves de cifrado proporcionadas por el cliente (SSE-C) no son compatibles con esta operación.
La operación UpdateObjectEncryption se suele completar en milisegundos independientemente del tamaño del objeto o la clase de almacenamiento, incluido S3 Glacier Flexible Retrieval o S3 Glacier Deep Archive. Esta operación no cuenta como acceso para S3 Intelligent-Tiering, por lo que los objetos de la capa de acceso poco frecuente o de la capa de Archive Instant Access no volverán automáticamente a la capa de acceso frecuente si cambia el tipo de cifrado del servidor del objeto.
UpdateObjectEncryption es una operación de API por objeto (plano de datos) que se registra en los registros de acceso del servidor de Amazon S3 y eventos de datos de AWS CloudTrail. Para obtener más información, consulte Opciones de registro para Amazon S3.
La operación UpdateObjectEncryption tiene el mismo precio que las solicitudes PUT, COPY, POST y LIST (por 1000 solicitudes) y siempre se cobra como una solicitud de clase de almacenamiento estándar de S3, independientemente de la clase de almacenamiento del objeto subyacente. Para obtener más información, consulte Precios de Amazon S3
Restricciones y consideraciones
Al utilizar la operación UpdateObjectEncryption, se aplican las siguientes restricciones y consideraciones:
-
La operación
UpdateObjectEncryptionno admite objetos que no estén cifrados u objetos que estén cifrados con cifrado del servidor de doble capa con AWS KMS keys (DSSE-KMS) o claves de cifrado proporcionadas por el cliente (SSE-C). Además, no puede especificar SSE-S3 como la solicitud deUpdateObjectEncryptiondel tipo de cifrado nuevo solicitado. -
Puede usar la operación
UpdateObjectEncryptionpara actualizar objetos en buckets que tienen habilitado el control de versiones de S3. Para actualizar el tipo de cifrado de una versión concreta, debe especificar un ID de versión en la solicitud deUpdateObjectEncryption. Si no especifica el ID de versión, la solicitud deUpdateObjectEncryptionactúa en la versión actual del objeto. Para obtener más información sobre el control de versiones de S3, consulte Retención de varias versiones de objetos con Control de versiones de S3. -
La operación
UpdateObjectEncryptionproduce un error en cualquier objeto al que se le aplique un modo de retención de Bloqueo de objetos de S3 o una retención legal. Si un objeto tiene un periodo de retención en modo de gobernanza o una retención legal, primero debe eliminar el estado de Bloqueo de objetos del objeto antes de emitir la solicitud deUpdateObjectEncryption. No puede usar la operaciónUpdateObjectEncryptioncon objetos a los que se les haya aplicado un periodo de retención del modo de cumplimiento de Bloqueo de objetos. Para obtener más información acerca de S3 Object Lock, consulte Bloqueo de objetos mediante Bloqueo de objetos. -
Las solicitudes de
UpdateObjectEncryptionen los buckets de origen con la replicación en directo habilitada no iniciarán los eventos de réplica en el bucket de destino. Si desea cambiar el tipo de cifrado de los objetos en los buckets de origen y destino, debe iniciar solicitudes deUpdateObjectEncryptionindependientes en los objetos de los buckets de origen y destino. -
De forma predeterminada, todas las solicitudes de
UpdateObjectEncryptionque especifican una clave de KMS administrada por el cliente están restringidas a las claves de KMS que son propiedad de la Cuenta de AWS del propietario del bucket. Si utiliza AWS Organizations, puede solicitar la posibilidad de utilizar AWS KMS keys si son propiedad de otras cuentas de miembros de la organización contactando con AWS Support. -
Si usa la replicación por lotes de S3 para replicar conjuntos de datos entre regiones y los objetos anteriormente actualizaron el tipo de cifrado del servidor de SSE-S3 a SSE-KMS, es posible que necesite permisos adicionales. En el bucket de la región de origen, debe tener permisos
kms:decrypt. A continuación, necesitará los permisoskms:decryptykms:encryptpara el bucket en la región de destino. -
Debe proporcionar un ARN de clave de KMS completo en la solicitud de
UpdateObjectEncryption. No puede usar un nombre de alias o ARN de alias. Puede determinar el ARN de clave de KMS completo en la consola de AWS KMS o mediante la API de AWS KMSDescribeKey.
Permisos necesarios
Para realizar la operación UpdateObjectEncryption, debe tener los siguientes permisos:
-
s3:PutObject -
s3:UpdateObjectEncryption -
kms:Encrypt -
kms:Decrypt -
kms:GenerateDataKey -
kms:ReEncrypt*
Si utiliza AWS Organizations, para usar esta operación con claves de KMS administradas por el cliente de otras Cuentas de AWS dentro de la organización, debe tener el permiso organizations:DescribeAccount. Debe solicitar también la capacidad de usar AWS KMS keys si son propiedad de otras cuentas de miembros de la organización contactando con AWS Support.
Para realizar la operación UpdateObjectEncryption, agregue la siguiente política de AWS Identity and Access Management (IAM) al rol de IAM. Para utilizar esta política, sustituya por el nombre del bucket de uso general y sustituya amzn-s3-demo-bucket por su propia información.user input
placeholders
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowUpdateObjectEncryption", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:UpdateObjectEncryption", "kms:Encrypt", "kms:Decrypt", "kms:GenerateDataKey", "kms:ReEncrypt*", "organizations:DescribeAccount" ], "Resource": [ "arn:aws:s3:::", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:kms:amzn-s3-demo-bucketus-east-1:111122223333:key/01234567-89ab-cdef-0123-456789abcdef" ] } ] }
Actualización del cifrado en bloque
Para actualizar el tipo de cifrado del servidor de más de un objeto de Amazon S3 con una sola solicitud, puede usar operaciones por lotes de S3. Puede proporcionar operaciones por lotes de S3 con una lista de objetos en los que operar o puede indicar a operaciones por lotes que genere una lista de objetos basada en los metadatos del objeto, incluidos el prefijo, la clase de almacenamiento, la fecha de creación, el tipo de cifrado, el ARN de la clave de KMS o el estado de la clave de bucket de S3. Operaciones por lotes de S3 llama a la operación de la API respectiva para realizar la operación especificada. Un solo trabajo de operaciones por lotes puede realizar la operación especificada en miles de millones de objetos dentro de un bucket que contiene petabytes de datos. Para obtener más información sobre las Operaciones por lotes, consulte Realización de operaciones de objetos de forma masiva con Operaciones por lotes.
Operaciones por lotes de S3 realiza un seguimiento del avance, envía notificaciones y guarda un informe de finalización de todas las acciones, por lo que proporciona una experiencia sin servidor, auditable, completamente administrada. Puede utilizar operaciones por lotes de S3 a través de la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), los AWS SDK o la API de REST de Amazon S3. Para obtener más información, consulte Actualización de cifrado de objetos.
Actualización de cifrado para objetos
Puede actualizar el tipo de cifrado del servidor de un objeto mediante la AWS Command Line Interface (AWS CLI), los AWS SDK o la API de REST de Amazon S3.
Actualización de cifrado de un objeto
Para ejecutar los siguientes comandos, debe tener instalado y configurado la AWS CLI. Si aún no ha instalado la AWS CLI, consulte Instalación o actualización de la última versión de la AWS CLI en la Guía del usuario de la AWS Command Line Interface.
De forma alternativa, puede ejecutar comandos de la AWS CLI desde la consola mediante AWS CloudShell. AWS CloudShell es un intérprete de comandos previamente autenticado y basado en el navegador que se puede lanzar directamente desde la Consola de administración de AWS. Para obtener más información, consulte ¿Qué es CloudShell? e Introducción a AWS CloudShell en la Guía el usuario de AWS CloudShell.
Actualización del cifrado de un objeto mediante la AWS CLI
Para utilizar el comando de ejemplo siguiente, sustituya con su información. user input
placeholders
-
Utilice el comando siguiente para actualizar el cifrado de un solo objeto (
) en el bucket de uso general (por ejemplo,index.html) para usar SSE-KMS con una clave de bucket de S3:amzn-s3-demo-bucketaws s3api update-object-encryption \ --bucketamzn-s3-demo-bucket\ --keyindex.html\ --object-encryption '{"SSEKMS": { "KMSKeyArn": "arn:aws:kms:us-east-1:111122223333:key/f12a345a-678e-9bbb-1025-62e317037583", "BucketKeyEnabled": true }}'nota
Debe especificar el Nombre de recurso de Amazon (ARN) de AWS KMS key completo. No se admiten el ID de clave de KMS ni el alias de clave de KMS.
-
Ejecute el comando
head-objectpara ver el tipo de cifrado actualizado del objeto:aws s3api head-object --bucket--keyamzn-s3-demo-bucketindex.html
Puede enviar solicitudes REST para actualizar el cifrado de un objeto. Para obtener más información, consulte UpdateObjectEncryption.
Puede utilizar los AWS SDK para actualizar el cifrado de un objeto. Para obtener más información, consulte la lista de SDK admitidos.