5

Scenario : - User logs on to his computer gets authenticated by Kerberos Authentication and submits a map reduce job Hadoop Bezpieczeństwo

Staram się uczyć "Jak Kerberos mogą być realizowane w Hadoop?" I poszły za pośrednictwem tego dokumentu https://issues.apache.org/jira/browse/HADOOP-4487 Mam również przeszedł podstawowe rzeczy Kerberos (https://www.youtube.com/watch?v=KD2Q-2ToloE)

Po zapoznaniu się z tymi zasobami doszedłem do wniosku, który ja reprezentującego przez schemacie. Scenariusz: - logi użytkownika do jego komputera są uwierzytelniane przez uwierzytelnianie Kerberos i zgłaszają zadanie zmniejszenia mapy (proszę przeczytać opis diagramu, który prawie nie potrzebuje 5 minut twojego czasu) Chciałbym wyjaśnić schemat i zadawać pytania wiąże się z kilku etapów (wytłuszczone) Liczby w żółte tło stanowi całość przepływu (liczby od 1 do 19) DT (z czerwonym tle) stanowi Przekazanie Token BAT (z zielonym tle) stanowi blok token dostępu JT (z Brown Background) reprezentuje Token Pracy

Kroki 1,2,3 i 4 oznacza: - Zapytanie za bilet TGT ( ) Wniosek o bilet usługi dla węzła nazwy. Pytanie 1) Gdzie powinien znajdować się KDC? Czy może być na komputerze, w którym znajduje się mój węzeł nazwy lub śledzenie zadań?

Kroki 5,6,7,8 i 9 oznaczają: - Pokaż bilet usługi do węzła nazwy, uzyskaj potwierdzenie. Nazwa węzła wyda delegacja token (czerwony) Użytkownik nie powie o Reklamowe renewer (W tym przypadku jest to praca Tracker)

question2) Użytkownik utrzymuje thisDelegation token wraz z jednej pracy do drugiej Tracker. Czy token delegowania zostanie udostępniony w narzędziu do śledzenia zadań?

Kroki 10,11,12,13 i 14 oznacza: - Zadaj bilet usługi dla trackera Job, dostać bilet usługi z KDC Pokazują ten bilet do Job Tracker i dostać ACK od JobTracker Submit Job + Token Delegacji do JobTracker.

Etapy 15,16 i 17 oznaczają: - Generowanie tokena dostępu do bloku i rozłożenie go na wszystkie węzły danych. Wyślij blockID i zablokować dostęp do Token Job Tracker i Job Tracker będzie go przekazywać TaskTracker

pytanie 3) Kto poprosi o BlockAccessToken i Bloku ID z nazwą węzła? JobTracker lub TaskTracker

Przykro mi, przegapiłem numer 18 przez pomyłkę. Step19 oznacza: - Moduł śledzenia zadań generuje Token zadania (brązowy) i przekazuje go do TaskTrackers.

Pytanie4) Czy mogę stwierdzić, że będzie jeden token delegowania na użytkownika, który będzie dystrybuowany w całym klastrze i będzie jeden token pracy na zadanie? Tak więc użytkownik będzie miał tylko jeden token delegowania i wiele tokenów pracy (równe liczbie przesłanych przez niego zadań).

Proszę mi powiedzieć, czy coś przeoczyłem, czy też myliłem się w pewnym momencie mojego wyjaśnienia.

+1

Rohit! Dobra analiza; Czy masz jakieś rozwiązanie, aby zabezpieczyć Hadoop? Jeśli tak, czy możesz udostępnić odpowiedź w tym poście? –

+0

Proszę Zaktualizuj odpowiedź, jeśli masz go @Rohit Sarewar – Rengasamy

Odpowiedz

0

kroki wykonać, aby upewnić się, że Hadoop jest bezpieczna

  1. Instalacja Kerberos w dowolnym serwerze dostępnym dla wszystkich węzłach klastra. yum install krb5-server yum install krb5-Workstation yum install krb5-libs

  2. Modyfikowanie pliku konfiguracyjnego w konfiguracji serwera KDC do konfiguracji plików ACL plików Administrator keytab dla gospodarza. /var/kerberos/krb5kdc/kdc.conf

  3. Zmienić Plik konfiguracyjny /etc/krb5.conf do konfiguracji hosta KDC i administratora serwera

  4. Tworzenie bazy danych na hoście KDC

    $ kdb5_util tworzyć - r host_name -s

  5. Dodaj administratorów do pliku ACL

    1. vi /etc/kdamin.acl
    2. Dodaj administratora główny 'admin/admin @ nazwa_hosta' w tym pliku
  6. Dodaj Admin Principal $ addprinc admin/admin @ nazwa_hosta

Instalowanie klientów Kerberos na wszystkich węzłach klastra

yum install krb5-workstation

Skopiuj plik krb5.conf do wszystkich węzłów klastra

Upewnij się, aby włączyć tryb bezpieczny w Hadoop ustawiając wymagane konfiguracje https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SecureMode.html

Sprawdź:

  • Zaloguj się jako zwykły użytkownik, aby klaster bramy lub węzeł, w którym keytabs użytkownika są rozmieszczone
  • Run „kinit -k -t/location/of/keytab file nazwa_użytkownika @ nazwa_hosta "
  • Uruchom polecenie HDFS lub zadania mapreduce, aby zweryfikować, czy klaster jest zabezpieczony

Oto podstawowe kroki, aby upewnić się, że Kerberos jest włączony w klastrze.