Bloqueo o desbloqueo de SSE-C para un bucket de uso general - Amazon Simple Storage Service

Bloqueo o desbloqueo de SSE-C para un bucket de uso general

En la mayoría de casos de uso modernos de Amazon S3 ya no se utiliza el cifrado del servidor con claves proporcionadas por el cliente (SSE-C) porque no tiene la flexibilidad del cifrado del servidor con claves administradas por Amazon S3 (SSE-S3) o el cifrado del servidor con claves de AWS KMS (SSE-KMS). El requisito de SSE-C de proporcionar la clave de cifrado cada vez que interactúa con los datos cifrados de SSE-C hace que no sea práctico compartir la clave de SSE-C con otros usuarios, roles o servicios de AWS que leen datos de los buckets de S3 para poder operar en los datos.

Para limitar los tipos de cifrado del servidor que puede utilizar en los buckets de uso general, tiene la opción de elegir bloquear las solicitudes de escritura de SSE-C actualizando la configuración de cifrado predeterminada de los buckets. Esta configuración por bucket bloquea las solicitudes de carga de objetos que especifican SSE-C. Cuando se bloquea SSE-C para un bucket, cualquier solicitud PutObject, CopyObject, PostObject o de replicación o carga multiparte que especifique el cifrado SSE-C se rechazará con un error HTTP 403 AccessDenied.

Esta configuración es un parámetro de la API de PutBucketEncryption y también se puede actualizar mediante la consola de S3, la CLI de AWS y los AWS SDK, si tiene el permiso s3:PutEncryptionConfiguration.

Los valores válidos son SSE-C, que bloquea el cifrado SSE-C para el bucket de uso general y NONE, que permite usar SSE-C para escribir en el bucket.

importante

A partir de abril de 2026, AWS desactivará el cifrado del servidor con claves proporcionadas por el cliente (SSE-C) para todos los buckets nuevos. Además, el cifrado SSE-C se desactivará para todos los buckets existentes en Cuentas de AWS que no contengan datos cifrados con SSE-C. Con estos cambios, las pocas aplicaciones que necesitan el cifrado SSE-C deberán habilitar deliberadamente el uso de SSE-C a través de la API PutBucketEncryption después de crear el bucket. En estos casos, es posible que deba actualizar los scripts de automatización, las plantillas de CloudFormation u otras herramientas de configuración de infraestructura para configurar estos ajustes. Para obtener más información, consulte la publicación del Blog de almacenamiento de AWS.

Permisos

Utilice la API de PutBucketEncryption o la consola de S3, los AWS SDK o la CLI de AWS para bloquear o desbloquear los tipos de cifrado para un bucket de uso general. Debe tener el siguiente permiso:

  • s3:PutEncryptionConfiguration

Utilice la API de GetBucketEncryption o la consola de S3, los AWS SDK o la CLI de AWS para ver los tipos de cifrado bloqueados para un bucket de uso general. Debe tener el siguiente permiso:

  • s3:GetEncryptionConfiguration

Consideraciones antes de bloquear el cifrado SSE-C

Después de bloquear SSE-C para cualquier bucket, se aplica el siguiente comportamiento de cifrado:

  • No hay ninguna variación en el cifrado de los objetos que existían en el bucket antes de que bloqueara el cifrado SSE-C.

  • Tras bloquear el cifrado SSE-C, puede seguir realizando solicitudes GetObject y HeadObject en objetos preexistentes cifrados con SSE-C siempre que proporcione los encabezados de SSE-C necesarios en las solicitudes.

  • Cuando se bloquea SSE-C para un bucket, cualquier solicitud PutObject, CopyObject, PostObject o de carga multiparte que especifique el cifrado SSE-C se rechazará con un error 403 AccessDenied.

  • Si un bucket de destino para la replicación tiene SSE-C bloqueado y los objetos de origen que se están replicando están cifrados con SSE-C, la replicación producirá un error HTTP 403 AccessDenied.

Si quiere comprobar si utiliza el cifrado SSE-C en alguno de los buckets antes de bloquear este tipo de cifrado, puede utilizar herramientas como AWS CloudTrail para supervisar el acceso a los datos. En esta entrada de blog, se muestra cómo auditar los métodos de cifrado para la carga de objetos en tiempo real. También puede consultar este artículo de re:Post como guía a la hora de consultar los informes de inventario de S3 para ver si tiene algún objeto cifrado con SSE-C.

Steps

Puede bloquear o desbloquear el cifrado del servidor con claves proporcionadas por el cliente (SSE-C) para un bucket de uso general mediante la consola de Amazon S3, la AWS Command Line Interface (AWS CLI), la API de REST de Amazon S3 y los AWS SDK.

Para bloquear o desbloquear el cifrado SSE-C de un bucket mediante la consola de Amazon S3:

  1. Inicie sesión en la consola de administración de AWS y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

  2. En el panel de navegación izquierdo, elija Buckets de uso general.

  3. Seleccione el bucket para el que desea bloquear el cifrado SSE-C.

  4. Seleccione la pestaña Propiedades del bucket.

  5. Navegue hasta el panel de propiedades de Cifrado predeterminado del bucket y seleccione Editar.

  6. En la sección Tipos de cifrado bloqueados, marque la casilla situada junto a Cifrado del servidor con claves proporcionadas por el cliente (SSE-C) para bloquear el cifrado SSE-C o desmarque esta casilla para permitir SSE-C.

  7. Seleccione Save Changes (Guardar cambios).

Para instalar la CLI de AWS, consulte Instalación de la CLI de AWS en la Guía del usuario de AWS Command Line Interface.

En el ejemplo de la CLI siguiente se muestra cómo bloquear o desbloquear el cifrado SSE-C para un bucket de uso general mediante la AWS CLI. Para usar el comando, sustituya los marcadores de posición de entrada del usuario con su propia información.

Solicitud para bloquear el cifrado SSE-C para un bucket de uso general:

aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "SSE-C" } }] }'

Solicitud para habilitar el uso del cifrado SSE-C en un bucket de uso general:

aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "NONE" } }] }'
SDK for Java 2.x

En los ejemplos siguientes, se muestra cómo bloquear o desbloquear las escrituras de cifrado SSE-C para los buckets de uso general mediante los AWS SDK.

Ejemplo: solicitud PutBucketEncryption que establece la configuración de cifrado predeterminada en SSE-S3 y bloquea SSE-C

S3Client s3Client = ...; ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault .builder() .sseAlgorithm(ServerSideEncryption.AES256) .build(); BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes .builder() .encryptionType(EncryptionType.SSE_C) .build(); ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .applyServerSideEncryptionByDefault(defaultSse) .blockedEncryptionTypes(blockedEncryptionTypes) .build(); s3Client.putBucketEncryption(be -> be .bucket(bucketName) .serverSideEncryptionConfiguration(c -> c.rules(rule)));

Ejemplo: solicitud PutBucketEncryption que establece la configuración de cifrado predeterminada en SSE-S3 y desbloquea SSE-C

S3Client s3Client = ...; ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault .builder() .sseAlgorithm(ServerSideEncryption.AES256) .build(); BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes .builder() .encryptionType(EncryptionType.NONE) .build(); ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .applyServerSideEncryptionByDefault(defaultSse) .blockedEncryptionTypes(blockedEncryptionTypes) .build(); s3Client.putBucketEncryption(be -> be .bucket(bucketName) .serverSideEncryptionConfiguration(c -> c.rules(rule)));
SDK for Python Boto3

Ejemplo: solicitud PutBucketEncryption que establece la configuración de cifrado predeterminada en SSE-S3 y bloquea SSE-C

s3 = boto3.client("s3") s3.put_bucket_encryption( Bucket="amzn-s3-demo-bucket", ServerSideEncryptionConfiguration={ "Rules":[{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BlockedEncryptionTypes": { "EncryptionType": ["SSE-C"] } }] } )

Ejemplo: solicitud PutBucketEncryption que establece la configuración de cifrado predeterminada en SSE-S3 y desbloquea SSE-C

s3 = boto3.client("s3") s3.put_bucket_encryption( Bucket="amzn-s3-demo-bucket", ServerSideEncryptionConfiguration={ "Rules":[{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BlockedEncryptionTypes": { "EncryptionType": ["NONE"] } }] } )

Para obtener información sobre la compatibilidad con la API de REST de Amazon S3 para el bloqueo o desbloqueo del cifrado SSE-C para un bucket de uso general, consulte la siguiente sección en la Referencia de la API de Amazon Simple Storage Service: