Condividi tramite


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):

Gestire il dashboard di Apache Ambari.

Aggiungere utenti

Aggiungere utenti tramite il portale

  1. Nella pagina di gestione selezionare Utenti.

    Utenti della pagina di gestione di Apache Ambari.

  2. Selezionare + Crea utente locale.

  3. Specificare nome utente e password. Selezionare Salva.

Aggiungere utenti tramite PowerShell

Modificare le variabili seguenti sostituendo CLUSTERNAME, NEWUSERe 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, NEWUSERe 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.

  1. Nella pagina di gestione selezionare il collegamento Views (Viste) nell'intestazione del menu Views (Viste) a sinistra.

    Collegamenti alla visualizzazione Apache Ambari.

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

    Viste HDInsight - Visualizzazione Apache Hive.

  3. 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 utentiConcedere l'autorizzazione a questi utenti.

Concedere l'autorizzazione a questi gruppiConcedere l'autorizzazione a questi gruppi.

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

      L'utente Apache Ambari viene completato automaticamente.

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

      Apache Ambari concede le autorizzazioni utente.

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

      Apache Ambari concede le autorizzazioni.

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.

Viste di HDInsight : visualizzazione Apache Tez.

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.

Collegamenti di menu dei ruoli di Apache Ambari.

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.

Autorizzazioni di collegamento ai menu dei ruoli di Apache Ambari.

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 dei ruoli apache Ambari bloccata.

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.

    Visualizzazione elenco ruoli Apache Ambari: utenti.

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

    Visualizzazione elenco ruoli Apache Ambari : gruppi.

    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.

Utente Apache Ambari con solo visualizzazioni.

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.

Visualizzazione del dashboard apache Ambari.

Passaggi successivi