Crittografia del catalogo dati
La crittografia AWS Glue Data Catalog 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 Catalogo dati. È possibile abilitare o disabilitare le impostazioni di crittografia per le risorse nel Catalogo dati utilizzando la console AWS Glue o AWS CLI.
Quando abiliti la crittografia per il tuo Catalogo dati, 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 AWS chiavi di crittografia gestite o chiavi di crittografia gestite dal cliente. Per ulteriori informazioni sui tipi e sugli stati delle chiavi, consulta i AWS Key Management Service concetti nella Guida per gli sviluppatori di AWS Key Management Service.
Quando si utilizza il Catalogo dati crittografato con un crawler, è necessario mantenere le impostazioni di crittografia. La rimozione delle impostazioni di crittografia dopo che un crawler ha elaborato un catalogo crittografato genera errori. Se devi rimuovere le impostazioni di crittografia, crea un nuovo crawler anziché modificare quello esistente.
Chiavi gestite da AWS
Le AWS chiavi gestite sono chiavi KMS nel tuo account create, gestite e utilizzate a tuo nome da un servizio AWS che si integra con AWS KMS. Puoi visualizzare le AWS chiavi gestite nell'account, visualizzare le loro policy delle chiavi ed effettuare un audit del loro utilizzo nei AWS CloudTrail log . Tuttavia, non puoi gestire queste chiavi o modificarne le autorizzazioni.
La crittografia dei dati inattivi si integra automaticamente con AWS KMS per la gestione delle AWS chiavi gestite per AWS Glue utilizzate per crittografare i metadati. Se quando abiliti la crittografia dei metadati non esiste una AWS chiave gestita, AWS KMS crea automaticamente una nuova chiave.
Per ulteriori informazioni, consulta le AWSchiavi gestite da .
Chiavi gestite dal cliente
Le chiavi gestite dal cliente sono chiavi KMS nell'Account AWS che crei, possiedi e gestisci. Hai il pieno controllo su queste chiavi KMS. Puoi:
-
Stabilire e mantenere le policy delle chiavi, le policy IAM e le concessioni
-
Abilitarle e disabilitarle
-
Ruotare il loro materiale crittografico
-
Aggiunta di tag
-
Creazione di alias che si riferiscono ad essi
-
Pianificazione dell'eliminazione delle chiavi
Per ulteriori informazioni relative alla gestione delle autorizzazioni di una chiave gestita dal cliente, consulta Customer managed keys.
AWS Glue supporta solo chiavi gestite del cliente simmetriche. L'elenco di chiavi KMS mostra solo le chiavi simmetriche. Tuttavia, selezionando Scegli un ARN chiave KMS, la console consente di inserire un ARN per qualsiasi tipo di chiave. Inserisci solo ARN per le chiavi simmetriche.
Per creare una chiave simmetrica gestita del cliente, segui la procedura per la creazione di chiavi simmetriche gestite dal cliente nella Guida per gli sviluppatori di AWS Key Management Service.
Quando abiliti la crittografia del Catalogo dati inattivo, i seguenti tipi di risorse vengono crittografati utilizzando chiavi KMS:
Contesto di crittografia AWS Glue
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 lega il contesto di crittografia ai dati crittografati. Per decrittografare i dati, nella richiesta deve essere incluso lo stesso contesto di crittografia. 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 è catalogId.
"encryptionContext": {
"glue_catalog_id": "111122223333"
}
Quando si utilizza una AWS chiave gestita o una chiave simmetrica gestita dal cliente per crittografare i dati del Catalogo dati, è possibile utilizzare il contesto di crittografia anche nei record e nei log di controllo per identificare come viene utilizzata la chiave. Il contesto di crittografia appare anche nei log generati da AWS CloudTrail o nei log Amazon CloudWatch.
Abilitazione della crittografia
È possibile abilitare la crittografia per gli AWS Glue Data Catalog oggetti nelle Impostazioni del Catalogo dati nella console AWS Glue o utilizzando AWS CLI.
- Console
-
Per abilitare la crittografia usando la console
Accedi alla AWS Management Console, quindi apri la console AWS Glue all'indirizzo https://console.aws.amazon.com/glue/.
-
Nel pannello di navigazione, seleziona Catalogo dati.
-
Nella pagina Impostazioni del Catalogo dati selezionare la casella di controllo Metadata encryption (Crittografia dei metadati) e scegliere una chiave AWS KMS.
Quando abiliti la crittografia, se non specifichi una chiave gestita dal cliente, le impostazioni di crittografia utilizzano una AWS chiave KMS gestita.
-
(Facoltativo) Quando utilizzi una chiave gestita dal cliente per crittografare il tuo Catalogo dati, il Catalogo dati offre la possibilità di registrare un ruolo IAM per crittografare e decrittografare le risorse. A questo punto devi concedere le autorizzazioni del ruolo IAM che AWS Glue può 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 ruolo IAM fornito per crittografare i dati. Allo stesso modo, quando un consumatore accede alla risorsa, AWS Glue assume il ruolo IAM per decrittografare i dati. Se registri un ruolo IAM con le autorizzazioni richieste, il principale chiamante non necessita più delle autorizzazioni per accedere alla chiave e decrittografare i dati.
Puoi delegare le operazioni KMS a un ruolo IAM solo quando utilizzi una chiave gestita dal cliente per crittografare le risorse del Catalogo dati. Al momento, la funzionalità di delega dei ruoli KMS non supporta l'utilizzo di AWS chiavi gestite per la crittografia delle risorse del Catalogo dati.
Quando abiliti un ruolo IAM per delegare le operazioni KMS, non puoi più accedere alle risorse del Catalogo dati che in precedenza erano crittografate con una AWS chiave gestita.
-
Per abilitare un ruolo IAM che AWS Glue può pretendere di crittografare e decrittografare i dati per tuo conto, seleziona l'opzione Delega le operazioni KMSa un ruolo IAM.
-
Successivamente, Scegli un ruolo IAM.
Per creare un ruolo IAM, consulta l'argomento relativo alla creazione di ruoli IAM per AWS Glue.
Il ruolo IAM che AWS Glue presuppone l'accesso al Catalogo dati deve disporre delle autorizzazioni per crittografare e decrittografare i metadati nel catalogo dati. Puoi creare un ruolo IAM e collegare le seguenti policy in linea:
-
Aggiungi la seguente policy per includere le AWS KMS autorizzazioni per crittografare e decrittografare il Catalogo dati.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"kms:Decrypt",
"kms:Encrypt",
"kms:GenerateDataKey"
],
"Resource": "arn:aws:kms:us-east-1:111122223333:key/<key-id>"
}
]
}
-
In seguito, aggiungi la seguente policy di attendibilità al ruolo per il servizio AWS Glue per assumere il ruolo IAM.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Sid": "",
"Effect": "Allow",
"Principal": {
"Service": "glue.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
-
Quindi, aggiungi l'autorizzazione iam:PassRole al ruolo IAM.
JSON
- JSON
-
{
"Version":"2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"iam:PassRole"
],
"Resource": [
"arn:aws:iam::111122223333:role/<encryption-role-name>"
]
}
]
}
Quando abiliti la crittografia, se non hai specificato un ruolo IAM AWS Glue da assumere, il principale che accede al Catalogo dati deve disporre delle autorizzazioni per eseguire le seguenti operazioni API:
-
kms:Decrypt
-
kms:Encrypt
-
kms:GenerateDataKey
- AWS CLI
-
Abilitazione della crittografia usando l'SDK o AWS CLI
-
Usa l'operazione API PutDataCatalogEncryptionSettings. Se non viene specificata alcuna chiave, AWS Glue utilizza la AWS chiave di crittografia gestita per l'account del cliente per crittografare il Catalogo dati.
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 i nuovi oggetti che crei tra gli oggetti del Catalogo dati verranno crittografati. Se cancelli questa impostazione, gli oggetti creati nel Catalogo dati non vengono più crittografati. Puoi continuare ad accedere agli oggetti crittografati esistenti nel Catalogo dati con le autorizzazioni KMS richieste.
La chiave AWS KMS deve rimanere disponibile nell'archivio chiavi AWS KMS per tutti gli oggetti crittografati con tale chiave nel catalogo dati. 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 delle chiavi KMS per AWS Glue
Quando utilizzi le chiavi KMS con le risorse del tuo Catalogo dati, puoi utilizzare i log AWS CloudTrail or Amazon CloudWatch per tenere traccia delle richieste che AWS Glue invia a AWS KMS. AWS CloudTrailmonitora e registra le operazioni KMS relative alle AWS Glue chiamate di accesso ai dati crittografati dalle tue chiavi KMS.
I seguenti esempi sono eventi AWS CloudTrail per operazioni Decrypt e GenerateDataKey.
- 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"
}