Come Amazon EMR utilizza AWS KMS - AWS Key Management Service

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à.

Come Amazon EMR utilizza AWS KMS

Quando si utilizza un cluster Amazon EMR, è possibile configurare il cluster per crittografare i dati inattivi prima di salvarli in una posizione di storage persistente. È possibile crittografare i dati inattivi su EMR File System (EMRFS), sui volumi di storage dei nodi del cluster o su entrambi. Per crittografare i dati a riposo è possibile utilizzare una AWS KMS key. Gli argomenti seguenti descrivono come un cluster Amazon EMR utilizza una chiave KMS per crittografare i dati inattivi.

Importante

Amazon EMR supporta solo chiavi KMS simmetriche. Non è possibile utilizzare una chiave KMS asimmetrica per crittografare i dati inattivi in un cluster Amazon EMR. Per informazioni su come determinare se una chiave KMS è simmetrica o asimmetrica, consulta Individuazione di chiavi KMS asimmetriche.

I cluster Amazon EMR crittografano anche i dati in transito, il che significa che il cluster crittografa i dati prima dell'invio in rete. Non è possibile utilizzare una chiave KMS per crittografare i dati in transito. Per ulteriori informazioni, consulta Crittografia dei dati in transito nella Guida alla gestione di Amazon EMR.

Per ulteriori informazioni su tutte le opzioni di crittografia disponibili in Amazon EMR, consulta Opzioni di crittografia nella Guida alla gestione di Amazon EMR.

Crittografia dei dati su EMR File System (EMRFS)

I cluster Amazon EMR usano due file system distribuiti:

  • Hadoop Distributed File System (HDFS). La crittografia HDFS non utilizza una chiave KMS in AWS KMS.

  • File system EMR (EMRFS). EMRFS è un'implementazione di HDFS che consente ai cluster Amazon EMR di archiviare dati in Amazon Simple Storage Service (Amazon S3). EMRFS supporta quattro opzioni di crittografia, due delle quali utilizzano una chiave KMS in AWS KMS. Per ulteriori informazioni su tutte le opzioni di crittografia disponibili in Amazon EMRFS, consulta Opzioni di crittografia nella Guida alla gestione di Amazon EMR.

Le due opzioni di crittografia EMRFS che usano una chiave KMS utilizzano le seguenti caratteristiche di crittografia offerte da Amazon S3:

Quando si configura un cluster Amazon EMR per crittografare i dati su EMRFS con una chiave KMS, si sceglie la chiave KMS che si desidera sia utilizzata da Amazon S3 o dal cluster Amazon EMR. Con SSE-KMS, puoi scegliere la Chiave gestita da AWS per Amazon S3 con l'alias aws/s3 o una chiave simmetrica gestita dal cliente che crei. Con la crittografia lato client, è necessario scegliere una chiave gestita dal cliente simmetrica creata dall'utente. Quando scegli una chiave gestita dal cliente, devi assicurarti che il cluster Amazon EMR abbia le autorizzazioni per utilizzare la chiave KMS. Per ulteriori informazioni, consulta Utilizzo di AWS KMS keys per la crittografia nella Guida alla gestione di Amazon EMR.

Per la crittografia lato server e lato client, la chiave KMS scelta è la chiave root in un flusso di lavoro di crittografia envelope. I dati sono crittografati con una chiave di dati univoca che è crittografata con la chiave KMS in AWS KMS. I dati crittografati e una copia crittografata della chiave di dati vengono archiviati insieme come un singolo oggetto crittografato in un bucket S3. Per ulteriori informazioni sul funzionamento, consulta gli argomenti indicati di seguito.

Processo di crittografia dei dati su EMRFS con SSE-KMS

Quando configuri un cluster Amazon EMR per utilizzare SSE-KMS, il processo di crittografia lavora come segue:

  1. Il cluster invia i dati ad Amazon S3 per lo storage in un bucket S3.

  2. Amazon S3 invia una GenerateDataKeyrichiesta aAWS KMS, specificando l'ID della chiave KMS che hai scelto quando hai configurato il cluster per l'utilizzo di SSE-KMS. La richiesta include il contesto di crittografia, per ulteriori informazioni consulta Contesto di crittografia.

  3. AWS KMS genera una chiave di crittografia dei dati univoca (chiave di dati), quindi invia due copie di questa chiave di dati ad Amazon S3. Una copia non è crittografata (testo normale) e l'altra copia viene crittografata con la chiave KMS.

  4. Amazon S3 utilizza la chiave di dati in testo in chiaro per crittografare i dati ricevuti nella fase 1, quindi rimuove il prima possibile la chiave di dati in testo normale dalla memoria dopo l'utilizzo.

  5. Amazon S3 archivia i dati crittografati e una copia crittografata della chiave di dati insieme come un singolo oggetto crittografato in un bucket S3.

Il processo di decrittografia avviene in questo modo:

  1. Il cluster richiede un oggetto dati crittografati da un bucket S3.

  2. Amazon S3 estrae la chiave di dati crittografati dall'oggetto S3, quindi invia la chiave di dati crittografati a AWS KMS con una richiesta Decrypt. La richiesta include un contesto di crittografia.

  3. AWS KMS decritta la chiave di dati crittografati utilizzando la stessa chiave KMS usata per crittografarli, quindi invia la chiave di dati decrittata (testo normale) ad Amazon S3.

  4. Amazon S3 utilizza la chiave di dati in testo normale per decrittografare i dati crittografati, quindi rimuove il prima possibile la chiave di dati in testo in chiaro dalla memoria dopo l'utilizzo.

  5. Amazon S3 invia i dati decrittografati al cluster.

Processo di crittografia dei dati su EMRFS con CSE-KMS

Quando configuri un cluster Amazon EMR per utilizzare CSE-KMS, il processo di crittografia lavora come segue:

  1. Quando è pronto per archiviare i dati in Amazon S3, il cluster invia una GenerateDataKeyrichiesta aAWS KMS, specificando l'ID chiave della chiave KMS che hai scelto quando hai configurato il cluster per l'utilizzo di CSE-KMS. La richiesta include il contesto di crittografia, per ulteriori informazioni consulta Contesto di crittografia.

  2. AWS KMS genera una chiave di crittografia dei dati univoca (chiave di dati), quindi invia due copie di questa chiave di dati al cluster. Una copia non è crittografata (testo normale) e l'altra copia viene crittografata con la chiave KMS.

  3. Il cluster utilizza la chiave di dati in testo normale per crittografare i dati, quindi rimuove il prima possibile la chiave di dati in testo normale dalla memoria dopo l'utilizzo.

  4. Il cluster abbina i dati crittografati e una copia crittografata della chiave di dati insieme in un singolo oggetto crittografato.

  5. Il cluster invia l'oggetto crittografato ad Amazon S3 per lo storage.

Il processo di decrittografia avviene in questo modo:

  1. Il cluster richiede un oggetto dati crittografati a un bucket S3.

  2. Amazon S3 invia l'oggetto crittografato al cluster.

  3. Il cluster estrae la chiave di dati crittografati dall'oggetto crittografato, quindi invia la chiave di dati crittografati a AWS KMS con una richiesta Decrypt. La richiesta include il contesto di crittografia.

  4. AWS KMS decritta la chiave di dati crittografati utilizzando la stessa chiave KMS usata per crittografarli, quindi invia la chiave di dati decrittati (testo in chiaro) al cluster.

  5. Il cluster utilizza la chiave di dati in testo normale per decrittografare i dati crittografati, quindi rimuove il prima possibile la chiave di dati in testo normale dalla memoria dopo l'utilizzo.

Crittografia dei dati su volumi di storage di nodi cluster

Un cluster Amazon EMR è una raccolta di istanze Amazon Elastic Compute Cloud (Amazon EC2). Ogni istanza nel cluster viene chiamata nodo cluster o nodo. Ogni nodo può avere due tipi di volumi di archiviazione: volumi di archiviazione di istanze e volumi Amazon Elastic Block Store (Amazon EBS). È possibile configurare il cluster per l'utilizzo di Linux Unified Key Setup (LUKS) per crittografare entrambi i tipi di volumi di storage sui nodi (ma non il volume di avvio di ogni nodo). Questa si chiama la crittografia dei dati su disco locale.

Quando si abilita la crittografia dei dati su disco locale per un cluster, è possibile scegliere di crittografare la chiave LUKS con una chiave KMS in AWS KMS. Devi scegliere una chiave gestita dal cliente che hai creato; non è possibile utilizzare una Chiave gestita da AWS. Se scegli una gestita dal cliente, devi assicurarti che il cluster Amazon EMR abbia le autorizzazioni per utilizzare la chiave KMS. Per ulteriori informazioni, consulta Utilizzo di AWS KMS keys per la crittografia nella Guida alla gestione di Amazon EMR.

Quando abiliti la crittografia dei dati su disco locale utilizzando una chiave KMS, il processo di crittografia funziona in questo modo:

  1. All'avvio di ogni nodo del cluster, invia una GenerateDataKeyrichiesta aAWS KMS, specificando l'ID della chiave KMS che hai scelto quando hai abilitato la crittografia del disco locale per il cluster.

  2. AWS KMS genera una chiave di crittografia dei dati univoca (chiave di dati), quindi invia due copie di questa chiave di dati al nodo. Una copia non è crittografata (testo normale) e l'altra copia viene crittografata con la chiave KMS.

  3. Il nodo utilizza una versione con codifica base64 della chiave di dati di testo normale come password che protegge la chiave LUKS. Il nodo salva la copia crittografata della chiave di dati per il volume di avvio.

  4. Se il nodo si riavvia, il nodo riavviato invia la chiave di dati crittografati a AWS KMS con la richiesta Decrypt.

  5. AWS KMS decritta la chiave di dati crittografati utilizzando la stessa chiave KMS usata per crittografarli, quindi invia la chiave di dati decrittati (testo in chiaro) al nodo.

  6. Il nodo utilizza una versione con codifica base64 della chiave di dati di testo normale come password per sbloccare la chiave LUKS.

Contesto di crittografia

Ogni servizio AWS integrato con AWS KMS può specificare un contesto di crittografia quando utilizza AWS KMS per generare chiavi di dati o per crittografare o decrittare i dati. Il contesto di crittografia rappresenta informazioni autenticate supplementari utilizzate da AWS KMS per verificare l'integrità dei dati. Quando un servizio specifica un contesto di crittografia per un'operazione di crittografia, il servizio deve specificare lo stesso contesto di crittografia anche per l'operazione di decrittografia corrispondente o la decrittografia non riuscirà. Il contesto di crittografia viene scritto anche nei file di log AWS CloudTrail per aiutarti a comprendere perché è stata utilizzata una determinata chiave KMS.

La sezione seguente spiega il contesto di crittografia utilizzato in ogni scenario di crittografia Amazon EMR che utilizza una chiave KMS.

Contesto di crittografia per la crittografia EMRFS con SSE-KMS

Con SSE-KMS, il cluster Amazon EMR invia i dati ad Amazon S3, quindi Amazon S3 utilizza una chiave KMS per crittografare i dati prima di salvarli in un bucket S3. In questo caso, Amazon S3 utilizza l'Amazon Resource Name (ARN) dell'oggetto S3 come contesto di crittografia per ogni richiesta GenerateDataKeyand Decrypt a cui viene inviata. AWS KMS L'esempio seguente mostra una rappresentazione JSON del contesto di crittografia che Amazon S3 utilizza.

{ "aws:s3:arn" : "arn:aws:s3:::S3_bucket_name/S3_object_key" }

Contesto di crittografia per la crittografia EMRFS con CSE-KMS

Con CSE-KMS, il cluster Amazon EMR utilizza una chiave KMS per crittografare i dati prima di inviarli a Amazon S3 per l'archiviazione. In questo caso, il cluster utilizza l'Amazon Resource Name (ARN) della chiave KMS come contesto di crittografia per ogni richiesta GenerateDataKeyand Decrypt a cui invia. AWS KMS L'esempio seguente mostra una rappresentazione JSON del contesto di crittografia che il cluster utilizza.

{ "kms_cmk_id" : "arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef" }

Contesto di crittografia per la crittografia su disco locale con LUKS

Quando un cluster Amazon EMR utilizza la crittografia del disco locale con LUKS, i nodi del cluster non specificano il contesto di crittografia con le richieste GenerateDataKeye Decrypt a cui inviano. AWS KMS