Udostępnij za pośrednictwem


Autoryzowanie użytkowników na potrzeby widoków Apache Ambari

Klastry usługi HDInsight z obsługą pakietu Enterprise Security (ESP) zapewniają funkcje klasy korporacyjnej, w tym uwierzytelnianie oparte na identyfikatorze Entra firmy Microsoft. Możesz zsynchronizować nowych użytkowników dodanych do grup firmy Microsoft Entra, które zostały udostępnione do klastra, dzięki czemu ci konkretni użytkownicy mogą wykonywać określone akcje. W przypadku pracy z użytkownikami, grupami i uprawnieniami w systemie Apache Ambari jest obsługiwana zarówno w przypadku klastrów ESP HDInsight, jak i standardowych klastrów usługi HDInsight.

Użytkownicy usługi Active Directory mogą się logować do węzłów klastra przy użyciu poświadczeń domeny. Mogą również używać poświadczeń domeny do uwierzytelniania interakcji klastra z innymi zatwierdzonymi punktami końcowymi, takimi jak Hue, Ambari Views, ODBC, JDBC, PowerShell i interfejsy API REST.

Ostrzeżenie

Nie należy zmieniać hasła usługi Ambari watchdog (hdinsightwatchdog) w klastrze usługi HDInsight opartym na systemie Linux. Zmiana hasła powoduje przerwanie możliwości używania akcji skryptu lub wykonywania operacji skalowania w klastrze.

Jeśli jeszcze tego nie zrobiono, postępuj zgodnie z tymi instrukcjami , aby aprowizować nowy klaster ESP.

Uzyskiwanie dostępu do strony zarządzania ambari

Aby przejść do strony zarządzania systemem Ambari w internetowym interfejsie użytkownika systemu Apache Ambari, przejdź do https://CLUSTERNAME.azurehdinsight.netstrony . Wprowadź nazwę użytkownika i hasło administratora klastra zdefiniowane podczas tworzenia klastra. Następnie na pulpicie nawigacyjnym systemu Ambari wybierz pozycję Zarządzaj ambari pod menu administratora :

Zarządzanie pulpitem nawigacyjnym systemu Apache Ambari.

Dodaj użytkowników

Dodawanie użytkowników za pośrednictwem portalu

  1. Na stronie zarządzania wybierz pozycję Użytkownicy.

    Użytkownicy strony zarządzania apache Ambari.

  2. Wybierz pozycję + Utwórz użytkownika lokalnego.

  3. Podaj nazwę użytkownika i hasło. Wybierz pozycję Zapisz.

Dodawanie użytkowników za pomocą programu PowerShell

Zmodyfikuj poniższe zmienne, zastępując CLUSTERNAMEwartości , NEWUSERi PASSWORD odpowiednimi wartościami.

# Set-ExecutionPolicy Unrestricted

# Begin user input; update values
$clusterName="CLUSTERNAME"
$user="NEWUSER"
$userpass='PASSWORD'
# End user input

$adminCredentials = Get-Credential -UserName "admin" -Message "Enter admin password"

$clusterName = $clusterName.ToLower()
$createUserUrl="https://$($clusterName).azurehdinsight.net/api/v1/users"

$createUserBody=@{
    "Users/user_name" = "$user"
    "Users/password" = "$userpass"
    "Users/active" = "$true"
    "Users/admin" = "$false"
} | ConvertTo-Json

# Create user
$statusCode =
Invoke-WebRequest `
    -Uri $createUserUrl `
    -Credential $adminCredentials `
    -Method POST `
    -Headers @{"X-Requested-By" = "ambari"} `
    -Body $createUserBody | Select-Object -Expand StatusCode

if ($statusCode -eq 201) {
    Write-Output "User is created: $user"
}
else
{
    Write-Output 'User is not created'
    Exit
}

$grantPrivilegeUrl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/privileges"

$grantPrivilegeBody=@{
    "PrivilegeInfo" = @{
        "permission_name" = "CLUSTER.USER"
        "principal_name" = "$user"
        "principal_type" = "USER"
    }
} | ConvertTo-Json

# Grant privileges
$statusCode =
Invoke-WebRequest `
    -Uri $grantPrivilegeUrl `
    -Credential $adminCredentials `
    -Method POST `
    -Headers @{"X-Requested-By" = "ambari"} `
    -Body $grantPrivilegeBody | Select-Object -Expand StatusCode

if ($statusCode -eq 201) {
    Write-Output 'Privilege is granted'
}
else
{
    Write-Output 'Privilege is not granted'
    Exit
}

Write-Host "Pausing for 100 seconds"
Start-Sleep -s 100

$userCredentials = "$($user):$($userpass)"
$encodedUserCredentials = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($userCredentials))
$zookeeperUrlHeaders = @{ Authorization = "Basic $encodedUserCredentials" }
$getZookeeperurl="https://$($clusterName).azurehdinsight.net/api/v1/clusters/$($clusterName)/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"

# Perform query with new user
$zookeeperHosts =
Invoke-WebRequest `
    -Uri $getZookeeperurl `
    -Method Get `
    -Headers $zookeeperUrlHeaders

Write-Output $zookeeperHosts

Dodawanie użytkowników za pomocą narzędzia Curl

Zmodyfikuj poniższe zmienne, zastępując CLUSTERNAMEwartości , ADMINPASSWORD, NEWUSERi USERPASSWORD odpowiednimi wartościami. Skrypt został zaprojektowany do wykonania za pomocą powłoki bash. Niewielkie modyfikacje byłyby potrzebne w wierszu polecenia systemu Windows.

export CLUSTER_NAME="CLUSTERNAME"
export ADMIN_PASSWORD='ADMINPASSWORD'
export USER="NEWUSER"
export USER_PASSWORD='USERPASSWORD'

# create user
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d "{\"Users/user_name\":\"$USER\",\"Users/password\":\"$USER_PASSWORD\",\"Users/active\":\"true\",\"Users/admin\":\"false\"}" \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/users

echo "user created: $USER"

# grant permissions
curl -k -u admin:$ADMIN_PASSWORD -H "X-Requested-By: ambari" -X POST \
-d '[{"PrivilegeInfo":{"permission_name":"CLUSTER.USER","principal_name":"'$USER'","principal_type":"USER"}}]' \
https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/privileges

echo "Privilege is granted"

echo "Pausing for 100 seconds"
sleep 10s

# perform query using new user account
curl -k -u $USER:$USER_PASSWORD -H "X-Requested-By: ambari" \
-X GET "https://$CLUSTER_NAME.azurehdinsight.net/api/v1/clusters/$CLUSTER_NAME/services/ZOOKEEPER/components/ZOOKEEPER_SERVER"

Udzielanie uprawnień do widoków programu Apache Hive

System Ambari oferuje między innymi wystąpienia widoków dla technologii Apache Hive i Apache TEZ. Aby udzielić dostępu do co najmniej jednego wystąpienia widoku programu Hive, przejdź do strony zarządzania ambari.

  1. Na stronie zarządzania wybierz link Widoki w obszarze menu Widoki po lewej stronie.

    Linki widoku systemu Apache Ambari.

  2. Na stronie Widoki rozwiń wiersz HIVE . Istnieje jeden domyślny widok programu Hive tworzony podczas dodawania usługi Hive do klastra. W razie potrzeby można również utworzyć więcej wystąpień widoku hive. Wybierz widok programu Hive:

    Widoki usługi HDInsight — widok apache Hive.

  3. Przewiń w dół strony Widok. W sekcji Uprawnienia masz dwie opcje udzielania użytkownikom domeny uprawnień do widoku:

Udzielanie uprawnień tym użytkownikomUdziel tym użytkownikom uprawnień.

Udzielanie uprawnień do tych grupUdziel uprawnień do tych grup.

  1. Aby dodać użytkownika, wybierz przycisk Dodaj użytkownika .

    • Zacznij wpisywać nazwę użytkownika i zostanie wyświetlona lista rozwijana wcześniej zdefiniowanych nazw.

      Autouzupełnia użytkownika systemu Apache Ambari.

    • Wybierz lub zakończ wpisywanie nazwy użytkownika. Aby dodać tę nazwę użytkownika jako nowego użytkownika, wybierz przycisk Nowy .

    • Aby zapisać zmiany, zaznacz niebieskie pole wyboru.

      Apache Ambari udziela uprawnień użytkownika.

  2. Aby dodać grupę, wybierz przycisk Dodaj grupę.

    • Zacznij wpisywać nazwę grupy. Proces wybierania istniejącej nazwy grupy lub dodawania nowej grupy jest taki sam jak w przypadku dodawania użytkowników.

    • Aby zapisać zmiany, zaznacz niebieskie pole wyboru.

      Przyznawanie uprawnień platformy Apache Ambari.

Dodawanie użytkowników bezpośrednio do widoku jest przydatne, gdy chcesz przypisać użytkownikowi uprawnienia do korzystania z tego widoku, ale nie chcesz, aby były członkami grupy, która ma dodatkowe uprawnienia. Aby zmniejszyć nakład pracy administracyjnej, można łatwiej przypisać uprawnienia do grup.

Udzielanie uprawnień do widoków apache TEZ

Wystąpienia widoku apache TEZ umożliwiają użytkownikom monitorowanie i debugowanie wszystkich zadań Tez przesyłanych przez zapytania apache Hive i skrypty apache Pig. Istnieje jedno domyślne wystąpienie widoku tez tworzone podczas aprowizacji klastra.

Aby przypisać użytkowników i grupy do wystąpienia widoku Tez, rozwiń wiersz TEZ na stronie Widoki, zgodnie z wcześniejszym opisem.

Widoki usługi HDInsight — widok Apache Tez.

Aby dodać użytkowników lub grupy, powtórz kroki 3–5 w poprzedniej sekcji.

Przypisywanie użytkowników do ról

Istnieje pięć ról zabezpieczeń dla użytkowników i grup wymienionych w celu zmniejszenia uprawnień dostępu:

  • Administrator klastrów
  • Operator klastra
  • Administrator usługi
  • Operator usługi
  • Użytkownik klastra

Aby zarządzać rolami, przejdź do strony zarządzania ambari, a następnie wybierz link Role w grupie menu Klastry po lewej stronie.

Linki menu ról systemu Apache Ambari.

Aby wyświetlić listę uprawnień przyznanych każdej roli, kliknij niebieski znak zapytania obok nagłówka tabeli Role na stronie Role.

Uprawnienia linku do menu ról systemu Apache Ambari.

Na tej stronie istnieją dwa różne widoki, których można użyć do zarządzania rolami dla użytkowników i grup: Blokuj i Lista.

Widok blokowy

Widok Blokuj wyświetla każdą rolę we własnym wierszu i udostępnia Assign roles to these users opcje i *Assign roles to these groups zgodnie z wcześniejszym opisem.

Widok bloku ról systemu Apache Ambari.

Widok listy

Widok Lista udostępnia funkcje szybkiego edytowania w dwóch kategoriach: Użytkownicy i grupy.

  • Kategoria Użytkownicy widoku Lista zawiera listę wszystkich użytkowników, umożliwiając wybranie roli dla każdego użytkownika na liście rozwijanej.

    Widok listy ról systemu Apache Ambari — użytkownicy.

  • Kategoria Grupy widoku Lista zawiera wszystkie grupy i rolę przypisaną do każdej grupy. W naszym przykładzie lista grup jest synchronizowana z grup microsoft Entra określonych we właściwości Access user group ustawień domeny klastra. Zobacz Create a HDInsight cluster with ESP enabled (Tworzenie klastra usługi HDInsight z włączonym stanem ESP).

    Widok listy ról systemu Apache Ambari — grupy.

    Na powyższej ilustracji grupa użytkowników hive ma przypisaną rolę Użytkownik klastra. Jest to rola tylko do odczytu, która umożliwia użytkownikom tej grupy wyświetlanie, ale nie zmienianie konfiguracji usług i metryk klastra.

Zaloguj się do systemu Ambari jako użytkownik tylko do wyświetlania

Do widoków Hive i Tez przypisano uprawnienia użytkownika domeny "hiveuser1" firmy Microsoft. Po uruchomieniu internetowego interfejsu użytkownika systemu Ambari i wprowadzeniu poświadczeń domeny tego użytkownika (nazwa użytkownika firmy Microsoft Entra w formacie poczty e-mail i hasła) użytkownik zostanie przekierowany do strony Widoki systemu Ambari. W tym miejscu użytkownik może wybrać dowolny dostępny widok. Użytkownik nie może odwiedzić żadnej innej części witryny, w tym pulpitu nawigacyjnego, usług, hostów, alertów lub stron administracyjnych.

Użytkownik systemu Apache Ambari z tylko widokami.

Zaloguj się do systemu Ambari jako użytkownik klastra

Do roli Użytkownika klastra przypisano użytkownika domeny Entra firmy Microsoft "hiveuser2". Ta rola może uzyskiwać dostęp do pulpitu nawigacyjnego i wszystkich elementów menu. Użytkownik klastra ma mniej dozwolonych opcji niż administrator. Na przykład użytkownik hiveuser2 może wyświetlać konfiguracje dla każdej z usług, ale nie może ich edytować.

Wyświetlanie pulpitu nawigacyjnego systemu Apache Ambari.

Następne kroki