Cifrado del Catálogo de datos - AWS Glue

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cifrado del Catálogo de datos

AWS Glue Data Catalogel cifrado proporciona una seguridad mejorada para sus datos confidenciales. AWS Gluese integra con AWS Key Management Service (AWS KMS) para cifrar los metadatos almacenados en el catálogo de datos. Puede activar o desactivar la configuración de cifrado de los recursos del catálogo de datos mediante la AWS Glue consola o elAWS CLI.

Al habilitar el cifrado de su catálogo de datos, se cifrarán todos los objetos nuevos que cree. Al deshabilitar el cifrado, los nuevos objetos que cree no se cifrarán, pero los objetos cifrados existentes permanecerán cifrados.

Puede cifrar todo su catálogo de datos mediante claves de cifrado AWS administradas o claves de cifrado administradas por el cliente. Para obtener más información sobre los tipos y estados de las claves, consulte AWS Key Management Servicelos conceptos de la Guía para AWS Key Management Service desarrolladores.

Claves administradas por AWS

AWSlas claves administradas son claves de KMS de tu cuenta que un AWS servicio integrado en tu cuenta crea, administra y usa en tu nombre. AWS KMS Puedes ver las claves AWS administradas de tu cuenta, ver sus políticas clave y auditar su uso en AWS CloudTrail los registros. Sin embargo, no puedes administrar estas claves ni cambiar sus permisos.

El cifrado en reposo se integra automáticamente AWS KMS para gestionar las claves AWS gestionadas AWS Glue que se utilizan para cifrar los metadatos. Si no existe una clave AWS administrada al habilitar el cifrado de metadatos, crea AWS KMS automáticamente una nueva clave para usted.

Para obtener más información, consulte Claves administradas de AWS.

Claves administradas por el cliente

Las claves administradas por el cliente son claves KMS de su Cuenta de AWS, que usted ha creado, posee y administra. Usted tiene el control total sobre estas claves de KMS. Puede hacer lo siguiente:

  • Establezca y mantenga sus políticas clave, políticas de IAM y subvenciones

  • Actívalas e inhabilitalas

  • Rota su material criptográfico

  • Agregue etiquetas

  • Cree alias que hagan referencia a ellos

  • Prográmalos para su eliminación

Para obtener más información sobre la administración de los permisos de una clave administrada por el cliente, consulte Claves administradas por el cliente.

importante

AWS Gluesolo admite claves simétricas administradas por el cliente. La lista de claves de KMS muestra solo claves simétricas. Sin embargo, si selecciona Elegir un ARN de clave de KMS, la consola le permite introducir un ARN para cualquier tipo de clave. Asegúrese de introducir sólo ARN para claves simétricas.

Para crear una clave simétrica gestionada por el cliente, siga los pasos para crear claves simétricas gestionadas por el cliente que se indican en la Guía para desarrolladores. AWS Key Management Service

Al habilitar el cifrado del catálogo de datos en reposo, los siguientes tipos de recursos se cifran mediante claves KMS:

  • Bases de datos

  • Tablas

  • Particiones

  • Versiones de tablas

  • Estadísticas de las columnas

  • Funciones definidas por el usuario

  • Vistas del catálogo de datos

Contexto de cifrado de AWS Glue

Un contexto de cifrado es un conjunto de pares de valor de clave opcional que pueden contener información contextual adicional sobre los datos. AWS KMS utiliza el contexto de cifrado como información autenticada adicional para permitir el cifrado autenticado. Cuando se incluye un contexto de cifrado en una solicitud para cifrar datos, AWS KMS vincula el contexto de cifrado a los datos cifrados. Para descifrar los datos, debe incluir el mismo contexto de cifrado en la solicitud. AWS Glueutiliza el mismo contexto de cifrado en todas las operaciones AWS KMS criptográficas, donde la clave es glue_catalog_id y el valor es. catalogId

"encryptionContext": { "glue_catalog_id": "111122223333" }

Si utiliza una clave AWS gestionada o una clave simétrica gestionada por el cliente para cifrar su catálogo de datos, también puede utilizar el contexto de cifrado en los registros y registros de auditoría para identificar cómo se utiliza la clave. El contexto de cifrado también aparece en los registros generados por AWS CloudTrail o Amazon CloudWatch en los registros.

Habilitar el cifrado

Puede habilitar el cifrado de sus AWS Glue Data Catalog objetos en la configuración del catálogo de datos de la AWS Glue consola o mediante elAWS CLI.

Console
Para habilitar el cifrado mediante la consola
  1. Inicie sesión en la AWS Management Console y abra la consola de AWS Glue en https://console.aws.amazon.com/glue/.

  2. Elija Catálogo de datos en el panel de navegación.

  3. En la página de configuración del catálogo de datos, active la casilla de verificación Cifrado de metadatos y elija una AWS KMS clave.

    Al habilitar el cifrado, si no especifica una clave administrada por el cliente, la configuración de cifrado usa una clave KMS AWS administrada.

  4. (Opcional) Cuando utiliza una clave gestionada por el cliente para cifrar su catálogo de datos, el catálogo de datos ofrece la opción de registrar un rol de IAM para cifrar y descifrar los recursos. Debe conceder a su función de IAM los permisos que AWS Glue pueda asumir en su nombre. Esto incluye AWS KMS permisos para cifrar y descifrar datos.

    Al crear un recurso nuevo en el catálogo de datos, AWS Glue asume la función de IAM que se proporciona para cifrar los datos. Del mismo modo, cuando un consumidor accede al recurso, AWS Glue asume la función de IAM para descifrar los datos. Si registra una función de IAM con los permisos necesarios, la persona que realiza la llamada ya no necesitará permisos para acceder a la clave y descifrar los datos.

    importante

    Puede delegar las operaciones de KMS a una función de IAM solo si utiliza una clave administrada por el cliente para cifrar los recursos del catálogo de datos. La función de delegación de funciones de KMS no admite el uso de claves AWS administradas para cifrar los recursos del catálogo de datos en este momento.

    aviso

    Al habilitar un rol de IAM para delegar las operaciones de KMS, ya no podrá acceder a los recursos del catálogo de datos que estaban cifrados anteriormente con una clave AWS administrada.

    1. Para habilitar una función de IAM que AWS Glue pueda encargarse de cifrar y descifrar datos en su nombre, seleccione la opción Delegar las operaciones de KMS en una función de IAM.

    2. A continuación, elija un rol de IAM.

      Para crear un rol de IAM;, consulte Crear un rol de IAM para AWS Glue.

      La función de IAM que AWS Glue asume el acceso al catálogo de datos debe tener los permisos para cifrar y descifrar los metadatos del catálogo de datos. Puede crear una función de IAM y adjuntar las siguientes políticas integradas:

      • Agregue la siguiente política para incluir AWS KMS los permisos para cifrar y descifrar el catálogo de datos.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<account-id>:key/<key-id>" } ] }
      • A continuación, añada la siguiente política de confianza a la función para que el AWS Glue servicio asuma la función de IAM.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
      • A continuación, añada el iam:PassRole permiso a la función de IAM.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::<account-id>:role/<encryption-role-name>" ] } ] }

    Al habilitar el cifrado, si no ha especificado una función de IAM que deba asumir, la persona principal que accede AWS Glue al catálogo de datos debe tener permisos para realizar las siguientes operaciones de API:

    • kms:Decrypt

    • kms:Encrypt

    • kms:GenerateDataKey

AWS CLI
Para habilitar el cifrado mediante el SDK o AWS CLI
  • Use la operación PutDataCatalogEncryptionSettings de la API. Si no se especifica ninguna clave, AWS Glue utiliza la clave de cifrado AWS administrada de la cuenta del cliente para cifrar el catálogo de datos.

    aws glue put-data-catalog-encryption-settings \ --data-catalog-encryption-settings '{ "EncryptionAtRest": { "CatalogEncryptionMode": "SSE-KMS-WITH-SERVICE-ROLE", "SseAwsKmsKeyId": "arn:aws:kms:<region>:<account-id>:key/<key-id>", "CatalogEncryptionServiceRole":"arn:aws:iam::<account-id>:role/<encryption-role-name>" } }'

Al habilitar el cifrado, se cifran todos los objetos que cree en los objetos del catálogo de datos. Si desactiva esta configuración, los objetos que cree en el catálogo de datos dejarán de estar cifrados. Puede seguir accediendo a los objetos cifrados existentes en el catálogo de datos con los permisos de KMS necesarios.

importante

La clave AWS KMS debe permanecer disponible en el almacén de claves AWS KMS para todos los objetos que se cifran con ella en el Catálogo de datos. Si elimina la clave, los objetos ya no se podrán descifrar. Es posible que en determinados casos le interese esta opción para evitar el acceso a los metadatos del Catálogo de datos.

Supervisar sus claves KMS para AWS Glue

Cuando utiliza las claves de KMS con los recursos de su catálogo de datos, puede utilizar AWS CloudTrail los Amazon CloudWatch registros para realizar un seguimiento de las solicitudes que se AWS Glue envían aAWS KMS. AWS CloudTrailsupervisa y registra las operaciones de KMS AWS Glue que requieren acceso a los datos cifrados por sus claves de KMS.

Los siguientes ejemplos son AWS CloudTrail eventos para las GenerateDataKey operaciones Decrypt y.

Decrypt
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXPHTESTANDEXAMPLE:Sampleuser01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/Sampleuser01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXPHTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-01-10T14:33:56Z", "mfaAuthenticated": "false" } }, "invokedBy": "glue.amazonaws.com" }, "eventTime": "2024-01-10T15:18:11Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "eu-west-2", "sourceIPAddress": "glue.amazonaws.com", "userAgent": "glue.amazonaws.com", "requestParameters": { "encryptionContext": { "glue_catalog_id": "111122223333" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "43b019aa-34b8-4798-9b98-ee968b2d63df", "eventID": "d7614763-d3fe-4f84-a1e1-3ca4d2a5bbd5", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:<region>:111122223333:key/<key-id>" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }
GenerateDataKey
{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXPHTESTANDEXAMPLE:V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/V_00_GLUE_KMS_GENERATE_DATA_KEY_111122223333", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXPHTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "AKIAIOSFODNN7EXAMPLE", "userName": "Admin" }, "webIdFederationData": {}, "attributes": { "creationDate": "2024-01-05T21:15:47Z", "mfaAuthenticated": "false" } }, "invokedBy": "glue.amazonaws.com" }, "eventTime": "2024-01-05T21:15:47Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "eu-west-2", "sourceIPAddress": "glue.amazonaws.com", "userAgent": "glue.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:eu-west-2:AKIAIOSFODNN7EXAMPLE:key/AKIAIOSFODNN7EXAMPLE", "encryptionContext": { "glue_catalog_id": "111122223333" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "64d1783a-4b62-44ba-b0ab-388b50188070", "eventID": "1c73689b-2ef2-443b-aed7-8c126585ca5e", "readOnly": true, "resources": [ { "accountId": "111122223333", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-2:111122223333:key/AKIAIOSFODNN7EXAMPLE" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111122223333", "eventCategory": "Management" }