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.
Aby przejść do strony zarządzania systemem Ambari w internetowym interfejsie użytkownika systemu Apache Ambari, przejdź do https://CLUSTERNAME.azurehdinsight.net
strony . 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 :
Na stronie zarządzania wybierz pozycję Użytkownicy.
Wybierz pozycję + Utwórz użytkownika lokalnego.
Podaj nazwę użytkownika i hasło. Wybierz pozycję Zapisz.
Zmodyfikuj poniższe zmienne, zastępując CLUSTERNAME
wartości , NEWUSER
i 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
Zmodyfikuj poniższe zmienne, zastępując CLUSTERNAME
wartości , ADMINPASSWORD
, NEWUSER
i 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"
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.
Na stronie zarządzania wybierz link Widoki w obszarze menu Widoki po lewej stronie.
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:
Przewiń w dół strony Widok. W sekcji Uprawnienia masz dwie opcje udzielania użytkownikom domeny uprawnień do widoku:
Udzielanie uprawnień tym użytkownikom
Udzielanie uprawnień do tych grup
Aby dodać użytkownika, wybierz przycisk Dodaj użytkownika .
Zacznij wpisywać nazwę użytkownika i zostanie wyświetlona lista rozwijana wcześniej zdefiniowanych nazw.
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.
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.
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.
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.
Aby dodać użytkowników lub grupy, powtórz kroki 3–5 w poprzedniej sekcji.
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.
Aby wyświetlić listę uprawnień przyznanych każdej roli, kliknij niebieski znak zapytania obok nagłówka tabeli Role na stronie Role.
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 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 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.
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).
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.
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.
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ć.
- Konfigurowanie zasad usługi Apache Hive w usłudze HDInsight za pomocą pakietu ESP
- Zarządzanie klastrami USŁUGI HDInsight ESP
- Korzystanie z widoku Apache Hive z usługą Apache Hadoop w usłudze HDInsight
- Synchronizowanie użytkowników usługi Microsoft Entra z klastrem
- Zarządzanie klastrami usługi HDInsight przy użyciu interfejsu API REST apache Ambari