Rôles pour la gestion des Service Principals
Cet article décrit comment gérer les rôles des Service Principal dans votre compte Databricks.
Un Service Principal est une identité que vous créez dans Databricks pour l'utilisation avec des outils automatisés, des Jobs et des applications. Les Service Principal donnent aux outils et scripts automatisés un accès en lecture seule de l'API aux Ressources Databricks, offrant une sécurité accrue par rapport à l'utilisation d'utilisateurs ou de groupes.
Vous pouvez accorder aux utilisateurs Databricks, aux Service Principal et aux groupes de comptes l'accès pour utiliser un Service Principal. Cela permet aux utilisateurs d'exécuter des Jobs en tant que Service Principal, plutôt qu'en tant que leur propre identité. Cela empêche les Jobs d’échouer si un utilisateur quitte votre organisation ou si un groupe est modifié.
Pour un aperçu des Service Principals, consultez Service Principals.
Rôles de service principal
Les rôles de Service Principal sont des rôles au niveau du compte. Cela signifie qu'ils n'ont besoin d'être définis qu'une seule fois, dans votre compte, et qu'ils s'appliquent à tous les workspaces. Il existe deux rôles que vous pouvez accorder sur un Service Principal : Service Principal Manager et Service Principal User .
- Le rôle de gestionnaire de Service Principal vous permet de gérer les rôles sur un Service Principal. Le créateur d'un service principal a le rôle de Service Principal Manager sur le service principal. Les administrateurs de compte ont le rôle de Service Principal Manager sur tous les Service Principal d'un compte.
Si un service principal a été créé avant le 13 juin 2023, le créateur du service principal n'a pas le rôle de responsable de service principal par default. Si vous devez être un gestionnaire, demandez à un administrateur de compte de vous accorder le rôle de Gestionnaire de Service Principal .
- L'**Utilisateur Service Principal** permet aux utilisateurs du workspace d'exécuter des jobs en tant que service principal. Le job s'exécutera avec l'identité du service principal, au lieu de celle du propriétaire du job. Le rôle d'**Utilisateur Service Principal** permet également aux administrateurs du workspace de créer des jetons d'accès personnels au nom du service principal. La création de secrets OAuth pour un service principal nécessite d'être un administrateur de compte ou d'avoir le rôle de **gestionnaire de Service Principal** sur le service principal.
Lorsque le paramètre RestrictWorkspaceAdmins d'un workspace est défini sur ALLOW ALL, les administrateurs de workspace peuvent créer un jeton d'accès personnel au nom de n'importe quel Service Principal de leur workspace. Pour appliquer le rôle Utilisateur de Service Principal aux administrateurs de workspace afin de créer un jeton d'accès personnel pour un Service Principal, consultez Restreindre les administrateurs de workspace.
Les utilisateurs dotés du rôle Service Principal Manager n’héritent pas du rôle Service Principal User . Si vous souhaitez utiliser le Service Principal pour exécuter des Jobs, vous devez vous attribuer explicitement le rôle d'utilisateur du Service Principal, même après avoir créé le Service Principal.
Gérer les rôles de Service Principal à l'aide de la console de compte
Les administrateurs de compte peuvent gérer les rôles de Service Principal à l’aide de la console du compte.
Afficher les rôles d'un Service Principal
- En tant qu'administrateur de compte, connectez-vous à la console du compte.
- Dans la barre latérale, cliquez sur Gestion des utilisateurs .
- Sous l'onglet Service principals , trouvez et cliquez sur le nom.
- Cliquez sur l'onglet tab .
Vous pouvez voir la liste des principaux et les rôles qui leur sont accordés sur le Service principal. Vous pouvez également utiliser la barre de recherche pour rechercher un principal ou un rôle spécifique.
Octroyer des rôles à un Service Principal
-
En tant qu'administrateur de compte, connectez-vous à la console du compte.
-
Dans la barre latérale, cliquez sur Gestion des utilisateurs .
-
Sous l'onglet Service principals , trouvez et cliquez sur le nom.
-
Cliquez sur l'onglet tab .
-
Cliquez sur Accorder l'accès .
-
Recherchez et sélectionnez l'utilisateur, le Service Principal ou le groupe, et choisissez le ou les rôles ( Service Principal : Gestionnaire ou Service Principal : Utilisateur ) à attribuer.
Les utilisateurs dotés du rôle Service Principal Manager n’héritent pas du rôle Service Principal User . Si vous souhaitez que l'utilisateur utilise le Service Principal pour exécuter des Jobs, vous devrez lui attribuer explicitement le rôle d' utilisateur de Service Principal .
- Cliquez sur Enregistrer .
Révoquer les rôles sur un Service Principal
- En tant qu'administrateur de compte, connectez-vous à la console du compte.
- Dans la barre latérale, cliquez sur Gestion des utilisateurs .
- Sous l'onglet Service principals , trouvez et cliquez sur le nom.
- Cliquez sur l'onglet tab .
- Recherchez l’utilisateur, le Service Principal ou le groupe pour modifier leurs rôles.
- Sur la ligne du principal, cliquez sur le menu kebab
puis sélectionnez **Modifier**. Vous pouvez également sélectionner Supprimer pour révoquer tous les rôles du principal.
- Cliquez sur Modifier .
- Cliquez sur le X à côté des rôles que vous souhaitez révoquer.
- Cliquez sur Enregistrer .
Gérer les rôles du Service Principal à l'aide de la page des paramètres d'administration du Workspace
Les administrateurs du Workspace peuvent gérer les rôles des Service Principals pour les Service Principals sur lesquels ils ont le rôle de **Service Principal Manager** en utilisant la page des paramètres d'administration.
Afficher les rôles d'un Service Principal
- En tant qu’administrateur de workspace, connectez-vous au workspace Databricks.
- Cliquez sur votre nom d'utilisateur dans la barre supérieure du workspace Databricks et sélectionnez **Paramètres**.
- Cliquez sur l'onglet **Identity and access** tab.
- À côté de **Service principals**, cliquez sur **Gérer**.
- Recherchez et cliquez sur le nom.
- Cliquez sur l'onglet tab .
Vous pouvez voir la liste des principaux et les rôles qui leur sont accordés sur le Service principal. Vous pouvez également utiliser la barre de recherche pour rechercher un principal ou un rôle spécifique.
Octroyer des rôles à un Service Principal
Vous devez disposer du rôle Service Principal Manager sur un Service Principal afin d'attribuer des rôles.
-
En tant qu’administrateur de workspace, connectez-vous au workspace Databricks.
-
Cliquez sur votre nom d'utilisateur dans la barre supérieure du workspace Databricks et sélectionnez **Paramètres**.
-
Cliquez sur l'onglet **Identity and access** tab.
-
À côté de **Service principals**, cliquez sur **Gérer**.
-
Recherchez et cliquez sur le nom.
-
Cliquez sur l'onglet tab .
-
Cliquez sur Accorder l'accès .
-
Recherchez et sélectionnez l'utilisateur, le Service Principal ou le groupe, et choisissez le ou les rôles ( Service Principal : Gestionnaire ou Service Principal : Utilisateur ) à attribuer.
Les rôles peuvent être accordés à n'importe quel utilisateur, Service Principal ou groupe au niveau du compte, même s'ils ne sont pas membres du Workspace. Les rôles ne peuvent pas être accordés aux groupes locaux du Workspace.
Les utilisateurs dotés du rôle Service Principal Manager n’héritent pas du rôle Service Principal User . Si vous souhaitez que l'utilisateur utilise le Service Principal pour exécuter des Jobs, vous devrez lui attribuer explicitement le rôle d' utilisateur de Service Principal .
- Cliquez sur Enregistrer .
Révoquer les rôles sur un Service Principal
Vous devez disposer du rôle de gestionnaire de Service Principal sur un Service Principal afin de révoquer les rôles.
- En tant qu’administrateur de workspace, connectez-vous au workspace Databricks.
- Cliquez sur votre nom d'utilisateur dans la barre supérieure du workspace Databricks et sélectionnez **Paramètres**.
- Cliquez sur l'onglet **Identity and access** tab.
- À côté de **Service principals**, cliquez sur **Gérer**.
- Recherchez et cliquez sur le nom.
- Cliquez sur l'onglet tab .
- Recherchez l’utilisateur, le Service Principal ou le groupe pour modifier leurs rôles.
- Sur la ligne du principal, cliquez sur le menu kebab
puis sélectionnez **Modifier**. Vous pouvez également sélectionner Supprimer pour révoquer tous les rôles du principal.
- Cliquez sur Modifier .
- Cliquez sur le X à côté des rôles que vous souhaitez révoquer.
- Cliquez sur Enregistrer .
Gérer les rôles de Service Principal à l'aide de l'interface de ligne de commande Databricks
Vous devez avoir le rôle de gestionnaire de Service Principal pour gérer les rôles sur un Service Principal. Vous pouvez utiliser le CLI Databricks pour gérer les rôles. Pour obtenir des informations sur l'installation et l'authentification à la CLI Databricks, consultez la CLI Databricks.
Vous pouvez également gérer les rôles de Service Principal à l’aide de l’ API de contrôle d’accès aux comptes. L’API de contrôle d’accès aux comptes est prise en charge via le compte Databricks et les Workspace.
Les administrateurs de compte appellent l'API sur accounts.cloud.databricks.com ({account-domain}/api/2.0/preview/accounts/{account_id}/access-control).
Les utilisateurs dotés du rôle de Gestionnaire de Service Principal qui ne sont pas administrateurs de compte appellent l'API sur le domaine du Workspace ({workspace-domain}/api/2.0/preview/accounts/access-control/).
Accorder des rôles sur un Service Principal à l'aide de la CLI Databricks
L'API et la CLI de contrôle d'accès des comptes utilisent un champ etag afin d'assurer la cohérence. Pour accorder ou révoquer des rôles de Service Principal via l'API, émettez d'abord une commande d'ensemble de règles GET et recevez une etag en réponse. Vous pouvez ensuite appliquer les modifications localement et, enfin, émettre un ensemble de règles PUT avec le etag.
Par exemple, émettez un ensemble de règles GET sur le Service Principal auquel vous souhaitez accorder l'accès en exécutant la commande suivante :
databricks account access-control get-rule-set accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default <etag>
Remplacer :
<account-id>avec l'ID de compte.<application-id>avec l’ID d’application du Service Principal.<etag>avec « »
Exemple de réponse :
{
"etag":"<etag>",
"grant_rules": [
{
"principals": [
"users/user@example.com"
],
"role":"roles/servicePrincipal.manager"
},
{
"principals": [
"users/user@example.com"
],
"role":"roles/servicePrincipal.user"
}
],
"name":"<name>"
}
Copiez le champ etag du corps de la réponse pour une utilisation ultérieure.
Ensuite, vous pouvez effectuer des mises à jour localement lorsque vous décidez de l'état final des règles, puis mettre à jour l'ensemble de règles à l'aide de l'etag. Pour accorder le rôle de Service principal : Utilisateur à l'utilisateur user2@example.com, exécutez la commande suivante :
databricks account access-control update-rule-set --json '{
"name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
"rule_set": {
"name": "accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default",
"grant_rules": [
{
"role": "roles/servicePrincipal.user",
"principals": ["users/user2@example.com"]
}
],
"etag": "<etag>"
}
}'
Remplacer :
<account-id>avec l'ID de compte.<application-id>avec l’ID d’application du Service Principal.<etag>avec l'etag que vous avez copié de la dernière réponse.
Exemple de réponse :
{
"etag":"<new-etag>",
"grant_rules": [
{
"principals": [
"users/user2@example.com"
],
"role":"roles/servicePrincipal.user"
}
],
"name":"accounts/<account-id>/servicePrincipals/<application-id>/ruleSets/default"
}
Puisqu'il s'agit d'une méthode PUT, tous les rôles existants sont écrasés. Pour conserver les rôles existants, vous devez les ajouter au tableau grant_roles.
Listez les Service Principal que vous pouvez utiliser
Grâce à l'API Workspace Service Principal, vous pouvez répertorier les Service Principal pour lesquels vous avez le rôle d'utilisateur en filtrant sur servicePrincipal/use.
Pour lister les Service Principals sur lesquels vous avez le rôle Utilisateur de Service Principal , exécutez la commande suivante :
databricks service-principals list -p WORKSPACE --filter "permission eq 'servicePrincipal/use'"
Vous pouvez également lister les Service Principals en utilisant l'API Workspace Service Principals.