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 :
Ajouter des utilisateurs
Ajouter des utilisateurs par le biais du portail
Dans la page de gestion, sélectionnez Utilisateurs.
Sélectionnez + Créer un utilisateur local.
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.
Sur la page de gestion, sélectionnez le lien Affichages sous le titre de menu Affichages, à gauche.
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 :
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 utilisateurs
Accorder une autorisation à ces groupes
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.
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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.
Étapes suivantes
- Configurer des stratégies Apache Hive dans HDInsight avec le Pack Sécurité Entreprise
- Gérer des clusters HDInsight avec le Pack Sécurité Entreprise activé
- Utiliser l’affichage Apache Hive avec Apache Hadoop dans HDInsight
- Synchroniser les utilisateurs Microsoft Entra avec le cluster
- Gérer des clusters HDInsight à l’aide de l’API REST d’Apache Ambari