Chiffrement de votre catalogue de données - AWS Glue

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Chiffrement de votre catalogue de données

AWS Glue Data Catalogle chiffrement renforce la sécurité de vos données sensibles. AWS Glues'intègre à AWS Key Management Service (AWS KMS) pour chiffrer les métadonnées stockées dans le catalogue de données. Vous pouvez activer ou désactiver les paramètres de chiffrement pour les ressources du catalogue de données à l'aide de la AWS Glue console ou duAWS CLI.

Lorsque vous activez le chiffrement pour votre catalogue de données, tous les nouveaux objets que vous créez sont chiffrés. Lorsque vous désactivez le chiffrement, les nouveaux objets que vous créez ne sont pas chiffrés, mais les objets chiffrés existants restent chiffrés.

Vous pouvez chiffrer l'intégralité de votre catalogue de données à l'aide de clés de chiffrement AWS gérées ou de clés de chiffrement gérées par le client. Pour plus d'informations sur les types de clés et les états, consultez AWS Key Management Serviceles concepts du Guide du AWS Key Management Service développeur.

Clés gérées par AWS

AWSles clés gérées sont des clés KMS de votre compte qui sont créées, gérées et utilisées en votre nom par un AWS service intégré àAWS KMS. Vous pouvez consulter les clés AWS gérées de votre compte, consulter leurs politiques clés et vérifier leur utilisation dans AWS CloudTrail les journaux. Cependant, vous ne pouvez pas gérer ces clés ni modifier leurs autorisations.

Le chiffrement au repos s'intègre AWS KMS automatiquement AWS à la gestion des clés gérées utilisées pour AWS Glue chiffrer vos métadonnées. Si aucune clé AWS gérée n'existe lorsque vous activez le chiffrement des métadonnées, une nouvelle clé est AWS KMS automatiquement créée pour vous.

Pour en savoir plus, consultez Clés gérées par AWS.

Clés gérées par le client

Les clés gérées par le client sont des clés KMS de votre Compte AWS que vous créez, possédez et gérez. Vous avez un contrôle total sur ces clés KMS. Vous pouvez :

  • Établir et maintenir leurs politiques clés, leurs politiques IAM et leurs subventions

  • Activez-les et désactivez-les

  • Faites pivoter leur matériel cryptographique

  • Ajout de balises

  • Créez des alias qui y font référence

  • Planifiez-les pour leur suppression

Pour plus d'informations sur la gestion des autorisations associées à une clé gérée par le client, consultez la section Clés gérées par le client.

Important

AWS Glueprend uniquement en charge les clés symétriques gérées par le client. La liste des clés KMS affiche uniquement les clés symétriques. Toutefois, si vous sélectionnez Choisir un ARN de clé KMS, la console vous permet de saisir un ARN pour n'importe quel type de clé. Assurez-vous de saisir uniquement les ARN pour les clés symétriques.

Pour créer une clé symétrique gérée par le client, suivez les étapes de création de clés symétriques gérées par le client dans le guide du AWS Key Management Service développeur.

Lorsque vous activez le chiffrement du catalogue de données au repos, les types de ressources suivants sont chiffrés à l'aide de clés KMS :

  • Bases de données

  • Tables

  • Partitions

  • Versions de table

  • Statistiques de colonne

  • Fonctions définies par l'utilisateur

  • Vues du catalogue de données

Contexte de chiffrement AWS Glue

Un contexte de chiffrement est un ensemble facultatif de paires clé-valeur qui contiennent des informations contextuelles supplémentaires sur les données. AWS KMS utilise le contexte de chiffrement en tant que données authentifiées supplémentaires pour prendre en charge le chiffrement authentifié. Lorsque vous incluez un contexte de chiffrement dans une demande de chiffrement de données, AWS KMS lie le contexte de chiffrement aux données chiffrées. Pour déchiffrer les données, vous devez inclure le même contexte de chiffrement dans la demande. AWS Glueutilise le même contexte de chiffrement dans toutes les opérations AWS KMS cryptographiques, où la clé est glue_catalog_id et la valeur est lecatalogId.

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

Lorsque vous utilisez une clé AWS gérée ou une clé symétrique gérée par le client pour chiffrer votre catalogue de données, vous pouvez également utiliser le contexte de chiffrement dans les enregistrements d'audit et les journaux pour identifier la manière dont la clé est utilisée. Le contexte de chiffrement apparaît également dans les journaux générés par AWS CloudTrail ou dans Amazon CloudWatch les journaux.

Activation du chiffrement

Vous pouvez activer le chiffrement de vos AWS Glue Data Catalog objets dans les paramètres du catalogue de données de la AWS Glue console ou en utilisant leAWS CLI.

Console
Pour activer le chiffrement à l'aide de la console
  1. Connectez-vous à la AWS Management Console et ouvrez la console AWS Glue à l'adresse https://console.aws.amazon.com/glue/.

  2. Choisissez Data Catalog dans le volet de navigation.

  3. Sur la page des paramètres du catalogue de données, cochez la case Chiffrement des métadonnées et choisissez une AWS KMS clé.

    Lorsque vous activez le chiffrement, si vous ne spécifiez pas de clé gérée par le client, les paramètres de chiffrement utilisent une clé KMS AWS gérée.

  4. (Facultatif) Lorsque vous utilisez une clé gérée par le client pour chiffrer votre catalogue de données, celui-ci propose une option permettant d'enregistrer un rôle IAM pour chiffrer et déchiffrer les ressources. Vous devez accorder à votre rôle IAM des autorisations qui AWS Glue peuvent être assumées en votre nom. Cela inclut AWS KMS les autorisations de chiffrement et de déchiffrement des données.

    Lorsque vous créez une nouvelle ressource dans le catalogue de données, elle AWS Glue assume le rôle IAM fourni pour chiffrer les données. De même, lorsqu'un consommateur accède à la ressource, il AWS Glue assume le rôle IAM pour déchiffrer les données. Si vous enregistrez un rôle IAM avec les autorisations requises, le principal appelant n'a plus besoin d'autorisations pour accéder à la clé et déchiffrer les données.

    Important

    Vous pouvez déléguer les opérations KMS à un rôle IAM uniquement lorsque vous utilisez une clé gérée par le client pour chiffrer les ressources du catalogue de données. La fonctionnalité de délégation de rôles KMS ne prend pas en charge l'utilisation de clés AWS gérées pour chiffrer les ressources du catalogue de données pour le moment.

    Avertissement

    Lorsque vous activez un rôle IAM pour déléguer les opérations KMS, vous ne pouvez plus accéder aux ressources du catalogue de données précédemment chiffrées à l'aide d'une clé AWS gérée.

    1. Pour activer un rôle IAM AWS Glue capable de chiffrer et de déchiffrer les données en votre nom, sélectionnez l'option Déléguer les opérations KMS à un rôle IAM.

    2. Choisissez ensuite un rôle IAM.

      Pour créer un rôle IAM, consultez Création d'un rôle IAM pour AWS Glue.

      Le rôle IAM censé accéder AWS Glue au catalogue de données doit disposer des autorisations nécessaires pour chiffrer et déchiffrer les métadonnées du catalogue de données. Vous pouvez créer un rôle IAM et y associer les politiques intégrées suivantes :

      • Ajoutez la politique suivante pour inclure AWS KMS les autorisations permettant de chiffrer et de déchiffrer le catalogue de données.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<account-id>:key/<key-id>" } ] }
      • Ajoutez ensuite la politique de confiance suivante au rôle pour que le AWS Glue service assume le rôle IAM.

        { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
      • Ajoutez ensuite l'iam:PassRoleautorisation au rôle IAM.

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

    Lorsque vous activez le chiffrement, si vous n'avez pas spécifié de rôle IAM AWS Glue à assumer, le principal accédant au catalogue de données doit être autorisé à effectuer les opérations d'API suivantes :

    • kms:Decrypt

    • kms:Encrypt

    • kms:GenerateDataKey

AWS CLI
Pour activer le chiffrement à l'aide du kit SDK ou de l'AWS CLI
  • Utilisez l'opération d'API PutDataCatalogEncryptionSettings. Si aucune clé n'est spécifiée, AWS Glue utilise une clé de chiffrement AWS gérée pour le compte client afin de chiffrer le catalogue de données.

    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>" } }'

Lorsque vous activez le chiffrement, tous les objets que vous créez dans les objets du catalogue de données sont chiffrés. Si vous désactivez ce paramètre, les objets que vous créez dans le catalogue de données ne sont plus chiffrés. Vous pouvez continuer à accéder aux objets chiffrés existants dans le catalogue de données avec les autorisations KMS requises.

Important

La clé AWS KMS doit rester disponible dans le magasin de clés AWS KMS pour tous les objets qui sont chiffrés avec elle dans le catalogue de données. Si vous supprimez la clé, les objets ne peuvent plus être déchiffrés. Dans certains scénarios, vous pouvez opter pour cette solution pour empêcher l'accès aux métadonnées du catalogue de données.

Surveillance de vos clés KMS pour AWS Glue

Lorsque vous utilisez des clés KMS avec les ressources de votre catalogue de données, vous pouvez utiliser AWS CloudTrail Amazon CloudWatch nos journaux pour suivre les demandes AWS Glue envoyées àAWS KMS. AWS CloudTrailsurveille et enregistre les opérations KMS qui AWS Glue appellent à accéder à des données chiffrées par vos clés KMS.

Les exemples suivants sont AWS CloudTrail des événements relatifs aux GenerateDataKey opérations Decrypt et.

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" }