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. Att arbeta 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:

Apache Ambari dashboard manage.

Lägg till användare

Lägga till användare via portalen

  1. På hanteringssidan väljer du Användare.

    Apache Ambari management page users.

  2. Välj + Skapa lokal användare.

  3. Ange användarnamn och lösenord. Välj Spara.

Lägga till användare via PowerShell

Redigera variablerna nedan genom att CLUSTERNAMEersätta , NEWUSERoch 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 CLUSTERNAMEersätta , ADMINPASSWORD, NEWUSERoch 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.

  1. På hanteringssidan väljer du länken Vyer under menyrubriken Vyer till vänster.

    Apache Ambari views view links.

  2. Expandera HIVE-radensidan 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:

    HDInsight Views - Apache Hive view.

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

Bevilja behörighet till dessa grupperGrant permission to these groups.

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

      Apache Ambari user auto completes.

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

      Apache Ambari grant user permissions.

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

      Apache Ambari grant permissions.

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.

HDInsight Views - Apache Tez view.

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.

Apache Ambari roles menu links.

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.

Apache Ambari roles menu link permissions.

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 på sin egen rad och innehåller alternativen Tilldela roller till dessa användare och Tilldela roller till dessa grupper enligt beskrivningen tidigare.

Apache Ambari roles block view.

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.

    Apache Ambari roles list view - users.

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

    Apache Ambari roles list view - groups.

    I bilden ovan tilldelas gruppen "hiveusers" 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.

Apache Ambari user with views only.

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.

Apache Ambari dashboard display.

Nästa steg