Isilon: Automatyczna konfiguracja Kerberos Ambari z Isilon
Summary: W tym artykule omówiono konfigurowanie zabezpieczeń Kerberos z klastrem Hadoop zarządzanym przez Ambari.
Symptoms
Cause
Resolution
W tym artykule opisano sposób konfigurowania zabezpieczeń Kerberos z klastrem Hadoop zarządzanym przez Ambari.
Kerberos jest centralnym elementem silnego uwierzytelniania i szyfrowania Hadoop, ale konfiguracja i administrowanie może być wyzwaniem. Firma Ambari 2.0 wprowadziła automatyczną konfigurację Kerberos opartą na kreatorze, dzięki której proces ten jest znacznie szybszy i mniej podatny na błędy. Począwszy od OneFS 8.0.0.1, klienci Dell EMC Isilon mogą skorzystać z tej doskonałej funkcji.
Wymagania wstępne
- OneFS w wersji 8.0.0.1 lub nowszej.
- Ambari 2.0 lub nowszy.
- Uruchamianie KONTROLERA MIT KDC (Texdal nie jest obsługiwany). Wykonaj następujące czynności, aby skonfigurować infrastrukturę Kerberos.
- Przekazywanie i odwracanie DNS między wszystkimi hostami.
- Wszystkie usługi są uruchomione (zielony) na pulpicie nawigacyjnym Ambari.
Włącz Kerberos
Konfiguracja wstępna
Przed uruchomieniem kreatora należy ustawić dwie konfiguracje i ponownie uruchomić wszystkie usługi.- W HDFS —> niestandardowy zestaw rdzeni w lokalizacji "hadoop.security.token.service.use_ip" na "false"
- W MapReduce2 -> Advanced mapred-site add "'hadoop classpath':" na początku "mapreduce.application.classpath". Zwróć uwagę na dwukropek i kratkę (ale nie należy kopiować cudzysłowów).
Pierwsze kroki
Przejdź do opcji Admin -> Kerberos i naciśnij przycisk "Enable Kerberos". Tytuły w tej sekcji odnoszą się do tytułów stron kreatora Kerberos.
Wybierz opcję "Existing MIT KDC" i upewnij się, że wymagania wstępne są spełnione, a następnie kliknij przycisk "Next" (Dalej). Należy pamiętać, że Isilon nie używa języka Java i nie potrzebuje JCE.
Konfiguracja kerberos / instalacji i testowania klienta Kerberos
Wypełnij wszystkie informacje o kontrolerze KDC i serwerze administratora. W kroku 3 (instalacja i test klienta Kerberos) serwer Ambari wykona test dymu, aby upewnić się, że skonfigurowano poprawnie Kerberos.
Konfiguracja tożsamości / potwierdzenie konfiguracji
a) Dyrektorzy firm Ambari (UPNs)
Ambari tworzy nadrzędnych użytkowników w postaci $ -$ @$ , a następnie używa hadoop.security.auth_to_local w pliku core-site.xml , aby zmapować zleceniodawców na tylko $ w systemie plików.Isilon nie obsługuje reguł mapowania, dlatego należy usunąć -$ ze wszystkich zleceń w sekcji "Ambari Principals". Isilon zdejmie @ $ , więc aliasowanie nie jest konieczne. W klastrze Ambari 2.2.1 z obsługą HDFS, YARN, MapReduce2, Tez, Hive, HBase, Falcon, Sqoop, Oozie, Falcon, Storm, Flume, Accumulo, Ambari Metrics, Kafka, Volt, Voltout, Slider i Spark, wprowadź następujące modyfikacje na karcie "Ogólne":
- Główna nazwa użytkownika Smokeuser: ${cluster-env/smokeuser}-$ @$ => ${cluster-env/smokeuser}@$
- spark.history.kerberos.principal: ${spark-env/spark_user}-$ @$ => ${spark-env/spark_user}-@$
- Nazwa główna burzy: ${storm-env/storm_user}-$ @$ => ${storm-env/storm_user}-@$
- Główny użytkownik bazy danych: ${hbase-env/hbase_user}-$ @$ => ${hbase-env/hbase_user}@$
- Główny użytkownik 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) Dyrektorzy usług (SPNs)
Ambari tworzą dyrektorów usług, z których część różni się od nazw użytkowników systemu UNIX. Ponownie, ponieważ Isilon nie obsługuje reguł mapowania, należy zmodyfikować nazwy główne, aby pasowały do ich nazw użytkowników UNIX. W klastrze Ambari 2.2.1 wprowadź następujące modyfikacje na karcie "Zaawansowane":
- HDFS —> dfs.namenode.kerberos.principal: nn/_HOST@ USD => hdfs/_HOST@ USD
- YARN -> yarn.resourcemanager.principal: rm/_HOST@$ => yarn/_HOST@$
- YARN -> yarn.nodemanager.principal: nm/_HOST@$ => yarn/_HOST@$
- MapReduce2 —> mapreduce.jobhistory.principal: jhs/_HOST@$ => mapred/_HOST@$
- Falcon —> *.dfs.namenode.kerberos.principal: nn/_HOST@ USD => hdfs/_HOST@ USD

Po skonfigurowaniu odpowiednich zleceniodawców naciśnij przycisk Next (Dalej). Na ekranie Confirm Configuration (Potwierdź konfigurację) naciśnij przycisk Next (Dalej).
Zatrzymaj usługi / klaster Kerberize
Zatrzymanie i kerberizing usług powinno zakończyć się powodzeniem.

Nie kontynuuj: Isilon nie zezwala firmie Ambari na tworzenie tabel kluczy dla zleceniodawców Isilon. Zamiast tego należy ręcznie skonfigurować kerberos na Isilon, wykonując poniższe czynności.
a) Utwórz KDC jako dostawcę rozwiązań Isilon
Uwaga: Jeśli ta strefa Isilon jest już skonfigurowana do korzystania z KONTROLERA MIT KDC, można pominąć te czynności.
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) Tworzenie zleceniodawców usług HDFS i HTTP (dla 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) Tworzenie niezbędnych użytkowników serwera proxy
W niezabezpieczonych klastrach każdy użytkownik może podszywać się pod innych użytkowników. W klastrach zabezpieczonych należy wyraźnie określić użytkowników serwera proxy.
Jeśli masz hive lub Oozie, dodaj odpowiednich użytkowników serwera proxy.
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) Wyłącz proste uwierzytelnianie
Dozwolone jest tylko uwierzytelnianie tokenu delegacji lub Kerberos.
isi hdfs settings modify --zone=$isilon_zone --authentication-mode=kerberos_only
Po skonfigurowaniu Isilon naciśnij przycisk Next (Dalej) w oprogramowaniu Ambari, aby przejść do ostatniego kroku kreatora.
Usługi startowe i testowe

Jeśli nie można uruchomić usług, poniżej przedstawiono kilka wskazówek dotyczących debugowania problemów z Kerberos:
- Ze względu na błąd w YARN, należy ustawić plik "yarn.resourcemanager.principal" na yarn/$rm_hostname@$REALM in YARN —>Custom yarn-site. Składnia "_HOST" nie działa z włączoną funkcją Kerberos.
- Aby debugować błędy Java GSSAPI/Kerberos, dodaj "-Dsun.security.krb5.debug=true" do HADOOP_OPTS.
- W przypadku błędów HTTP 401 użyj polecenia curl with -iv , aby uzyskać dodatkowe informacje na temat debugowania.
- Upewnij się, że między wszystkimi hostami skonfigurowany jest serwer DNS do przodu i do tyłu.
W HDFS —> niestandardowy zestaw podstawowych lokalizacji "hadoop.rpc.protection" na "integralność" lub "prywatność". Oprócz uwierzytelniania komunikaty nie zostały naruszone, a prywatność szyfruje wszystkie komunikaty.
Uruchom zadanie!
Z dowolnego hosta klienckiego spróbuj wykonać zadanie 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!
(opcjonalnie) Wyłącz Kerberos
Czyszczenie Isilon
Najpierw należy wyczyścić Isilon. Jest to w istocie odwrotność włączania Kerberos.
a) Wyłącz uwierzytelnianie Kerberos
isi hdfs settings modify --authentication-mode=simple_only --zone=$isilon_zone
b) Usuwanie wszystkich użytkowników serwera proxy
isi hdfs proxyusers delete oozie --zone=$isilon_zone
isi hdfs proxyusers delete hive --zone=$isilon_zone
c) Usuwanie zleceniodawców
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
Należy pamiętać, że powyższe polecenia usuwają tylko te elementy nadrzędne z Isilon, ale nie usuwają ich z kontrolera KDC. Użyj tych poleceń, aby usunąć elementy nadrzędne Isilon z kontrolera KDC:
kadmin -p $admin_principal
kadmin: delete_principal hdfs/$isilon_smartconnect@$REALM
kadmin: delete_principal HTTP/$isilon_smartconnect@$REALM
d) Usuń KDC jako dostawcę uwierzytelniania Isilon
isi zone zones modify --zone=$isilon_zone --remove-auth-provider=krb5:$REALM
isi auth krb5 delete --provider-name=$REALM
Czyszczenie klientów za pomocą ambari
Naciśnij przycisk Disable Kerberos (Wyłącz Kerberos) w sekcji Admin –> Kerberos. Wszystkie usługi powinny pojawić się na zielono.