Autorizzare gli utenti per le visualizzazioni di Apache Ambari
I cluster HDInsight abilitati per Enterprise Security Package (ESP) offrono funzionalità di livello aziendale, inclusa l'autenticazione basata su ID Di Microsoft Entra. È possibile sincronizzare i nuovi utenti aggiunti ai gruppi di Microsoft Entra a cui è stato fornito l'accesso al cluster, consentendo a tali utenti specifici di eseguire determinate azioni. Quando si lavora con utenti, gruppi e autorizzazioni in Apache Ambari è supportato sia per i cluster ESP HDInsight che per i cluster HDInsight standard.
Gli utenti di Active Directory possono accedere ai nodi del cluster tramite le proprie credenziali di dominio che consentono anche di autenticare le interazioni tra cluster con antri endpoint approvati, ad esempio Hue, viste di Ambari, ODBC, JDBC, PowerShell e API REST.
Avviso
Non modificare la password del watchdog Ambari (hdinsightwatchdog) nel cluster HDInsight basato su Linux. Se si modifica la password, non sarà più possibile usare azioni script o eseguire operazioni di ridimensionamento con il cluster.
Se non è già stato fatto, seguire queste istruzioni per effettuare il provisioning di un nuovo cluster ESP.
Accedere alla pagina di gestione di Ambari
Per accedere alla pagina di gestione di Ambari, nell'interfaccia utente Web di Apache Ambari passare a https://CLUSTERNAME.azurehdinsight.net
. Immettere il nome utente e la password di amministratore del cluster definiti durante la creazione del cluster. Nel dahsboard di Ambari selezionare Manage Ambari (Gestisci Ambari) nel menu admin (amministratore):
Aggiungere utenti
Aggiungere utenti tramite il portale
Nella pagina di gestione selezionare Utenti.
Selezionare + Crea utente locale.
Specificare nome utente e password. Selezionare Salva.
Aggiungere utenti tramite PowerShell
Modificare le variabili seguenti sostituendo CLUSTERNAME
, NEWUSER
e PASSWORD
con i valori appropriati.
# 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
Aggiungere utenti tramite Curl
Modificare le variabili seguenti sostituendo CLUSTERNAME
, ADMINPASSWORD
, NEWUSER
e USERPASSWORD
con i valori appropriati. Lo script è progettato per essere eseguito con bash. Per un prompt dei comandi di Windows sono necessarie modifiche minime.
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"
Concedere le autorizzazioni per le viste Apache Hive
Ambari è disponibile con le istanze di viste per Apache Hive e Apache TEZ, tra gli altri. Per concedere l'accesso a una o più istanze di viste Hive, andare alla pagina di gestione di Ambari.
Nella pagina di gestione selezionare il collegamento Views (Viste) nell'intestazione del menu Views (Viste) a sinistra.
Nella pagina Views (Viste) espandere la riga HIVE. È disponibile una vista Hive predefinita creata quando il servizio Hive viene aggiunto al cluster. È anche possibile creare più istanze di viste Hive in base alle esigenze. Selezionare una vista Hive:
Scorrere verso il basso nella pagina View (Vista). Nella sezione Permissions (Autorizzazioni) sono presenti due opzioni per concedere agli utenti del dominio le autorizzazioni sulla vista:
Concedere l'autorizzazione a questi utenti
Concedere l'autorizzazione a questi gruppi
Per aggiungere un utente, selezionare il pulsante Add User (Aggiungi utente).
Iniziare a digitare il nome utente. Verrà visualizzato un elenco a discesa dei nomi definiti in precedenza.
Selezionare il nome utente o terminarne la digitazione. Per aggiungere il nome utente come un nuovo utente, selezionare il pulsante New (Nuovo).
Per salvare le modifiche, selezionare la casella di controllo blu.
Per aggiungere un gruppo, selezionare il pulsante Add Group (Aggiungi gruppo).
Iniziare a digitare il nome del gruppo. Il processo di selezione di un nome di gruppo esistente o di aggiunta di un nuovo gruppo è analogo a quello per l'aggiunta di utenti.
Per salvare le modifiche, selezionare la casella di controllo blu.
L'aggiunta di nuovi utenti direttamente a una vista è utile quando si desidera assegnare autorizzazioni a un utente a usare tale vista, ma non si desidera che l'utente sia un membro di un gruppo che dispone di autorizzazioni aggiuntive. Per ridurre la quantità di sovraccarico amministrativo, può risultare più semplice assegnare autorizzazioni ai gruppi.
Concedere le autorizzazioni per le viste Apache TEZ
Le istanze di viste Apache TEZ consentono agli utenti di monitorare ed eseguire il debug di tutti i processi Tez, inviati da query Apache Hive e script Apache Pig. È presente una sola istanza di viste Tez predefinita creata quando viene eseguito il provisioning del cluster.
Per assegnare utenti e gruppi a un'istanza di viste Tez, espandere la riga TEZ nella pagina Views (Viste), come descritto in precedenza.
Per aggiungere utenti o gruppi, ripetere i passaggi da 3 a 5 nella sezione precedente.
Assegnare utenti ai ruoli
Esistono cinque ruoli di sicurezza per utenti e gruppi, elencati in ordine decrescente delle autorizzazioni di accesso:
- Amministrazione cluster
- Operatore del cluster
- Amministratore del servizio
- Operatore del servizio
- Utente del cluster
Per gestire i ruoli, andare alla pagina di gestione di Ambari e quindi selezionare il collegamento Roles (Ruoli) nel gruppo di menu Clusters (Cluster) a sinistra.
Per visualizzare l'elenco delle autorizzazioni assegnate a ogni ruolo, fare clic sul punto interrogativo blu accanto all'intestazione di tabella Roles (Ruoli) nella pagina relativa.
In questa pagina sono disponibili due viste che consentono di gestire i ruoli per gli utenti e gruppi, ovvero Block (Blocco) e List (Elenco).
Vista Blocco
La visualizzazione Blocca visualizza ogni ruolo nella propria riga e fornisce le Assign roles to these users
opzioni e *Assign roles to these groups
come descritto in precedenza.
Visualizzazione elenco
Nella vista List (Elenco) sono disponibili funzionalità di modifica rapida in due categorie, ovvero Users (Utenti) e Groups (Gruppi).
La categoria Users (Utenti) visualizza un elenco di tutti gli utenti, che consente di selezionare un ruolo per ogni utente nell'elenco a discesa.
La categoria Groups (Gruppi) visualizza tutti i gruppi e il ruolo e il ruolo assegnato a ogni gruppo. In questo esempio, l'elenco dei gruppi viene sincronizzato dai gruppi di Microsoft Entra specificati nella proprietà Gruppo utenti di Access delle impostazioni di dominio del cluster. Vedere Creazione di un cluster HDInsight con ESP abilitato.
Nell'immagine precedente, al gruppo utenti hive viene assegnato il ruolo Utente cluster. Questo è un ruolo di sola lettura che consente agli utenti di tale gruppo di visualizzare le configurazioni del servizio e le metriche del cluster, ma non di modificarle.
Accedere al Ambari come un utente di sola visualizzazione
Sono state assegnate le autorizzazioni "hiveuser1" all'utente di dominio Microsoft Entra per le visualizzazioni Hive e Tez. Quando si avvia l'interfaccia utente Web di Ambari e si immettono le credenziali di dominio dell'utente (nome utente di Microsoft Entra in formato di posta elettronica e password), l'utente viene reindirizzato alla pagina Visualizzazioni Ambari. A questo punto l'utente può selezionare qualsiasi vista accessibile. L'utente non può altre parti del sito, ad esempio pagine di dashboard, servizi, host, avvisi o amministrazione.
Accedere ad Ambari come un utente del cluster
L'utente di dominio "hiveuser2" di Microsoft Entra è stato assegnato al ruolo Utente cluster. Questo ruolo consente di accedere al dashboard e a tutte le voci di menu. Un utente del cluster dispone di un numero leggermente minore di opzioni consentite rispetto a un amministratore. L'utente hiveuser2, ad esempio, può visualizzare configurazioni per ognuno dei servizi, ma non modificarle.