Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Conversión de datos de tabla CSE-KMS a SSE-KMS

Modo de enfoque
Conversión de datos de tabla CSE-KMS a SSE-KMS - Amazon Athena

Si sus flujos de trabajo utilizan actualmente CSE-KMS para el cifrado de datos de tablas, realice la transición a SSE-KMS siguiendo estos pasos.

Requisito previo

Si sigue escribiendo datos con un grupo de trabajo de CSE-KMS o con una configuración del lado del cliente, siga los pasos que se indican en Migración de CSE-KMS a SSE-KMS para actualizarlos a SSE-KMS. Esto evita que se agreguen nuevos datos cifrados con CSE-KMS durante el proceso de migración desde cualquier otro flujo de trabajo que pueda escribir en las tablas.

Migración de datos

  1. Compruebe si la tabla tiene la propiedad has_encrypted_data establecida en true. Esta propiedad especifica que la tabla puede contener datos cifrados con CSE-KMS. Sin embargo, es importante tener en cuenta que esta propiedad podría estar presente incluso en tablas sin ningún dato real cifrado con CSE-KMS.

    Console
    1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

    2. Elija Iniciar editor de consultas.

    3. En el lado izquierdo del editor, en Base de datos, elija la base de datos que desea consultar.

    4. En el editor de consultas, ejecute la siguiente consulta para ver el valor establecido en la propiedad has_encrypted_data table.

      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
    CLI

    Inicie una consulta de Athena que muestre el valor de la propiedad has_encrypted_data en la tabla como se muestra en el siguiente ejemplo.

    aws athena start-query-execution \ --query-string "SHOW TBLPROPERTIES <table-name>('has_encrypted_data');" \ --work-group "<my-workgroup>"

    Obtenga los resultados de la consulta para comprobar el valor de la propiedad de tabla has_encrypted_data para la tabla como se muestra en el siguiente ejemplo.

    aws athena get-query-results --query-execution-id <query-execution-id-from-previous-step>
    1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

    2. Elija Iniciar editor de consultas.

    3. En el lado izquierdo del editor, en Base de datos, elija la base de datos que desea consultar.

    4. En el editor de consultas, ejecute la siguiente consulta para ver el valor establecido en la propiedad has_encrypted_data table.

      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
  2. Para cada objeto cifrado con CSE-KMS en la tabla.

    1. Descargue el objeto de S3 mediante el cliente de cifrado S3 y descífrelo. Este es un ejemplo con el AWS SDK V2 de Java.

      Importaciones

      import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.encryption.s3.S3EncryptionClient; import software.amazon.encryption.s3.materials.Keyring; import software.amazon.encryption.s3.materials.KmsDiscoveryKeyring;

      Código

      final Keyring kmsDiscoveryKeyRing = KmsDiscoveryKeyring.builder() .enableLegacyWrappingAlgorithms(true) .build(); final S3EncryptionClient s3EncryptionClient = S3EncryptionClient.builder() .enableLegacyUnauthenticatedModes(true) .keyring(kmsDiscoveryKeyRing) .build(); GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .build(); ResponseInputStream<GetObjectResponse> s3Object = s3EncryptionClient.getObject(getObjectRequest);
    2. Cargue el objeto en S3 con el mismo nombre y el cifrado SSE-KMS. A continuación, se muestra un ejemplo con el AWS SDK V2 de Java.

      Importaciones

      import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption;

      Código

      final S3Client s3Client = S3Client.builder() .build(); PutObjectRequest putObjectRequest = PutObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .serverSideEncryption(ServerSideEncryption.AWS_KMS) .ssekmsKeyId("<my-kms-key>") .build(); s3Client.putObject(putObjectRequest, RequestBody.fromBytes(s3Object.readAllBytes()));

Después de la migración

Tras volver a cifrar correctamente todos los archivos CSE-KMS de la tabla, lleve a cabo los siguientes pasos.

  1. Quite la propiedad has_encrypted_data de la tabla.

    Console
    1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

    2. Elija Iniciar editor de consultas.

    3. En el lado izquierdo del editor, en Base de datos, elija la base de datos que desea consultar.

    4. En el editor de consultas, ejecute la siguiente consulta para su tabla.

      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
    CLI

    Ejecute el siguiente comando para eliminar la propiedad de has_encrypted_data de su tabla.

    aws athena start-query-execution \ --query-string "ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data');" \ --work-group "<my-workgroup>"
    1. Abra la consola de Athena en https://console.aws.amazon.com/athena/.

    2. Elija Iniciar editor de consultas.

    3. En el lado izquierdo del editor, en Base de datos, elija la base de datos que desea consultar.

    4. En el editor de consultas, ejecute la siguiente consulta para su tabla.

      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
  2. Actualice sus flujos de trabajo para utilizar un cliente S3 básico en lugar de un cliente de cifrado S3 y, a continuación, especifique el cifrado SSE-KMS para la escritura de datos.

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.