Autorizace uživatelů pro zobrazení Apache Ambari

Clustery HDInsight s podporou podnikového balíčku zabezpečení (ESP) poskytují možnosti na podnikové úrovni, včetně ověřování založeného na ID Microsoftu. Můžete synchronizovat nové uživatele přidané do skupin Microsoft Entra, které byly poskytnuty přístup ke clusteru, což umožňuje těmto konkrétním uživatelům provádět určité akce. Práce s uživateli, skupinami a oprávněními v Apache Ambari se podporuje pro clustery ESP HDInsight i pro standardní clustery HDInsight.

Uživatelé služby Active Directory se můžou přihlásit k uzlům clusteru pomocí svých přihlašovacích údajů k doméně. Můžou také pomocí přihlašovacích údajů domény ověřovat interakce clusteru s jinými schválenými koncovými body, jako jsou Hue, Ambari Views, ODBC, JDBC, PowerShell a REST API.

Upozorňující

Neměňte heslo watchdogu Ambari (hdinsightwatchdog) v clusteru HDInsight založeném na Linuxu. Změna hesla přeruší schopnost používat akce skriptu nebo provádět operace škálování s clusterem.

Pokud jste to ještě neudělali, podle těchto pokynů zřiďte nový cluster ESP.

Přístup na stránku pro správu Ambari

Pokud se chcete dostat na stránku správy Ambari na webovém uživatelském rozhraní Apache Ambari, přejděte na https://CLUSTERNAME.azurehdinsight.netstránku . Zadejte uživatelské jméno a heslo správce clusteru, které jste definovali při vytváření clusteru. Dále na řídicím panelu Ambari pod nabídkou správce vyberte Spravovat Ambari:

Apache Ambari dashboard manage.

Přidat uživatele

Přidání uživatelů prostřednictvím portálu

  1. Na stránce pro správu vyberte Uživatelé.

    Apache Ambari management page users.

  2. Vyberte + Vytvořit místního uživatele.

  3. Zadejte uživatelské jméno a heslo. Vyberte uložit.

Přidání uživatelů prostřednictvím PowerShellu

Upravte níže uvedené proměnné nahrazením CLUSTERNAMENEWUSERPASSWORD a odpovídajícími hodnotami.

# 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

Přidání uživatelů prostřednictvím nástroje Curl

Upravte níže uvedené proměnné nahrazením CLUSTERNAMEADMINPASSWORDNEWUSER, a USERPASSWORD odpovídajícími hodnotami. Skript je navržený tak, aby se spustil pomocí bashe. Pro příkazový řádek Windows by byly potřeba drobné úpravy.

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"

Udělení oprávnění zobrazením Apache Hivu

Ambari nabízí mimo jiné instance zobrazení pro Apache Hive a Apache TEZ. Pokud chcete udělit přístup k jedné nebo více instancím zobrazení Hive, přejděte na stránku správy Ambari.

  1. Na stránce pro správu vyberte odkaz Zobrazení pod záhlavím nabídky Zobrazení na levé straně.

    Apache Ambari views view links.

  2. Na stránce Zobrazení rozbalte řádek HIVE . Existuje jedno výchozí zobrazení Hive, které se vytvoří při přidání služby Hive do clusteru. Podle potřeby můžete také vytvořit další instance zobrazení Hive. Vyberte zobrazení Hive:

    HDInsight Views - Apache Hive view.

  3. Posuňte se k dolní části stránky Zobrazení. V části Oprávnění máte dvě možnosti, jak uživatelům domény udělit oprávnění k zobrazení:

Udělení oprávnění těmto uživatelůmGrant permission to these users.

Udělení oprávnění těmto skupinámGrant permission to these groups.

  1. Pokud chcete přidat uživatele, vyberte tlačítko Přidat uživatele .

    • Začněte psát uživatelské jméno a zobrazí se rozevírací seznam dříve definovaných názvů.

      Apache Ambari user auto completes.

    • Vyberte nebo dokončete zadávání uživatelského jména. Pokud chcete toto uživatelské jméno přidat jako nového uživatele, vyberte tlačítko Nový .

    • Pokud chcete změny uložit, zaškrtněte modré políčko.

      Apache Ambari grant user permissions.

  2. Pokud chcete přidat skupinu, vyberte tlačítko Přidat skupinu .

    • Začněte psát název skupiny. Proces výběru existujícího názvu skupiny nebo přidání nové skupiny je stejný jako při přidávání uživatelů.

    • Pokud chcete změny uložit, zaškrtněte modré políčko.

      Apache Ambari grant permissions.

Přidání uživatelů přímo do zobrazení je užitečné, když chcete uživateli přiřadit oprávnění k používání tohoto zobrazení, ale nechcete, aby se stal členem skupiny, která má další oprávnění. Pokud chcete snížit režijní náklady na správu, může být jednodušší přiřadit oprávnění ke skupinám.

Udělení oprávnění zobrazením Apache TEZ

Instance zobrazení Apache TEZ umožňují uživatelům monitorovat a ladit všechny úlohy Tez odeslané dotazy Apache Hive a skripty Apache Pig . Existuje jedna výchozí instance zobrazení Tez, která se vytvoří při zřízení clusteru.

Pokud chcete přiřadit uživatele a skupiny k instanci zobrazení Tez, rozbalte řádek TEZ na stránce Zobrazení, jak je popsáno výše.

HDInsight Views - Apache Tez view.

Pokud chcete přidat uživatele nebo skupiny, opakujte kroky 3 až 5 v předchozí části.

Přiřazení uživatelů k rolím

Pro uživatele a skupiny existuje pět rolí zabezpečení, které jsou uvedené v pořadí snížení oprávnění k přístupu:

  • Cluster Správa istrator
  • Operátor clusteru
  • Správce služeb
  • Operátor služby
  • Uživatel clusteru

Pokud chcete spravovat role, přejděte na stránku pro správu Ambari a pak vyberte odkaz Role ve skupině nabídek Clusters na levé straně.

Apache Ambari roles menu links.

Pokud chcete zobrazit seznam oprávnění udělených jednotlivým rolím, klikněte na modrou otazník vedle záhlaví tabulky Role na stránce Role.

Apache Ambari roles menu link permissions.

Na této stránce jsou dvě různá zobrazení, která můžete použít ke správě rolí pro uživatele a skupiny: Blokování a seznam.

Blokové zobrazení

Zobrazení Blok zobrazí každou roli ve vlastním řádku a poskytuje role Přiřadit těmto uživatelům a přiřadit role těmto skupinám, jak je popsáno výše.

Apache Ambari roles block view.

Zobrazení seznamu

Zobrazení Seznam poskytuje možnosti rychlých úprav ve dvou kategoriích: Uživatelé a skupiny.

  • Kategorie Uživatelé v zobrazení Seznam zobrazuje seznam všech uživatelů a umožňuje vybrat roli pro každého uživatele v rozevíracím seznamu.

    Apache Ambari roles list view - users.

  • Kategorie Skupiny v zobrazení Seznam zobrazí všechny skupiny a roli přiřazenou jednotlivým skupinám. V našem příkladu se seznam skupin synchronizuje ze skupin Microsoft Entra zadaných ve vlastnosti Skupiny uživatelů Accessu v nastavení domény clusteru. Viz Vytvoření clusteru HDInsight s povoleným ESP.

    Apache Ambari roles list view - groups.

    Na obrázku výše je skupině Hiveusers přiřazena role Uživatel clusteru. Jedná se o roli jen pro čtení, která uživatelům této skupiny umožňuje zobrazit, ale ne změnit konfigurace služeb a metriky clusteru.

Přihlášení k Ambari jako uživatel jen pro zobrazení

Přiřadili jsme uživateli domény Hiveuser1 uživatele Microsoft Entra oprávnění k zobrazením Hive a Tez. Když spustíme webové uživatelské rozhraní Ambari a zadáme přihlašovací údaje k doméně tohoto uživatele (uživatelské jméno Microsoft Entra ve formátu e-mailu a heslo), uživatel se přesměruje na stránku Zobrazení Ambari. Odsud může uživatel vybrat libovolné přístupné zobrazení. Uživatel nemůže navštívit žádnou jinou část webu, včetně řídicího panelu, služeb, hostitelů, upozornění nebo stránek správce.

Apache Ambari user with views only.

Přihlášení k Ambari jako uživatel clusteru

K roli uživatele clusteru jsme přiřadili uživatele domény Microsoft Entra "hiveuser2". Tato role má přístup k řídicímu panelu a všem položkám nabídky. Uživatel clusteru má méně povolených možností než správce. Například hiveuser2 může zobrazit konfigurace pro každou službu, ale nemůže je upravovat.

Apache Ambari dashboard display.

Další kroky