Isilon: Configurazione Kerberos automatizzata di Ambari con Isilon (in inglese)
Summary: In questo articolo viene illustrato come configurare la sicurezza Kerberos con un cluster Hadoop gestito da Ambari.
Symptoms
Cause
Resolution
Questo articolo descrive come configurare la sicurezza Kerberos con un cluster Hadoop gestito da Ambari.
Kerberos è fondamentale per l'autenticazione avanzata e la crittografia per Hadoop, ma può rappresentare una sfida per la configurazione e l'amministrazione. Ambari 2.0 ha introdotto la configurazione Kerberos automatizzata basata su procedura guidata, il che rende il processo molto più veloce e meno soggetti a errori. A partire da OneFS 8.0.0.1, i clienti Dell EMC Isilon possono sfruttare questa eccellente funzionalità.
Prerequisiti
- OneFS 8.0.0.1 o versione successiva.
- Ambari 2.0 o versione successiva.
- MIT KDC in esecuzione (Widedal non è supportato). Seguire la procedura riportata di seguito per configurare l'infrastruttura Kerberos.
- Inoltrare e invertire il DNS tra tutti gli host.
- Tutti i servizi sono in esecuzione (verde) sul dashboard Ambari.
Abilitare Kerberos
Preconfigurazione
Prima di avviare la procedura guidata, è necessario impostare due configurazioni e riavviare tutti i servizi.- In HDFS -> Il sito core personalizzato imposta "hadoop.security.token.service.use_ip" su "false"
- In MapReduce2 -> Advanced mapred-site aggiungere "'hadoop classpath':" all'inizio di "mapreduce.application.classpath". Prendere nota dei due punti e dei backtick (ma non copiare le virgolette).
Per iniziare
Passare a Admin -> Kerberos e premere il pulsante "Enable Kerberos". I titoli all'interno di questa sezione fanno riferimento ai titoli delle pagine della procedura guidata Kerberos.
Selezionare "Existing MIT KDC" e verificare che i prerequisiti siano soddisfatti, quindi cliccare su "Next". Si noti che Isilon non utilizza Java e non richiede JCE.
Configurare Kerberos/Installare e testare il client Kerberos
Inserire tutte le informazioni KDC e admin server. Al passaggio 3 (installare e testare il client Kerberos), il server Ambari eseguirà un test di fumo per verificare che Kerberos sia stato configurato correttamente.
Configurazione delle identità/conferma della configurazione
a) Entità utente (UPN) Ambari
Ambari crea entità utente nel formato $ -$ @$ , quindi utilizza hadoop.security.auth_to_local in core-site.xml per mappare le entità in soli $ sul file system.Isilon non rispetta le regole di mapping, pertanto è necessario rimuovere -$ da tutte le entità nella sezione "Ambari Principals". Isilon esegue lo striping di @$ , pertanto non è necessario l'aliasing. In un cluster Ambari 2.2.1 che esegue HDFS, FALCON, MapReduce2, Tez, Hive, HBase, Pig, Sqoop, Oozie, Zookeeper, Falcon, Storm, Flume, Accumulo, Ambari Metrics, Kafka, Files, Mahout, Slider e Spark, apportare le seguenti modifiche nella scheda "General":
- Nome principale di Smokeuser: ${cluster-env/smokeuser}-$ @$ => ${cluster-env/smokeuser}@$
- spark.history.kerberos.principal: ${spark-env/spark_user}-$ @$ => ${spark-env/spark_user}-@$
- Nome principale storm: ${storm-env/storm_user}-$ @$ => ${storm-env/storm_user}-@$
- Entità utente HBase: ${hbase-env/hbase_user}-$ @$ => ${hbase-env/hbase_user}@$
- Entità utente HDFS: ${hadoop-env/hdfs_user}-$ @$ => ${hadoop-env/hdfs_user}@$
- accumulo_principal_name: ${accumulo-env/accumulo_user}-$ @$ => ${accumulo-env/accumulo_user}@$
- trace.user: tracer-$ @$ => tracer@$
b) Service Principal (SPNs)
Ambari crea entità di servizio, alcune delle quali sono diverse dai nomi utente UNIX. Anche in questo caso, poiché Isilon non rispetta le regole di mapping, è necessario modificare i nomi principali in modo che corrispondano ai rispettivi nomi utente UNIX. Nel cluster Ambari 2.2.1, apportare le seguenti modifiche nella scheda "Advanced":
- HDFS -> dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$
- CON L'ACRONIMO -> sispone.resourcemanager.principal: rm/_HOST@$ => relazione/_HOST@$
- PER L'AEA-> sispone.nodemanager.principal: nm/_HOST@$ => relazione/_HOST@$
- MapReduce2 -> mapreduce.jobhistory.principal: jhs/_HOST@$ => mappato/_HOST@$
- Falcon -> *.dfs.namenode.kerberos.principal: nn/_HOST@$ => hdfs/_HOST@$

Dopo aver configurato le entità appropriate, premere "Next". Nella schermata "Confirm Configuration", premere "Next".
Arrestare il cluster di servizi/kerberize
I servizi di arresto e kerberizing dovrebbero avere esito positivo.

Non procedere: Isilon non consente ad Ambari di creare schede chiave per le entità Isilon. Al contrario, è necessario configurare manualmente Kerberos su Isilon utilizzando la procedura riportata di seguito.
a) Creare KDC come auth provider Isilon
Nota: Se questa zona Isilon è già configurata per utilizzare il KDC MIT, è possibile ignorare questi passaggi.
isi auth krb5 create --realm=$REALM --admin-server=$admin_server --kdc=$kdc_server --user=$admin_principal --password=$admin_password
isi zone zones modify --zone=$isilon_zone --add-auth-provider=krb5:$REALM
b) Creare service principal per HDFS e HTTP (per WebHDFS).
isi auth krb5 spn create --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
isi auth krb5 spn create --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --user=$admin_principal --password=$admin_password
c) Creare tutti gli utenti proxy necessari
Nei cluster non protetti, qualsiasi utente può impersonare qualsiasi altro utente. Nei cluster protetti, gli utenti proxy devono essere specificati in modo esplicito.
Se si dispone di Hive o Oozie, aggiungere gli utenti proxy appropriati.
isi hdfs proxyusers create oozie --zone=$isilon_zone --add-user=ambari-qa
isi hdfs proxyusers create hive --zone=$isilon_zone --add-user=ambari-qa
d) Disabilitare l'autenticazione semplice
È consentita solo l'autenticazione kerberos o del token di delega.
isi hdfs settings modify --zone=$isilon_zone --authentication-mode=kerberos_only
Ora che Isilon è configurato, premere "Next" in Ambari per passare all'ultimo passaggio della procedura guidata.
Avviare e testare i servizi

Se i servizi non si avviano, ecco alcuni trucchi per il debug dei problemi Kerberos:
- A causa di un bug in UN'AZIENDA, è necessario impostare "xp.resourcemanager.principal" su "dedumina/$rm_hostname@$REALM in ATTIVARE ->Sito personalizzato. La sintassi "_HOST" non funziona con Kerberos abilitato.
- Per eseguire il debug degli errori GSSAPI/Kerberos Java, aggiungere "-Dsun.security.krb5.debug=true" a HADOOP_OPTS.
- Per gli errori HTTP 401, utilizzare curl with -iv per ulteriori informazioni di debug.
- Assicurarsi che il DNS in avanti e inverso sia configurato tra tutti gli host.
In HDFS-> Il sito core personalizzato imposta "hadoop.rpc.protection" su "integrity" o "privacy". Oltre all'autenticazione, le garanzie di integrità non sono state manomesse e la privacy crittografa tutti i messaggi.
Eseguire un job.
Da qualsiasi host client, provare un job MapReduce!
kinit <some-user> yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 1 1000
Job Finished in 37.635 seconds
Estimated value of Pi is 3.14800000000000000000
Congratulations--you have secured your cluster with Kerberos!
(Opzionale) Disabilitare Kerberos
Pulire Isilon
Prima di tutto, è necessario ripulire Isilon. Si tratta essenzialmente dell'inversa dell'abilitazione di Kerberos.
a) Disabilitare l'autenticazione Kerberos
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) Eliminare eventuali utenti proxy
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
c) Eliminare entità
isi auth krb5 spn delete --provider-name=$REALM --spn=hdfs/$isilon_smartconnect@$REALM --all
isi auth krb5 spn delete --provider-name=$REALM --spn=HTTP/$isilon_smartconnect@$REALM --all
Si noti che i comandi di cui sopra consentono di rimuovere solo tali entità da Isilon, ma non di rimuoverle da KDC. Utilizzare questi comandi per rimuovere le entità Isilon dal KDC:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) Rimuovere KDC come provider di autenticazione Isilon
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
Pulire i client utilizzando Ambari
Premere "Disable Kerberos" in Admin -> Kerberos. Tutti i servizi dovrebbero essere disponibili in verde.