Autorisieren von Benutzern für Apache Ambari-Ansichten
HDInsight-Cluster mit aktiviertem Enterprise-Sicherheitspaket (ESP) stellen Funktionen auf Unternehmensniveau bereit, einschließlich einer auf Microsoft Entra ID basierenden Authentifizierung. Sie können neue Benutzer synchronisieren, die zu Microsoft Entra-Gruppen mit Clusterzugriff hinzugefügt wurden, um diesen bestimmten Benutzern das Ausführen bestimmter Aktionen zu ermöglichen. Arbeiten mit Benutzern, Gruppen und Berechtigungen in Apache Ambari wird sowohl für ESP-HDInsight-Cluster als auch für den standardmäßigen HDInsight-Cluster unterstützt.
Active Directory-Benutzer können sich mit ihren Domänenanmeldeinformationen bei den Clusterknoten anmelden. Darüber hinaus können sie Clusterinteraktionen mit ihren Domänenanmeldeinformationen auch bei anderen genehmigten Endpunkten wie Hue, Ambari-Ansichten, ODBC, JDBC, PowerShell und REST-APIs authentifizieren.
Warnung
Ändern Sie nicht das Kennwort für den Ambari-Watchdog (hdinsightwatchdog) in Ihrem Linux-basierten HDInsight-Cluster. Durch eine Kennwortänderung wird die Möglichkeit zum Verwenden von Skriptaktionen oder zum Durchführen von Skalierungsvorgängen mit Ihren Cluster deaktiviert.
Falls noch nicht geschehen, führen Sie diese Anweisungen aus, um einen neuen ESP-Cluster bereitzustellen.
Zugreifen auf die Ambari-Verwaltungsseite
Um zur Ambari-Verwaltungsseite in der Apache Ambari-Webbenutzeroberfläche zu navigieren, rufen Sie https://CLUSTERNAME.azurehdinsight.net
auf. Geben Sie den Benutzernamen und das Kennwort für den Clusteradministrator ein, die Sie beim Erstellen des Clusters definiert haben. Wählen Sie anschließend im Ambari-Dashboard die Option Ambari verwalten unterhalb des Administrator-Menüs aus:
Hinzufügen von Benutzern
Hinzufügen von Benutzern über das Portal
Wählen Sie auf der Verwaltungsseite Users (Benutzer) aus.
Wählen Sie + Create Local User (+ Lokalen Benutzer erstellen) aus.
Geben Sie Username (Benutzername) und password (Kennwort) an. Wählen Sie save (Speichern) aus.
Hinzufügen von Benutzern über PowerShell
Bearbeiten Sie die unten aufgeführten Variablen, indem Sie für CLUSTERNAME
, NEWUSER
und PASSWORD
die geeigneten Werte angeben.
# 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
Hinzufügen von Benutzern über Curl
Bearbeiten Sie die unten aufgeführten Variablen, indem Sie für CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
und USERPASSWORD
die geeigneten Werte angeben. Das Skript ist für die Ausführung mit Bash ausgelegt. Für eine Windows-Eingabeaufforderung sind geringfügige Änderungen erforderlich.
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"
Erteilen von Berechtigungen für Apache Hive-Ansichten
Ambari verfügt über Ansichtsinstanzen für u.a. Apache Hive und Apache TEZ. Wechseln Sie zur Ambari-Verwaltungsseite, um den Zugriff auf eine oder mehrere Hive-Ansichtsinstanzen zu gewähren.
Wählen Sie auf der Verwaltungsseite den Link Ansichten unterhalb der Menüüberschrift Ansichten auf der linken Seite aus.
Erweitern Sie auf der Seite „Ansichten“ die Zeile HIVE. Eine Hive-Ansicht wird standardmäßig beim Hinzufügen des Hive-Diensts zum Cluster erstellt. Sie können bei Bedarf auch weitere Hive-Ansichtsinstanzen erstellen. Wählen Sie eine Hive-Ansicht aus:
Scrollen Sie auf der Seite „Ansichten“ nach unten. Im Abschnitt Berechtigungen stehen zwei Möglichkeiten zur Auswahl, um Domänenbenutzern Berechtigungen für die Ansicht zu erteilen:
Erteilen einer Berechtigung für diese Benutzer
Erteilen einer Berechtigung für diese Gruppen
Klicken Sie zum Hinzufügen eines Benutzers auf die Schaltfläche Benutzer hinzufügen.
Wenn Sie mit der Eingabe des Benutzernamens beginnen, wird eine Dropdownliste mit den zuvor definierten Namen angezeigt.
Wählen Sie einen Namen aus, oder geben Sie den vollständigen Benutzernamen ein. Klicken Sie auf die Schaltfläche Neu, um diesen Benutzernamen als neuen Benutzer hinzuzufügen.
Aktivieren Sie zum Speichern der Änderungen das blaue Kontrollkästchen.
Klicken Sie zum Hinzufügen einer Gruppe auf die Schaltfläche Gruppe hinzufügen.
Beginnen Sie mit der Eingabe des Gruppennamens. Die Vorgehensweise bei der Auswahl eines bereits existierenden Gruppennamens oder beim Hinzufügen einer neuen Gruppe entspricht der Vorgehensweise beim Hinzufügen von Benutzern.
Aktivieren Sie zum Speichern der Änderungen das blaue Kontrollkästchen.
Es kann nützlich sein, Benutzer direkt einer Ansicht hinzuzufügen, wenn Sie einem Benutzer die Berechtigungen zuweisen möchten, diese Ansicht zu verwenden, jedoch nicht möchten, dass er Mitglied einer Gruppe mit zusätzlichen Berechtigungen wird. Für einen möglichst geringen Verwaltungsaufwand ist es möglicherweise einfacher, Berechtigungen für Gruppen zuzuweisen.
Erteilen von Berechtigungen für Apache TEZ-Ansichten
Apache TEZ-Ansichtsinstanzen ermöglichen Benutzern das Überwachen und Debuggen aller Tez-Aufträge, die von Apache Hive-Abfragen und Apache Pig-Skripts übermittelt wurden. Eine Tez-Ansichtsinstanz wird standardmäßig bei der Bereitstellung des Clusters erstellt.
Erweitern Sie wie zuvor beschrieben auf der Seite „Ansichten“ die Zeile TEZ, um Benutzer und Gruppen einer Tez-Ansichtsinstanz zuzuweisen.
Wiederholen Sie die Schritte 3 bis 5 im vorherigen Abschnitt, um Benutzer und Gruppen hinzuzufügen.
Zuweisen von Benutzern zu Rollen
Es gibt fünf Sicherheitsrollen für Benutzer und Gruppen, die nachfolgend in absteigender Reihenfolge der Zugriffsberechtigungen aufgeführt werden:
- Clusteradministrator
- Clusteroperator
- Dienstadministrator
- Dienstoperator
- Clusterbenutzer
Wechseln Sie zum Verwalten der Rollen zur Ambari-Verwaltungsseite, und wählen Sie in der Menügruppe Cluster auf der linken Seite den Link Rollen aus.
Klicken Sie auf der Seite „Rollen“ auf das blaue Fragezeichen neben der Tabellenüberschrift Rollen, um die Liste der Berechtigungen anzuzeigen, die den Rollen jeweils zugeordnet sind.
Auf dieser Seite stehen Ihnen zwei verschiedene Ansichten zur Verwaltung der Rollen für Benutzer und Gruppen zur Verfügung: Block- und Listenansicht.
Blockansicht
Bei der Blockansicht wird jede Rolle in einer eigenen Zeile angezeigt, und es stehen die zuvor beschriebenen Optionen Zuweisen von Rollen an diese Benutzer und Zuweisen von Rollen an diese Gruppen zur Verfügung.
Listenansicht
Die Listenansicht stellt schnelle Bearbeitungsfunktionen in zwei Kategorien bereit: Benutzer und Gruppen.
Bei der Kategorie „Benutzer“ der Listenansicht wird eine Liste aller Benutzer angezeigt. Hier können Sie für jeden Benutzer eine Rolle aus der Dropdownliste auswählen.
Bei der Kategorie „Gruppen“ der Listenansicht werden alle Gruppen und die der jeweiligen Gruppe zugewiesene Rolle angezeigt. In diesem Beispiel wird die Liste der Gruppen mit den Microsoft Entra-Gruppen synchronisiert, die in der Eigenschaft Zugriff auf die Benutzergruppe der Domäneneinstellungen für den Cluster angegeben sind. Informationen zum Erstellen eines HDInsight-Clusters finden Sie unter Erstellen eines HDInsight-Clusters mit dem ESP.
In der vorherigen Abbildung wird die Gruppe „hiveusers“ (Hive-Benutzer) der Rolle Clusterbenutzer zugewiesen. Dies ist eine schreibgeschützte Rolle, mit der die Benutzer dieser Gruppe Dienstkonfigurationen und Clustermetriken anzeigen, jedoch nicht ändern können.
Anmelden bei Ambari als schreibgeschützter Benutzer
Dem Microsoft Entra-Domänenbenutzer „hiveuser1“ wurden Berechtigungen für Hive- und Tez-Ansichten zugewiesen. Nach dem Eingeben der Domänenanmeldeinformationen dieses Benutzers (Microsoft Entra-Benutzername im E-Mail-Format und Kennwort) in der Ambari-Webbenutzeroberfläche wird der Benutzer zur Seite „Ambari-Ansichten“ umgeleitet. Hier kann der Benutzer jede beliebige Ansicht auswählen, auf die zugegriffen werden kann. Der Zugriff auf andere Bereiche dieser Website, z.B. Dashboard, Dienste, Hosts, Warnungen oder Administratorseiten, ist für diesen Benutzer nicht möglich.
Anmelden bei Ambari als Clusterbenutzer
Dem Microsoft Entra-Domänenbenutzer „hiveuser2“ wurde die Rolle Clusterbenutzer zugewiesen. Mit dieser Rolle kann auf das Dashboard und alle Menüelemente zugegriffen werden. Ein Clusterbenutzer verfügt über weniger zulässige Optionen als ein Administrator. So kann der Benutzer „hiveuser2“ beispielsweise Konfigurationen für jeden der Dienste anzeigen, sie jedoch nicht bearbeiten.
Nächste Schritte
- Konfigurieren von Apache Hive-Richtlinien in HDInsight mit ESP
- Verwalten von HDInsight-Clustern mit dem Enterprise-Sicherheitspaket
- Verwenden der Apache-Hive-Ansicht mit Apache Hadoop in HDInsight
- Synchronisieren von Microsoft Entra-Benutzern mit dem Cluster
- Verwalten von HDInsight-Clustern mithilfe der Apache Ambari-REST-API