Partager via


Autoriser les utilisateurs à accéder à Apache Ambari Views

Les clusters HDInsight avec le Pack Sécurité Entreprise activé offrent des fonctionnalités d’entreprise, notamment l’authentification par le biais de Microsoft Entra ID. Vous pouvez synchroniser de nouveaux utilisateurs ajoutés aux groupes Microsoft Entra qui ont accès au cluster, permettant ainsi à ces utilisateurs d’effectuer certaines actions. Lors de l’utilisation d’utilisateurs, les groupes et les autorisations dans Apache Ambari sont prise en charge à la fois pour les clusters HDInsight ESP et Standard.

Les utilisateurs Active Directory peuvent se connecter aux nœuds de cluster à l’aide de leurs informations d’identification de domaine. Ils ont également la possibilité d’utiliser ces identifiants pour authentifier les interactions du cluster auprès d’autres points de terminaison approuvés, comme Hue, Ambari Views, ODBC, JDBC, PowerShell et les API REST.

Avertissement

Ne modifiez pas le mot de passe pour l’agent de surveillance Ambari (hdinsightwatchdog) sur votre cluster HDInsight basé sur Linux. La modification du mot de passe élimine la possibilité d’utiliser les actions de script ou d’effectuer des opérations de mise à l’échelle sur votre cluster.

Si ce n’est déjà fait, suivez ces instructions pour provisionner un nouveau cluster PSE.

Accéder à la page de gestion Ambari

Pour ouvrir la page de gestion Ambari dans l’interface utilisateur web d’Apache Ambari, accédez à https://CLUSTERNAME.azurehdinsight.net. Entrez le nom d’utilisateur de l’administrateur du cluster et le mot de passe que vous avez défini lors de la création du cluster. Ensuite, sur le tableau de bord Ambari, sélectionnez Gérer Ambari sous le menu admin :

Gestion du tableau de bord Apache Ambari.

Ajouter des utilisateurs

Ajouter des utilisateurs par le biais du portail

  1. Dans la page de gestion, sélectionnez Utilisateurs.

    Utilisateurs de la page de gestion Apache Ambari.

  2. Sélectionnez + Créer un utilisateur local.

  3. Fournissez un Nom d’utilisateur et un Mot de passe. Sélectionnez Enregistrer.

Ajouter des utilisateurs par le biais de PowerShell

Modifiez les variables ci-dessous en remplaçant CLUSTERNAME, NEWUSER et PASSWORD par les valeurs appropriées.

# 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

Ajouter des utilisateurs par le biais de Curl

Modifiez les variables ci-dessous en remplaçant CLUSTERNAME, ADMINPASSWORD, NEWUSER et USERPASSWORD par les valeurs appropriées. Le script est conçu pour être exécuté avec bash. De légères modifications seraient nécessaires pour une invite de commandes Windows.

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"

Accorder des autorisations sur les affichages Apache Hive

Ambari s’accompagne d’instances d’affichages pour Apache Hive et Apache Tez, entre autres. Pour accorder l’accès à une ou plusieurs instances d’affichages Hive, accédez à la page de gestion Ambari.

  1. Sur la page de gestion, sélectionnez le lien Affichages sous le titre de menu Affichages, à gauche.

    Liens d’affichage Apache Ambari.

  2. Sur la page Affichages, développez la ligne HIVE. Par défaut, un affichage Hive est créé lorsque lors de l’ajout au cluster du service Hive. Vous pouvez également créer d’autres instances d’affichages Hive selon vos besoins. Sélectionnez un affichage Hive :

    Vues HDInsight : vue Apache Hive.

  3. Allez en bas de la page Affichage. Sous la section Autorisations, vous avez deux possibilités pour accorder des autorisations sur l’affichage à des utilisateurs de domaine :

Accorder une autorisation à ces utilisateursAccordez l’autorisation à ces utilisateurs.

Accorder une autorisation à ces groupesAccordez l’autorisation à ces groupes.

  1. Pour ajouter un utilisateur, appuyez sur le bouton Ajouter un utilisateur.

    • Commencez à taper le nom de l’utilisateur : une liste déroulante de noms déjà définis apparaît.

      Saisies semi-automatiques des utilisateurs Apache Ambari.

    • Sélectionnez ou terminez de taper le nom d’utilisateur. Pour ajouter ce nom d’utilisateur comme nouvel utilisateur, appuyez sur le bouton Nouveau.

    • Pour enregistrer vos modifications, cochez la case bleue.

      Octroi d’autorisations d’utilisateur Apache Ambari.

  2. Pour ajouter un groupe, appuyez sur le bouton Ajouter un groupe.

    • Commencez à taper le nom du groupe. Le processus de sélection d’un nom de groupe existant ou d’ajout d’un nouveau groupe est le même que pour les utilisateurs.

    • Pour enregistrer vos modifications, cochez la case bleue.

      Octroi d’autorisations Apache Ambari.

Il est utile d’ajouter directement des utilisateurs à un affichage afin de pouvoir affecter à un utilisateur l’autorisation de l’utiliser sans qu’il soit un membre d’un groupe disposant d’autorisations supplémentaires. Pour réduire la quantité de traitement administratif, il est parfois plus simple d’affecter des autorisations à des groupes.

Accorder des autorisations sur les affichages Apache Tez

Les instances d’affichages Apache Tez autorisent les utilisateurs à surveiller et à déboguer toutes les tâches Tez, soumises par des requêtes Apache Hive et des scripts Apache Pig. Par défaut, une instance d’affichage Tez est créée lors de la configuration du cluster.

Pour affecter des utilisateurs et des groupes à une instance d’affichage Tez, développez la ligne TEZ sur la page Affichages, comme nous l’avons décrit précédemment.

Vues HDInsight : vue Apache Tez.

Pour ajouter des utilisateurs ou des groupes, répétez les étapes 3, 4 et 5 de la section précédente.

Affecter des utilisateurs aux rôles

Il existe cinq rôles de sécurité pour les utilisateurs et les groupes, listés par ordre décroissant d’autorisations d’accès :

  • Administrateur de cluster
  • Opérateur de cluster
  • Administrateur de services
  • Opérateur de service
  • Utilisateur de cluster

Pour gérer les rôles, accédez à la page de gestion Ambari, puis sélectionnez le lien Rôles dans le groupe de menus Clusters, à gauche.

Liens du menu de rôles Apache Ambari.

Pour afficher la liste des autorisations accordées à chaque rôle, cliquez sur le point d’interrogation bleu près de l’en-tête du tableau Rôles, sur la page Rôles.

Autorisations des liens du menu de rôles Apache Ambari.

Cette page présente deux affichages différents qui permettent de gérer les rôles des utilisateurs et des groupes : le mode Bloc et le mode Liste.

Mode Bloc

La vue Bloc affiche chaque rôle dans sa propre ligne et fournit les options Assign roles to these users et *Assign roles to these groups décrites précédemment.

Vue de bloc des rôles Apache Ambari.

Mode Liste

Le mode Liste propose des fonctionnalités de modification rapide dans deux catégories : les utilisateurs et les groupes.

  • La catégorie Utilisateurs du mode Liste affiche la liste de tous les utilisateurs, ce qui permet de sélectionner un rôle pour chaque utilisateur dans la liste déroulante.

    Vue de liste de rôles Apache Ambari : utilisateurs.

  • La catégorie Groupes du mode Liste affiche tous les groupes, ainsi que le rôle affecté à chacun. Dans notre exemple, la liste des groupes est synchronisée à partir des groupes Microsoft Entra spécifiés dans la propriété Accéder au groupe d’utilisateurs des paramètres de domaine du cluster. Consultez Créer un cluster HDInsight avec le Pack Sécurité Entreprise activé.

    Vue de liste de rôles Apache Ambari : groupes.

    Dans l’image ci-dessus, le groupe hiveusers a le rôle Utilisateur du cluster. Il s’agit d’un rôle en lecture seule qui permet aux utilisateurs de ce groupe d’afficher, mais non de modifier, les configurations de service et les mesures du cluster.

Ouvrir une session Ambari en tant qu’utilisateur avec accès en lecture seule

Nous avons affecté à notre utilisateur de domaine Microsoft Entra « hiveuser1 » les autorisations sur les vues Hive et Tez. Si l’on lance l’interface utilisateur Web d’Ambari et que l’on entre les informations d’identification de domaine de cet utilisateur (nom d’utilisateur Microsoft Entra au format e-mail et mot de passe), celui-ci est redirigé vers la page Ambari Views. À ce stade, l’utilisateur peut sélectionner l’affichage de son choix, à condition qu’il soit accessible. Il ne peut pas visiter les autres parties du site, notamment le tableau de bord, les services, les hôtes, les alertes les pages d’administration.

Utilisateur Apache Ambari avec des vues uniquement.

Ouvrir une session Ambari en tant qu’utilisateur du cluster

Nous avons affecté le rôle Utilisateur du cluster à notre utilisateur de domaine Microsoft Entra « hiveuser2 ». Ce rôle peut accéder au tableau de bord et à tous les éléments de menu. Un utilisateur du cluster a moins d’options autorisées qu’un administrateur. Par exemple, hiveuser2 peut afficher les configurations de chacun des services, mais il ne peut pas les modifier.

Affichage du tableau de bord Apache Ambari.

Étapes suivantes