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. Praca 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 :

Apache Ambari dashboard manage.

Dodaj użytkowników

Dodawanie użytkowników za pośrednictwem portalu

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

    Apache Ambari management page users.

  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.

    Apache Ambari views view links.

  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:

    HDInsight Views - Apache Hive view.

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

Udzielanie uprawnień tym użytkownikomGrant permission to these users.

Udzielanie uprawnień do tych grupGrant permission to these groups.

  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.

      Apache Ambari user auto completes.

    • 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 grant user permissions.

  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.

      Apache Ambari grant permissions.

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.

HDInsight Views - Apache Tez view.

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:

  • Klaster Administracja istrator
  • 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.

Apache Ambari roles menu links.

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

Apache Ambari roles menu link permissions.

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 opcje Przypisywanie ról do tych użytkowników i Przypisz role do tych grup zgodnie z wcześniejszym opisem.

Apache Ambari roles block view.

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.

    Apache Ambari roles list view - users.

  • 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).

    Apache Ambari roles list view - groups.

    Na powyższej ilustracji grupa "hiveusers" 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.

Apache Ambari user with views only.

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ć.

Apache Ambari dashboard display.

Następne kroki