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. Při práci s uživateli, skupinami a oprávněními v Apache Ambari se podporuje clustery ESP HDInsight i 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.net
strá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:
Přidat uživatele
Přidání uživatelů prostřednictvím portálu
Na stránce pro správu vyberte Uživatelé.
Vyberte + Vytvořit místního uživatele.
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 CLUSTERNAME
NEWUSER
PASSWORD
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 CLUSTERNAME
ADMINPASSWORD
NEWUSER
, 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.
Na stránce pro správu vyberte odkaz Zobrazení pod záhlavím nabídky Zobrazení na levé straně.
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:
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ům
Udělení oprávnění těmto skupinám
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ů.
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.
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.
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.
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:
- Správce clusteru
- 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ě.
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.
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í Bloku zobrazuje jednotlivé role ve vlastním řádku a poskytuje Assign roles to these users
možnosti a *Assign roles to these groups
popsané výše.
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.
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.
Na obrázku výše je skupině uživatelů Hive 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.
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.