Crittografia del catalogo dati - AWS Glue

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Crittografia del catalogo dati

AWS Glue Data Catalog la crittografia offre una maggiore sicurezza per i dati sensibili. AWS Glue si integra con AWS Key Management Service (AWS KMS) per crittografare i metadati archiviati nel Data Catalog. È possibile abilitare o disabilitare le impostazioni di crittografia per le risorse nel Data Catalog utilizzando la AWS Glue console o il. AWS CLI

Quando abiliti la crittografia per il tuo Data Catalog, tutti i nuovi oggetti che crei verranno crittografati. Quando disabiliti la crittografia, i nuovi oggetti che crei non verranno crittografati, ma gli oggetti crittografati esistenti rimarranno crittografati.

È possibile crittografare l'intero catalogo dati utilizzando chiavi di crittografia AWS gestite o chiavi di crittografia gestite dal cliente. Per ulteriori informazioni sui tipi e sugli stati delle chiavi, consulta AWS Key Management Service i concetti nella Guida per gli AWS Key Management Service sviluppatori.

AWS chiavi gestite

AWS le chiavi gestite sono KMS chiavi del tuo account che vengono create, gestite e utilizzate per tuo conto da un AWS servizio integrato con AWS KMS. Puoi visualizzare le chiavi AWS gestite nel tuo account, visualizzare le relative politiche chiave e verificarne l'utilizzo nei AWS CloudTrail log. Tuttavia, non puoi gestire queste chiavi o modificarne le autorizzazioni.

Encryption at rest si integra automaticamente con AWS KMS la gestione delle chiavi AWS gestite AWS Glue utilizzate per crittografare i metadati. Se non esiste una chiave AWS gestita quando abiliti la crittografia dei metadati, crea AWS KMS automaticamente una nuova chiave per te.

Per ulteriori informazioni, consulta chiavi gestite da AWS .

Chiavi gestite dal cliente

Le chiavi gestite dal cliente sono KMS chiavi Account AWS che crei, possiedi e gestisci. Hai il pieno controllo su queste KMS chiavi. È possibile:

  • Stabilisci e mantieni le loro politiche, IAM politiche e sovvenzioni chiave

  • Abilitali e disabilitali

  • Ruota il loro materiale crittografico

  • Aggiunta di tag

  • Crea alias che si riferiscono ad essi

  • Pianificali per l'eliminazione

Per ulteriori informazioni sulla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta Chiavi gestite dal cliente.

Importante

AWS Glue supporta solo chiavi simmetriche gestite dal cliente. L'elenco delle KMS chiavi mostra solo tasti simmetrici. Tuttavia, se si seleziona Scegli una KMS chiave ARN, la console consente di immettere una chiave ARN per qualsiasi tipo di chiave. Assicurati di inserire solo chiavi ARNs simmetriche.

Per creare una chiave simmetrica gestita dal cliente, segui i passaggi per la creazione di chiavi simmetriche gestite dal cliente nella Guida per gli sviluppatori. AWS Key Management Service

Quando abiliti la crittografia Data Catalog at Rest, i seguenti tipi di risorse vengono crittografati utilizzando le chiavi: KMS

  • Database

  • Tabelle

  • Partizioni

  • Versioni di tabella

  • Statistiche delle colonne

  • Funzioni definite dall'utente

  • Visualizzazioni del catalogo dati

AWS Glue contesto di crittografia

Un contesto di crittografia è un set opzionale di coppie chiave-valore che contiene ulteriori informazioni contestuali sui dati. AWS KMS utilizza il contesto di crittografia come dati autenticati aggiuntivi per supportare crittografia autenticata. Quando includi un contesto di crittografia in una richiesta di crittografia dei dati, AWS KMS associa il contesto di crittografia ai dati crittografati. Per decrittografare i dati, includi lo stesso contesto di crittografia nella richiesta. AWS Glue utilizza lo stesso contesto di crittografia in tutte le operazioni AWS KMS crittografiche, in cui la chiave è glue_catalog_id e il valore è il. catalogId

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

Quando si utilizza una chiave AWS gestita o una chiave simmetrica gestita dal cliente per crittografare il catalogo dati, è possibile utilizzare il contesto di crittografia anche nei record e nei registri di controllo per identificare come viene utilizzata la chiave. Il contesto di crittografia viene visualizzato anche nei log generati da or logs. AWS CloudTrail Amazon CloudWatch

Abilitazione della crittografia

È possibile abilitare la crittografia per AWS Glue Data Catalog gli oggetti nelle impostazioni del Data Catalog nella AWS Glue console o utilizzando il AWS CLI.

Console
Per abilitare la crittografia usando la console
  1. Accedi a AWS Management Console e apri la AWS Glue console all'indirizzo https://console.aws.amazon.com/glue/.

  2. Scegli Data Catalog nel pannello di navigazione.

  3. Nella pagina delle impostazioni di Data Catalog, seleziona la casella di controllo Crittografia dei metadati e scegli una AWS KMS chiave.

    Quando abiliti la crittografia, se non specifichi una chiave gestita dal cliente, le impostazioni di crittografia utilizzano una KMS chiave AWS gestita.

  4. (Facoltativo) Quando si utilizza una chiave gestita dal cliente per crittografare il catalogo dati, il catalogo dati offre la possibilità di registrare un IAM ruolo per crittografare e decrittografare le risorse. Devi concedere le autorizzazioni di IAM ruolo che AWS Glue puoi assumere per tuo conto. Ciò include AWS KMS le autorizzazioni per crittografare e decrittografare i dati.

    Quando crei una nuova risorsa nel Catalogo dati, AWS Glue assume il IAM ruolo fornito per crittografare i dati. Allo stesso modo, quando un consumatore accede alla risorsa, AWS Glue assume il IAM ruolo di decrittografare i dati. Se si registra un IAM ruolo con le autorizzazioni richieste, il principale chiamante non necessita più delle autorizzazioni per accedere alla chiave e decrittografare i dati.

    Importante

    È possibile delegare KMS le operazioni a un IAM ruolo solo quando si utilizza una chiave gestita dal cliente per crittografare le risorse del Data Catalog. KMSAl momento, la funzionalità di delega dei ruoli non supporta l'utilizzo di chiavi AWS gestite per crittografare le risorse del Data Catalog.

    avvertimento

    Quando abiliti un IAM ruolo per delegare KMS le operazioni, non puoi più accedere alle risorse del Data Catalog che in precedenza erano crittografate con una chiave AWS gestita.

    1. Per abilitare un IAM ruolo che AWS Glue può pretendere di crittografare e decrittografare i dati per tuo conto, seleziona l'opzione Delega KMS le operazioni a un ruolo. IAM

    2. Quindi, scegli un ruolo. IAM

      Per creare un IAM ruolo, vedi Creare un IAM ruolo per AWS Glue.

      Il IAM ruolo che AWS Glue presuppone l'accesso al Data Catalog deve disporre delle autorizzazioni per crittografare e decrittografare i metadati nel Data Catalog. È possibile creare un IAM ruolo e allegare le seguenti politiche in linea:

      • Aggiungi la seguente politica per includere le AWS KMS autorizzazioni per crittografare e decrittografare il Data Catalog.

        { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:<region>:<account-id>:key/<key-id>" } ] }
      • Quindi, aggiungi la seguente politica di attendibilità al ruolo affinché il AWS Glue servizio assuma il ruolo. IAM

        { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "glue.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
      • Quindi, aggiungi l'iam:PassRoleautorizzazione al IAM ruolo.

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

    Quando abiliti la crittografia, se non hai specificato un IAM ruolo AWS Glue da assumere, il principale che accede al Data Catalog deve disporre delle autorizzazioni per eseguire le seguenti API operazioni:

    • kms:Decrypt

    • kms:Encrypt

    • kms:GenerateDataKey

AWS CLI
Per abilitare la crittografia utilizzando o SDK AWS CLI
  • Usa l'PutDataCatalogEncryptionSettingsAPIoperazione. Se non viene specificata alcuna chiave, AWS Glue utilizza una chiave di crittografia AWS gestita per l'account del cliente per crittografare il Data Catalog.

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

Quando abiliti la crittografia, tutti gli oggetti che crei negli oggetti del Data Catalog vengono crittografati. Se si deseleziona questa impostazione, gli oggetti creati nel Data Catalog non vengono più crittografati. È possibile continuare ad accedere agli oggetti crittografati esistenti nel Data Catalog con le KMS autorizzazioni richieste.

Importante

La AWS KMS chiave deve rimanere disponibile nell'archivio delle AWS KMS chiavi per tutti gli oggetti crittografati con essa nel Data Catalog. Se rimuovi la chiave, non sarà più possibile decrittografare gli oggetti. In alcuni scenari ciò potrebbe essere necessario per impedire l'accesso ai metadati del catalogo dati.

Monitoraggio KMS delle chiavi per AWS Glue

Quando utilizzi KMS le chiavi con le risorse del tuo Data Catalog, puoi utilizzare AWS CloudTrail or Amazon CloudWatch Logs per tenere traccia delle richieste AWS Glue inviate a AWS KMS. AWS CloudTrail monitora e registra KMS le operazioni relative alle AWS Glue chiamate di accesso ai dati crittografati dalle tue KMS chiavi.

Gli esempi seguenti sono AWS CloudTrail gli eventi relativi alle GenerateDataKey operazioni Decrypt and.

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