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 trasparente in HDFS su Amazon EMR
La crittografia trasparente è implementata attraverso l'utilizzo di zone di crittografia di HDFS, che sono i percorsi HDFS definiti dall'utente. Ogni zona di crittografia ha una propria chiave, che viene memorizzata nel server di chiavi specificato utilizzando la classificazione di configurazione hdfs-site
.
A partire dalla versione Amazon EMR 4.8.0, puoi utilizzare le configurazioni di sicurezza di Amazon EMR per configurare più facilmente impostazioni di crittografia di dati per cluster. Le configurazioni di sicurezza offrono impostazioni che assicurano la sicurezza dei dati in transito e a riposo nei volumi di archiviazione di Amazon Elastic Block Store (Amazon EBS) e in EMRFS su Amazon S3. Per ulteriori informazioni, consulta Crittografia dei dati in transito e a riposo nella Guida alla gestione di Amazon EMR.
Amazon EMR utilizza Hadoop KMS per impostazione predefinita; tuttavia, puoi utilizzare un altro KMS che implementa il funzionamento dell'API. KeyProvider Ogni file in una zona di crittografia HDFS ha le proprie chiavi di crittografia dei dati univoche, che sono crittografate in base alla chiave della zona di crittografia. I dati HDFS sono crittografati end-to-end (a riposo e in transito) quando i dati vengono scritti in una zona di crittografia, poiché le attività di crittografia e decrittografia avvengono solo nel client.
Non è possibile spostare file tra zone di crittografia o da una zona di crittografia a percorsi non crittografati.
Il client NameNode e HDFS interagiscono con Hadoop KMS (o un KMS alternativo configurato dall'utente) tramite l'operazione API. KeyProvider Il KMS è responsabile della memorizzazione delle chiavi di crittografia nel deposito chiavi di supporto. Inoltre, Amazon EMR include la policy di forza illimitata JCE, in modo da poter creare chiavi della lunghezza desiderata.
Per ulteriori informazioni, consulta Crittografia trasparente in HDFS
Nota
In Amazon EMR, KMS su HTTPS non è abilitato per impostazione predefinita con Hadoop KMS. Per ulteriori informazioni su come abilitare KMS su HTTPS, consulta la documentazione di KMS Hadoop
Configurazione della crittografia trasparente HDFS
Puoi configurare la crittografia trasparente in Amazon EMR mediante la creazione di chiavi e aggiungendo zone di crittografia. Ci sono diversi modi per farlo:
-
Utilizzo dell'operazione API di configurazione di Amazon EMR quando si crea un cluster
-
Usare una fase Hadoop JAR con command-runner.jar
-
Accedendo al nodo master del cluster Hadoop e utilizzando i client della riga di comando
hadoop key
ehdfs crypto
-
Utilizzo di REST per Hadoop KMS e HDFS APIs
Per ulteriori informazioni su REST APIs, consulta la rispettiva documentazione per Hadoop KMS e HDFS.
Per creare zone di crittografia e le relative chiavi durante la creazione di cluster utilizzando la CLI
La classificazione hdfs-encryption-zones
nell'operazione API di configurazione consente di specificare un nome di chiave e una zona di crittografia quando si crea un cluster. Amazon EMR crea questa chiave in Hadoop KMS sul cluster e configura l'area di crittografia.
-
Creare un cluster con il seguente comando.
aws emr create-cluster --release-label
emr-7.8.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonNota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
myConfig.json
:[ { "Classification": "hdfs-encryption-zones", "Properties": { "/myHDFSPath1": "path1_key", "/myHDFSPath2": "path2_key" } } ]
Per creare manualmente le zone di crittografia e le relative chiavi sul nodo master
-
Avviare il cluster utilizzando una versione di Amazon EMR superiore a 4.1.0.
-
Connettersi al nodo principale del cluster con SSH.
-
Creare una chiave all'interno di Hadoop KMS.
$ hadoop key create path2_key path2_key has been successfully created with options Options{cipher='AES/CTR/NoPadding', bitLength=256, description='null', attributes=null}. KMSClientProvider[http://ip-x-x-x-x.ec2.internal:16000/kms/v1/] has been updated.
Importante
Hadoop KMS richiede che i nomi delle chiavi chiave siano minuscoli. Se si utilizza una chiave con caratteri maiuscoli, il cluster fallirà durante l'avvio.
-
Creare il percorso della zona di crittografia in HDFS.
$ hadoop fs -mkdir /myHDFSPath2
-
Rendere il percorso HDFS una zona di crittografia utilizzando la chiave creata.
$ hdfs crypto -createZone -keyName path2_key -path /myHDFSPath2 Added encryption zone /myHDFSPath2
Per creare manualmente le zone di crittografia e le relative chiavi utilizzando AWS CLI
-
Aggiungere i passaggi per creare manualmente le chiavi KMS e le zone di crittografia con il seguente comando.
aws emr add-steps --cluster-id j-2AXXXXXXGAPLF --steps Type=CUSTOM_JAR,Name="Create First Hadoop KMS Key",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop key create path1_key\""] \ Type=CUSTOM_JAR,Name="Create First Hadoop HDFS Path",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop fs -mkdir /myHDFSPath1\""] \ Type=CUSTOM_JAR,Name="Create First Encryption Zone",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hdfs crypto -createZone -keyName path1_key -path /myHDFSPath1\""] \ Type=CUSTOM_JAR,Name="Create Second Hadoop KMS Key",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop key create path2_key\""] \ Type=CUSTOM_JAR,Name="Create Second Hadoop HDFS Path",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hadoop fs -mkdir /myHDFSPath2\""] \ Type=CUSTOM_JAR,Name="Create Second Encryption Zone",Jar="command-runner.jar",ActionOnFailure=CONTINUE,Args=[/bin/bash,-c,"\"hdfs crypto -createZone -keyName path2_key -path /myHDFSPath2\""]
Nota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
Considerazioni per la crittografia trasparente HDFS
Una best practice è quella di creare una zona di crittografia per ogni applicazione in cui possono scrivere file. Inoltre, è possibile crittografare tutti gli HDFS utilizzando la hdfs-encryption-zones classificazione nell'API di configurazione e specificare il percorso principale (/) come zona di crittografia.
Server di gestione delle chiavi Hadoop
Hadoop KMS
Per configurare Hadoop KMS, utilizza la classificazione per modificare le impostazioni. hadoop-kms-site Per configurare ACLs, si utilizza la classificazione kms-acls.
Per ulteriori informazioni, consulta la documentazione di Hadoop KMS
Nota
In Amazon EMR, KMS su HTTPS non è abilitato per impostazione predefinita con Hadoop KMS. Per informazioni su come abilitare KMS su HTTPS, consulta la documentazione di KMS Hadoop
Importante
Hadoop KMS richiede che i nomi delle chiavi chiave siano minuscoli. Se si utilizza una chiave con caratteri maiuscoli, il cluster fallirà durante l'avvio.
Configurazione di Hadoop KMS in Amazon EMR
Utilizzando Amazon EMR versione 4.6.0 o successive, la kms-http-port
è 9700 e la kms-admin-port
è 9701.
È possibile configurare Hadoop KMS al momento della creazione del cluster utilizzando le API di configurazione per i rilasci di Amazon EMR. Di seguito sono riportate le classificazioni degli oggetti di configurazione disponibili per Hadoop KMS:
Classificazione | Nome di file |
---|---|
hadoop-kms-site | kms-site.xml |
hadoop-kms-acls | kms-acls.xml |
hadoop-kms-env | kms-env.sh |
hadoop-kms-log4j | kms-log4j.properties |
Per impostare Hadoop KMS ACLs utilizzando la CLI
-
Crea un cluster con Hadoop KMS utilizzando il seguente comando: ACLs
aws emr create-cluster --release-label
emr-7.8.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonNota
I caratteri di continuazione della riga Linux (\) sono inclusi per questioni di leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
myConfig.json
:[ { "Classification": "hadoop-kms-acls", "Properties": { "hadoop.kms.blacklist.CREATE": "hdfs,foo,myBannedUser", "hadoop.kms.acl.ROLLOVER": "myAllowedUser" } } ]
Per disabilitare la cache di Hadoop KMS utilizzando l'interfaccia a riga di comando (CLI)
-
Creare un cluster con Hadoop KMS
hadoop.kms.cache.enable
impostato sufalse
utilizzando il seguente comando:aws emr create-cluster --release-label
emr-7.8.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonNota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
myConfig.json
:[ { "Classification": "hadoop-kms-site", "Properties": { "hadoop.kms.cache.enable": "false" } } ]
Per impostare le variabili di ambiente nello script kms-env.sh
utilizzando l'interfaccia a riga di comando (CLI)
-
Modificare le impostazioni in
kms-env.sh
tramite la configurazionehadoop-kms-env
. Creare un cluster con Hadoop KMS utilizzando il seguente comando:aws emr create-cluster --release-label
emr-7.8.0
--instance-type m5.xlarge --instance-count 2 \ --applications Name=App1
Name=App2
--configurations https://s3.amazonaws.com/amzn-s3-demo-bucket/myfolder/myConfig.jsonNota
I caratteri di continuazione della riga Linux (\) sono inclusi per la leggibilità. Possono essere rimossi o utilizzati nei comandi Linux. Per Windows, rimuoverli o sostituirli con un accento circonflesso (^).
myConfig.json
:[ { "Classification": "hadoop-kms-env", "Properties": { }, "Configurations": [ { "Classification": "export", "Properties": { "JAVA_LIBRARY_PATH": "
/path/to/files
", "KMS_SSL_KEYSTORE_FILE": "/non/Default/Path/
.keystore", "KMS_SSL_KEYSTORE_PASS": "myPass
" }, "Configurations": [ ] } ] } ]
Per ulteriori informazioni sulla configurazione di Hadoop KMS, consulta la documentazione di Hadoop KMS
Crittografia trasparente HDFS su cluster EMR con più nodi master
Apache Ranger
Apache Ranger KMS archivia la chiave root e le chiavi Encryption Zone (EZ) nel tuo Amazon RDS per un cluster Amazon EMR con più nodi primari. Per abilitare la crittografia trasparente in HDFS su un cluster Amazon EMR con più nodi primari, devi fornire le seguenti configurazioni.
-
Amazon RDS o il tuo URL di connessione al server MySQL per archiviare la chiave root Ranger KMS e la chiave EZ
-
Nome utente e password per MySQL
-
Password per la chiave root Ranger KMS
-
File PEM di Certificate Authority (CA) per la connessione SSL al server MySQL. Puoi scaricare il pacchetto di certificati per il tuo Regione AWS da Scarica pacchetti di certificati per Amazon RDS.
Puoi fornire queste configurazioni utilizzando la classificazione ranger-kms-dbks-site
e la classificazione ranger-kms-db-ca
, come indicato nell'esempio seguente.
[{ "Classification": "ranger-kms-dbks-site", "Properties": { "ranger.ks.jpa.jdbc.url": "
jdbc:log4jdbc:mysql://mysql-host-url.xx-xxx-1.xxx.amazonaws.com:3306/rangerkms
", "ranger.ks.jpa.jdbc.user": "mysql-user-name
", "ranger.ks.jpa.jdbc.password": "mysql-password
", "ranger.db.encrypt.key.password": "password-for-encrypting-a-master-key
" } }, { "Classification": "ranger-kms-db-ca", "Properties": { "ranger.kms.trust.ca.file.s3.url": "<S3-path-of-downloaded-pem-file>" } } ]]
Di seguito sono riportate le classificazioni degli oggetti di configurazione per Apache Ranger KMS.
Classificazione | Descrizione |
---|---|
ranger-kms-dbks-site | Modifica i valori nel file dbks-site.xml di Ranger KMS. |
ranger-kms-site | Modifica i valori nel ranger-kms-site file.xml di Ranger KMS. |
ranger-kms-env | Modifica i valori nell'ambiente Ranger KMS. |
ranger-kms-log4j | Modifica i valori nel file kms-log4j.properties di Ranger KMS. |
ranger-kms-db-ca | Modifica i valori per il file CA su S3 per la connessione SSL di MySQL con Ranger KMS. |
Considerazioni
-
Si consiglia di crittografare l'istanza Amazon RDS per una maggiore sicurezza. Per ulteriori informazioni, consulta la Panoramica della crittografia delle risorse Amazon RDS.
-
Si consiglia di utilizzare database MySQL separati in ogni cluster Amazon EMR con più nodi primari per un maggiore livello di sicurezza.
-
Per configurare la crittografia trasparente in HDFS su un cluster Amazon EMR con più nodi primari, devi specificare la classificazione
hdfs-encryption-zones
durante la creazione del cluster. In caso contrario, Ranger KMS non verrà configurato o avviato. La riconfigurazione della classificazionehdfs-encryption-zones
o di una qualsiasi classificazione di configurazione Hadoop KMS su un cluster in esecuzione non è supportata su cluster Amazon EMR con più nodi primari. -
Il pacchetto di certificati PEM scaricato da Scarica pacchetti di certificati per Amazon RDS raggruppa più certificati in un unico file. Amazon EMR 7.3.0 e versioni successive supportano l'importazione di più certificati dal file PEM con la configurazione.
ranger.kms.trust.ca.file.s3.url