Delen via


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 :

Apache Ambari dashboard manage.

Gebruikers toevoegen

Gebruikers toevoegen via de portal

  1. Selecteer Gebruikers op de beheerpagina.

    Apache Ambari management page users.

  2. Selecteer + Lokale gebruiker maken.

  3. Geef de gebruikersnaam en het wachtwoord op. Selecteer Opslaan.

Gebruikers toevoegen via PowerShell

Bewerk de onderstaande variabelen door de NEWUSERjuiste 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, ADMINPASSWORDen NEWUSERUSERPASSWORD 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.

  1. Selecteer op de beheerpagina de koppeling Weergaven onder de menukop Weergaven aan de linkerkant.

    Apache Ambari views view links.

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

    HDInsight Views - Apache Hive view.

  3. 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 gebruikersGrant permission to these users.

Machtigingen verlenen aan deze groepenGrant permission to these groups.

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

      Apache Ambari user auto completes.

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

      Apache Ambari grant user permissions.

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

      Apache Ambari grant permissions.

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.

HDInsight Views - Apache Tez view.

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.

Apache Ambari roles menu links.

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.

Apache Ambari roles menu link permissions.

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.

Apache Ambari roles block view.

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.

    Apache Ambari roles list view - users.

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

    Apache Ambari roles list view - groups.

    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.

Apache Ambari user with views only.

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.

Apache Ambari dashboard display.

Volgende stappen