Auktorisera användare för Apache Ambari Views
Enterprise Security Package (ESP) aktiverade HDInsight-kluster ger funktioner i företagsklass, inklusive Microsoft Entra ID-baserad autentisering. Du kan synkronisera nya användare som lagts till i Microsoft Entra-grupper som har fått åtkomst till klustret, så att specifika användare kan utföra vissa åtgärder. När du arbetar med användare, grupper och behörigheter i Apache Ambari stöds för både ESP HDInsight-kluster och standard-HDInsight-kluster.
Active Directory-användare kan logga in på klusternoderna med sina domänautentiseringsuppgifter. De kan också använda sina domänautentiseringsuppgifter för att autentisera klusterinteraktioner med andra godkända slutpunkter som Hue, Ambari Views, ODBC, JDBC, PowerShell och REST API:er.
Varning
Ändra inte lösenordet för Ambari-vakthunden (hdinsightwatchdog) i ditt Linux-baserade HDInsight-kluster. Om du ändrar lösenordet kan du använda skriptåtgärder eller utföra skalningsåtgärder med klustret.
Om du inte redan har gjort det följer du de här anvisningarna för att etablera ett nytt ESP-kluster.
Öppna Ambari-hanteringssidan
Om du vill komma till Ambari-hanteringssidan i Apache Ambari Web UI bläddrar du till https://CLUSTERNAME.azurehdinsight.net
. Ange det användarnamn och lösenord för klusteradministratör som du definierade när du skapade klustret. Välj sedan Hantera Ambari under administratörsmenyn från instrumentpanelen i Ambari:
Lägg till användare
Lägga till användare via portalen
På hanteringssidan väljer du Användare.
Välj + Skapa lokal användare.
Ange användarnamn och lösenord. Välj Spara.
Lägga till användare via PowerShell
Redigera variablerna nedan genom att CLUSTERNAME
ersätta , NEWUSER
och PASSWORD
med lämpliga värden.
# 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
Lägga till användare via Curl
Redigera variablerna nedan genom att CLUSTERNAME
ersätta , ADMINPASSWORD
, NEWUSER
och USERPASSWORD
med lämpliga värden. Skriptet är utformat för att köras med bash. Små ändringar skulle behövas för en Windows-kommandotolk.
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"
Bevilja behörigheter till Apache Hive-vyer
Ambari levereras med visningsinstanser för bland annat Apache Hive och Apache TEZ. Om du vill ge åtkomst till en eller flera Hive-visningsinstanser går du till Ambari-hanteringssidan.
På hanteringssidan väljer du länken Vyer under menyrubriken Vyer till vänster.
Expandera HIVE-raden på sidan Vyer. Det finns en hive-standardvy som skapas när Hive-tjänsten läggs till i klustret. Du kan också skapa fler Hive-visningsinstanser efter behov. Välj en Hive-vy:
Rulla längst ned på sidan Visa. I avsnittet Behörigheter har du två alternativ för att ge domänanvändare deras behörigheter till vyn:
Bevilja behörighet till dessa användare
Bevilja behörighet till dessa grupper
Om du vill lägga till en användare väljer du knappen Lägg till användare .
Börja skriva användarnamnet så visas en listruta med tidigare definierade namn.
Välj, eller slutför skrivningen, användarnamnet. Om du vill lägga till det här användarnamnet som en ny användare väljer du knappen Nytt .
Om du vill spara ändringarna markerar du den blå kryssrutan.
Om du vill lägga till en grupp väljer du knappen Lägg till grupp .
Börja skriva gruppnamnet. Processen att välja ett befintligt gruppnamn eller lägga till en ny grupp är densamma som för att lägga till användare.
Om du vill spara ändringarna markerar du den blå kryssrutan.
Att lägga till användare direkt i en vy är användbart när du vill tilldela behörigheter till en användare att använda den vyn, men inte vill att de ska vara medlemmar i en grupp som har ytterligare behörigheter. För att minska mängden administrativa kostnader kan det vara enklare att tilldela behörigheter till grupper.
Bevilja behörigheter till Apache TEZ-vyer
Med Apache TEZ-vyinstanserna kan användarna övervaka och felsöka alla Tez-jobb som skickas av Apache Hive-frågor och Apache Pig-skript. Det finns en Tez-standardvyinstans som skapas när klustret etableras.
Om du vill tilldela användare och grupper till en Tez-vyinstans expanderar du TEZ-raden på sidan Vyer enligt beskrivningen tidigare.
Om du vill lägga till användare eller grupper upprepar du steg 3–5 i föregående avsnitt.
Tilldela användare till roller
Det finns fem säkerhetsroller för användare och grupper, listade i ordning efter minskande åtkomstbehörigheter:
- Klusteradministratör
- Klusteroperator
- Tjänstadministratör
- Tjänstoperator
- Klusteranvändare
Om du vill hantera roller går du till Ambari-hanteringssidan och väljer sedan länken Roller i menygruppen Kluster till vänster.
Om du vill se listan över behörigheter som ges till varje roll klickar du på det blå frågetecknet bredvid tabellrubriken Roller på sidan Roller.
På den här sidan finns det två olika vyer som du kan använda för att hantera roller för användare och grupper: Blockera och lista.
Blockvy
Vyn Blockera visar varje roll i sin egen rad och innehåller alternativen och *Assign roles to these groups
enligt beskrivningen Assign roles to these users
tidigare.
Listvy
Listvyn innehåller snabbredigeringsfunktioner i två kategorier: Användare och grupper.
Kategorin Användare i listvyn visar en lista över alla användare, så att du kan välja en roll för varje användare i listrutan.
Kategorin Grupper i listvyn visar alla grupper och den roll som tilldelats till varje grupp. I vårt exempel synkroniseras listan över grupper från De Microsoft Entra-grupper som anges i egenskapen Åtkomst till användargrupp i klustrets domäninställningar. Se Skapa ett HDInsight-kluster med ESP aktiverat.
I bilden ovan tilldelas gruppen hive-användare rollen Klusteranvändare. Det här är en skrivskyddad roll som gör att användarna i gruppen kan visa men inte ändra tjänstkonfigurationer och klustermått.
Logga in på Ambari som en användare med endast visning
Vi har tilldelat våra Microsoft Entra-domänanvändare "hiveuser1"-behörigheter till Hive- och Tez-vyer. När vi startar webbgränssnittet för Ambari och anger användarens domänautentiseringsuppgifter (Microsoft Entra-användarnamn i e-postformat och lösenord) omdirigeras användaren till sidan Ambari-vyer. Härifrån kan användaren välja valfri tillgänglig vy. Användaren kan inte besöka någon annan del av webbplatsen, inklusive instrumentpanelen, tjänsterna, värdarna, aviseringarna eller administratörssidorna.
Logga in på Ambari som klusteranvändare
Vi har tilldelat vår Microsoft Entra-domänanvändare "hiveuser2" till rollen Klusteranvändare . Den här rollen kan komma åt instrumentpanelen och alla menyalternativ. En klusteranvändare har färre tillåtna alternativ än en administratör. Hiveuser2 kan till exempel visa konfigurationer för var och en av tjänsterna, men kan inte redigera dem.