Gebruikers machtigen voor Apache Ambari-weergaven
HDInsight-clusters met Enterprise Security Package (ESP) bieden hoogwaardige mogelijkheden, waaronder verificatie op basis van Microsoft Entra ID. U kunt nieuwe gebruikers synchroniseren die zijn toegevoegd aan Microsoft Entra-groepen die toegang hebben gekregen tot het cluster, zodat deze specifieke gebruikers bepaalde acties kunnen uitvoeren. Werken met gebruikers, groepen en machtigingen in Apache Ambari wordt ondersteund voor zowel ESP HDInsight-clusters als standaard HDInsight-clusters.
Active Directory-gebruikers kunnen zich bij de clusterknooppunten aanmelden met behulp van hun domeinreferenties. Ze kunnen ook hun domeinreferenties gebruiken om clusterinteracties te verifiëren met andere goedgekeurde eindpunten, zoals Hue, Ambari Views, ODBC, JDBC, PowerShell en REST API's.
Waarschuwing
Wijzig het wachtwoord van de Ambari-watchdog (hdinsightwatchdog) niet in uw HDInsight-cluster op basis van Linux. Als u het wachtwoord wijzigt, wordt de mogelijkheid om scriptacties te gebruiken of schaalbewerkingen uit te voeren met uw cluster verbroken.
Als u dit nog niet hebt gedaan, volgt u deze instructies om een nieuw ESP-cluster in te richten.
Toegang tot de Ambari-beheerpagina
Als u naar de Ambari-beheerpagina in de Apache Ambari-webinterface wilt gaan, bladert u naar https://CLUSTERNAME.azurehdinsight.net
. Voer de gebruikersnaam en het wachtwoord van de clusterbeheerder in die u hebt gedefinieerd bij het maken van het cluster. Selecteer vervolgens in het Ambari-dashboard Ambari beheren onder het beheermenu :
Gebruikers toevoegen
Gebruikers toevoegen via de portal
Selecteer Gebruikers op de beheerpagina.
Selecteer + Lokale gebruiker maken.
Geef de gebruikersnaam en het wachtwoord op. Selecteer Opslaan.
Gebruikers toevoegen via PowerShell
Bewerk de onderstaande variabelen door de NEWUSER
juiste waarden te vervangenCLUSTERNAME
, en PASSWORD
door de juiste waarden.
# 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
Gebruikers toevoegen via Curl
Bewerk de onderstaande variabelen door de juiste waarden te vervangenCLUSTERNAME
, ADMINPASSWORD
en NEWUSER
USERPASSWORD
door de juiste waarden. Het script is ontworpen om te worden uitgevoerd met bash. Er zijn kleine wijzigingen nodig voor een Windows-opdrachtprompt.
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"
Machtigingen verlenen aan Apache Hive-weergaven
Ambari wordt geleverd met weergave-exemplaren voor Apache Hive en Apache TEZ, onder andere. Als u toegang wilt verlenen tot een of meer Hive-weergave-exemplaren, gaat u naar de Ambari-beheerpagina.
Selecteer op de beheerpagina de koppeling Weergaven onder de menukop Weergaven aan de linkerkant.
Vouw op de pagina Weergaven de HIVE-rij uit. Er is één standaard Hive-weergave die wordt gemaakt wanneer de Hive-service wordt toegevoegd aan het cluster. U kunt zo nodig ook meer Hive-weergave-exemplaren maken. Selecteer een Hive-weergave:
Schuif naar de onderkant van de pagina Weergave. In de sectie Machtigingen hebt u twee opties voor het verlenen van domeingebruikers hun machtigingen voor de weergave:
Machtigingen verlenen aan deze gebruikers
Machtigingen verlenen aan deze groepen
Als u een gebruiker wilt toevoegen, selecteert u de knop Gebruiker toevoegen.
Begin met het typen van de gebruikersnaam en u ziet een vervolgkeuzelijst met eerder gedefinieerde namen.
Selecteer of voltooi het typen van de gebruikersnaam. Als u deze gebruikersnaam wilt toevoegen als een nieuwe gebruiker, selecteert u de knop Nieuw .
Als u uw wijzigingen wilt opslaan, schakelt u het blauwe selectievakje in.
Als u een groep wilt toevoegen, selecteert u de knop Groep toevoegen.
Begin de groepsnaam te typen. Het proces voor het selecteren van een bestaande groepsnaam of het toevoegen van een nieuwe groep is hetzelfde als voor het toevoegen van gebruikers.
Als u uw wijzigingen wilt opslaan, schakelt u het blauwe selectievakje in.
Het rechtstreeks toevoegen van gebruikers aan een weergave is handig wanneer u machtigingen wilt toewijzen aan een gebruiker om die weergave te gebruiken, maar niet wilt dat ze lid zijn van een groep met extra machtigingen. Om de hoeveelheid administratieve overhead te verminderen, is het mogelijk eenvoudiger om machtigingen toe te wijzen aan groepen.
Machtigingen verlenen aan Apache TEZ-weergaven
Met de Apache TEZ-weergave-exemplaren kunnen de gebruikers alle Tez-taken bewaken en er fouten in opsporen, verzonden door Apache Hive-query's en Apache Pig-scripts. Er is één standaard tez-weergave-exemplaar dat wordt gemaakt wanneer het cluster wordt ingericht.
Als u gebruikers en groepen wilt toewijzen aan een Exemplaar van de Tez-weergave, vouwt u de TEZ-rij uit op de pagina Weergaven, zoals eerder is beschreven.
Als u gebruikers of groepen wilt toevoegen, herhaalt u stap 3 tot en met 5 in de vorige sectie.
Gebruikers toewijzen aan rollen
Er zijn vijf beveiligingsrollen voor gebruikers en groepen, die worden vermeld in volgorde van afnemende toegangsmachtigingen:
- Cluster Beheer istrator
- Clusteroperator
- Servicebeheerder
- Serviceoperator
- Clustergebruiker
Als u rollen wilt beheren, gaat u naar de Ambari-beheerpagina en selecteert u vervolgens de koppeling Rollen in de menugroep Clusters aan de linkerkant.
Als u de lijst met machtigingen voor elke rol wilt zien, klikt u op het blauwe vraagteken naast de tabel Rollen op de pagina Rollen.
Op deze pagina zijn er twee verschillende weergaven die u kunt gebruiken voor het beheren van rollen voor gebruikers en groepen: Blokkeren en Lijst.
Blokweergave
In de blokkeringsweergave wordt elke rol in een eigen rij weergegeven en worden de rollen toewijzen aan deze gebruikers en rollen aan deze groepsopties toegewezen, zoals eerder is beschreven.
Lijstweergave
De lijstweergave biedt snelle bewerkingsmogelijkheden in twee categorieën: Gebruikers en groepen.
In de categorie Gebruikers van de lijstweergave wordt een lijst met alle gebruikers weergegeven, zodat u een rol kunt selecteren voor elke gebruiker in de vervolgkeuzelijst.
In de categorie Groepen van de lijstweergave worden alle groepen en de rol weergegeven die aan elke groep is toegewezen. In ons voorbeeld wordt de lijst met groepen gesynchroniseerd vanuit de Microsoft Entra-groepen die zijn opgegeven in de eigenschap Access-gebruikersgroep van de domeininstellingen van het cluster. Zie Een HDInsight-cluster maken waarvoor ESP is ingeschakeld.
In de bovenstaande afbeelding wordt de groep hiveusers toegewezen aan de rol Clustergebruiker . Dit is een alleen-lezenrol waarmee de gebruikers van die groep serviceconfiguraties en metrische clustergegevens kunnen bekijken, maar niet kunnen wijzigen.
Aanmelden bij Ambari als een gebruiker die alleen-weergeven is
We hebben onze Microsoft Entra-domeingebruiker 'hiveuser1'-machtigingen toegewezen aan Hive- en Tez-weergaven. Wanneer we de Ambari-webgebruikersinterface starten en de domeinreferenties van deze gebruiker invoeren (Microsoft Entra-gebruikersnaam in e-mailindeling en wachtwoord), wordt de gebruiker omgeleid naar de pagina Ambari-weergaven. Hier kan de gebruiker elke toegankelijke weergave selecteren. De gebruiker kan geen ander deel van de site bezoeken, waaronder het dashboard, de services, hosts, waarschuwingen of beheerpagina's.
Aanmelden bij Ambari als clustergebruiker
We hebben onze Microsoft Entra-domeingebruiker 'hiveuser2' toegewezen aan de rol Clustergebruiker . Deze rol heeft toegang tot het dashboard en alle menu-items. Een clustergebruiker heeft minder toegestane opties dan een beheerder. Hiveuser2 kan bijvoorbeeld configuraties voor elk van de services bekijken, maar kan ze niet bewerken.