Configuración del bucket para utilizar una clave de bucket de S3 con SSE-KMS para objetos nuevos - Amazon Simple Storage Service

Configuración del bucket para utilizar una clave de bucket de S3 con SSE-KMS para objetos nuevos

Cuando configura el cifrado del lado del servidor con claves de AWS Key Management Service (AWS KMS) (SSE-KMS), puede configurar el bucket para utilizar una clave de bucket de S3 para SSE-KMS en los objetos nuevos. Las claves de bucket de S3 reducen el tráfico de solicitudes de Amazon S3 a AWS KMS, así como el costo de SSE-KMS. Para obtener más información, consulte Reducción del costo de SSE-KMS con las claves de bucket de Amazon S3.

Puede configurar su bucket de manera que utilice una clave de bucket de S3 para SSE-KMS en los objetos nuevos mediante la consola de Amazon S3, la API de REST, los SDK de AWS, la AWS Command Line Interface (AWS CLI) o AWS CloudFormation. Si desea habilitar o deshabilitar una clave de bucket de S3 para los objetos existentes, puede utilizar una operación CopyObject. Para obtener más información, consulte Configuración de una clave de bucket de S3 en el nivel de objeto y Uso de la herramienta de operaciones por lotes de S3 para cifrar objetos con claves de bucket de S3.

Cuando se habilita una clave de bucket de S3 para el bucket de origen o de destino, el contexto de cifrado será el nombre de recurso de Amazon (ARN) del bucket y no el ARN del objeto, por ejemplo, arn:aws:s3:::bucket_ARN. Debe actualizar las políticas de IAM para utilizar el ARN del bucket para el contexto de cifrado. Para obtener más información, consulte Claves de bucket y replicación de S3.

Los siguientes ejemplos ilustran cómo funciona una clave de bucket de S3 con la replicación. Para obtener más información, consulte Replicación de objetos creados con cifrado del servidor (SSE-C, SSE-S3, SSE-KMS, DSSE-KMS)

Requisitos previos

Antes de configurar el bucket para utilizar una clave de bucket de S3, consulte Cambios para tener en cuenta antes de habilitar una clave de bucket de S3.

Temas

    En la consola de S3, puede habilitar o deshabilitar una clave de bucket de S3 para un bucket nuevo o uno existente. Los objetos en la consola de S3 hereda el ajuste de la clave de bucket de S3 de la configuración del bucket. Cuando habilita una clave de bucket de S3 para su bucket, los nuevos objetos que carga en el bucket utilizan una clave de bucket de S3 para SSE-KMS.

    Cargar, copiar o modificar objetos en buckets que tienen habilitada una clave de bucket de S3

    Si carga, modifica o copia un objeto en un bucket que tiene habilitada una clave de bucket de S3, el ajuste de la clave de bucket de S3 para ese objeto podría actualizarse para alinearse con la configuración del bucket.

    Si un objeto ya tiene habilitada una clave de bucket de S3, el ajuste de la clave de bucket de S3 para ese objeto no cambia al copiar o modificar el objeto. Sin embargo, si modifica o copia un objeto que no tiene habilitada una clave de bucket de S3 y el bucket de destino tiene una configuración de clave de bucket de S3, el objeto hereda el ajuste de la clave de bucket de S3 del bucket de destino. Por ejemplo, si el objeto de origen no tiene habilitada una clave de bucket de S3 pero el bucket de destino tiene habilitada la clave de bucket de S3, se habilita una clave de bucket de S3 para el objeto.

    Para habilitar una clave de bucket de S3 al crear un nuevo bucket,
    1. Inicie sesión en la AWS Management Console y abra la consola de Amazon S3 en https://console.aws.amazon.com/s3/.

    2. En el panel de navegación izquierdo, elija Instancias.

    3. Elija Crear bucket.

    4. Ingrese el nombre del bucket y elija la Región de AWS.

    5. En Cifrado predeterminado, en Tipo de clave de cifrado, elija Clave de AWS Key Management Service (SSE-KMS).

    6. 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 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.

    7. En Bucket Key (Clave de bucket), seleccione Enable (Habilitar).

    8. Elija Create bucket (Crear bucket).

      Amazon S3 crea el bucket con una clave de bucket de S3 habilitada. Los nuevos objetos que cargue en el bucket utilizarán una clave de bucket de S3. 

      Para deshabilitar una clave de bucket de S3, siga los pasos anteriores y elija Disable (Deshabilitar).

    Para habilitar una clave de bucket de S3 para un bucket existente,
    1. Abra la consola de Amazon S3 en https://console.aws.amazon.com/s3.

    2. En el panel de navegación situado a la izquierda, elija Buckets.

    3. En la lista Buckets, elija el bucket para el que desea habilitar una clave de bucket de S3.

    4. Elija la pestaña Propiedades.

    5. En Cifrado predeterminado, elija Editar.

    6. En Cifrado predeterminado, en Tipo de clave de cifrado, elija Clave de AWS Key Management Service (SSE-KMS).

    7. 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 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.

    8. En Bucket Key (Clave de bucket), seleccione Enable (Habilitar).

    9. Elija Save changes.

      Amazon S3 habilita una clave de bucket de S3 para los nuevos objetos agregados al bucket. Los objetos existentes no utilizan la clave de bucket de S3. Para configurar una clave de bucket de S3 para los objetos existentes, puede utilizar una operación CopyObject. Para obtener más información, consulte Configuración de una clave de bucket de S3 en el nivel de objeto .

      Para deshabilitar una clave de bucket de S3, siga los pasos anteriores y elija Disable (Deshabilitar).

    Puede utilizar PutBucketEncryption para habilitar o desactivar una clave de bucket de S3 en su bucket. Para configurar una clave de bucket de S3 con PutBucketEncryption, especifique el tipo de dato ServerSideEncryptionRule, que incluye el cifrado predeterminado con SSE-KMS. También puede utilizar una clave administrada por el cliente al especificar el ID de clave de KMS para la clave administrada por el cliente. 

    Para obtener más información y sintaxis de ejemplo, consulte PutBucketEncryption.

    En el siguiente ejemplo, se habilita el cifrado de bucket predeterminado con SSE-KMS y una clave de bucket de S3 mediante AWS SDK for Java.

    Java
    AmazonS3 s3client = AmazonS3ClientBuilder.standard()     .withRegion(Regions.DEFAULT_REGION)     .build();     ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()     .withSSEAlgorithm(SSEAlgorithm.KMS); ServerSideEncryptionRule rule = new ServerSideEncryptionRule()     .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)     .withBucketKeyEnabled(true); ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =     new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule)); SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()     .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)     .withBucketName(bucketName);              s3client.setBucketEncryption(setBucketEncryptionRequest);

    En el siguiente ejemplo, se habilita el cifrado de bucket predeterminado con SSE-KMS y una clave de bucket de S3 mediante AWS CLI. Reemplace los user input placeholders con su propia información.

    aws s3api put-bucket-encryption --bucket DOC-EXAMPLE-BUCKET --server-side-encryption-configuration '{         "Rules": [             {                 "ApplyServerSideEncryptionByDefault": {                     "SSEAlgorithm": "aws:kms",                     "KMSMasterKeyID": "KMS-Key-ARN"                 },                 "BucketKeyEnabled": true             }         ]     }'

    Para obtener más información sobre cómo configurar una clave de bucket de S3 con AWS CloudFormation, consulte AWS::S3::Bucket ServerSideEncryptionRule en la Guía del usuario de AWS CloudFormation.