Surveiller et révoquer les jetons d'accès personnels
Pour vous authentifier auprès de l’ API REST de Databricks, un utilisateur peut créer un jeton d’accès personnel (PAT) et l’utiliser dans sa requête d’API REST. Un utilisateur peut également créer un Service Principal et l'utiliser avec un jeton d'accès personnel pour appeler les APIs REST Databricks dans ses outils CI/CD et son automatisation. Cet article explique comment les administrateurs Databricks peuvent gérer les jetons d'accès personnels dans leur Workspace. Pour créer un jeton d'accès personnel, consultez Authentification avec les jetons d'accès personnels Databricks (hérité).
Utiliser OAuth au lieu des jetons d'accès personnels
Databricks vous recommande d'utiliser des jetons d'accès OAuth plutôt que des PAT pour une sécurité et une commodité accrues. Databricks continue de prendre en charge les PAT, mais en raison de leur risque de sécurité accru, il est suggéré d'auditer l'utilisation actuelle des PAT de votre compte et de migrer vos utilisateurs et Service Principal vers des jetons d'accès OAuth. Pour créer un jeton d'accès OAuth (au lieu d'un PAT) à utiliser avec un Service Principal dans l'automatisation, consultez Autoriser l'accès du Service Principal à Databricks avec OAuth.
Databricks vous recommande de minimiser l'exposition de votre jeton d'accès personnel en suivant les étapes suivantes :
- Définissez une courte durée de vie pour tous les nouveaux jetons créés dans vos workspaces. La durée de vie doit être inférieure à 90 jours. By default, la durée de vie maximale de tous les nouveaux jetons est de 730 jours (deux ans).
- Collaborez avec les administrateurs et les utilisateurs de votre workspace Databricks pour passer à des jetons avec des durées de vie plus courtes.
- Révoquez tous les jetons de longue durée pour réduire le risque d'utilisation abusive de ces jetons plus anciens au fil du temps. Databricks révoque automatiquement tous les PAT pour vos Workspaces Databricks lorsque le jeton n’a pas été utilisé depuis au moins 90 jours.
Exigences
Vous devez être administrateur pour gérer les jetons d'accès personnels.
Les administrateurs de compte Databricks peuvent surveiller et révoquer les jetons d'accès personnels sur l'ensemble du compte.
Les administrateurs de Workspace Databricks peuvent effectuer les opérations suivantes :
- Désactivez les jetons d'accès personnels pour un Workspace.
- Contrôlez quels utilisateurs non-administrateurs peuvent créer et utiliser des jetons.
- Définir une durée de vie maximale pour les nouveaux jetons.
- Surveillez et révoquez les jetons dans leur Workspace.
La gestion des jetons d'accès personnels dans votre Workspace nécessite le plan Premium ou supérieur.
Surveiller et révoquer les jetons d'accès personnels dans le compte
Les administrateurs de compte peuvent surveiller et révoquer les jetons d'accès personnels depuis la console de compte. Les queries pour surveiller les tokens s'exécutent uniquement lorsqu'un administrateur de compte utilise la page de rapport des tokens.
-
En tant qu'administrateur de compte, connectez-vous à la console du compte.
-
Dans la barre latérale, cliquez sur Sécurité et Rapport de jetons .
Vous pouvez filtrer par le propriétaire du jeton, le Workspace, la date de création, la date d'expiration et la date de dernière utilisation du jeton. Utilisez les boutons en haut du rapport pour filtrer les jetons d'accès pour les principaux inactifs ou les jetons d'accès sans date d'expiration.
-
Pour exporter un rapport vers un CSV, cliquez sur Exporter .
-
Pour révoquer un jeton, sélectionnez un jeton et cliquez sur Révoquer .
Activer ou désactiver l'authentification par jeton d'accès personnel pour le Workspace
L’authentification par jeton d’accès personnel est activée par default pour tous les workspaces Databricks. Vous pouvez modifier ce paramètre dans la page des paramètres du Workspace.
Lorsque les jetons d'accès personnels sont désactivés pour un Workspace, les jetons d'accès personnels ne peuvent pas être utilisés pour s'authentifier auprès de Databricks et les utilisateurs du Workspace et les Service Principals ne peuvent pas créer de nouveaux jetons. Aucun jeton n'est supprimé lorsque vous désactivez l'authentification par jeton d'accès personnel pour un Workspace. Si les jetons sont réactivés ultérieurement, tous les jetons non expirés sont disponibles à l'utilisation.
Si vous souhaitez désactiver l'accès aux jetons pour un sous-ensemble d'utilisateurs, vous pouvez maintenir l'authentification par jeton d'accès personnel activée pour le Workspace et définir des autorisations à granularité fine pour les utilisateurs et les groupes. Consultez Contrôler qui peut créer et utiliser des jetons d'accès personnels.
Partner Connect, les intégrations partenaires et les principaux de service nécessitent l'activation des jetons d'accès personnels sur un workspace.
Pour désactiver la possibilité de créer et d'utiliser des jetons d'accès personnels pour le workspace :
-
Accédez à la page de paramètres.
-
Cliquez sur l'onglet Advanced tab.
-
Cliquez sur le bouton bascule **Jetons d'accès personnel**.
-
Cliquez sur Confirmer .
Cette modification peut prendre quelques secondes pour prendre effet.
Vous pouvez également utiliser l'API de configuration de Workspace pour désactiver les jetons d'accès personnels pour l'espace de travail.
Contrôler qui peut créer et utiliser des jetons d'accès personnels
Les administrateurs de workspace peuvent définir des autorisations sur les jetons d'accès personnels pour contrôler quels utilisateurs, Service Principals et groupes peuvent créer et utiliser des jetons. Pour plus de détails sur la configuration des autorisations du jeton d'accès personnel, consultez Gérer les autorisations du jeton d'accès personnel.
Définissez la durée de vie maximale des nouveaux jetons d'accès personnels
Par default, la durée de vie maximale des nouveaux jetons est de 730 jours (deux ans). Définissez une durée de vie maximale de jeton plus courte dans votre Workspace à l'aide de l'CLI Databricks ou de l'API de configuration du Workspace. Cette limite s'applique uniquement aux nouveaux jetons.
Définissez maxTokenLifetimeDays sur la durée de vie maximale (en jours) des nouveaux jetons, sous forme d’entier. Par exemple :
- Databricks CLI
- Workspace configuration API
- Terraform
databricks workspace-conf set-status --json '{
"maxTokenLifetimeDays": "90"
}'
curl -n -X PATCH "https://<databricks-instance>/api/2.0/workspace-conf" \
-d '{
"maxTokenLifetimeDays": "90"
}'
Pour utiliser le fournisseur Databricks Terraform afin de gérer la durée de vie maximale des nouveaux jetons dans un workspace, consultez Ressource databricks_workspace_conf.
La définition de maxTokenLifetimeDays à "0" supprime toute limite de durée de vie personnalisée et revient à la valeur default du système de 730 jours (deux ans). Utilisez ce paramètre pour désactiver une limite personnalisée configurée précédemment.
Notifications d'expiration du jeton d'accès personnel
Databricks envoie des notifications par e-mail aux utilisateurs de Workspace environ sept jours avant l'expiration de leurs jetons d'accès personnels. Les utilisateurs doivent disposer de noms d'utilisateur basés sur l'e-mail pour recevoir ces notifications. Databricks regroupe tous les jetons expirant au sein du même workspace dans un seul e-mail.
Notifications d'expiration des jetons de Service Principal
Pour les jetons Service Principal, Databricks envoie des notifications d'expiration aux administrateurs du Workspace. Les notifications sont uniquement envoyées pour les jetons Service Principal dont la durée de vie est supérieure à sept jours et qui ont été utilisés au moins une fois.
Surveiller et révoquer les jetons dans votre Workspace
Cette section décrit comment les administrateurs de workspace peuvent utiliser la CLI Databricks pour gérer les jetons existants dans le workspace. Vous pouvez également utiliser l'API de gestion des jetons. Databricks révoque automatiquement les jetons d’accès personnels qui n’ont pas été utilisés depuis 90 jours ou plus.
Obtenez des jetons pour le Workspace
Pour obtenir les jetons du Workspace :
- Python
- Bash
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
spark.createDataFrame([token.as_dict() for token in w.token_management.list()]).createOrReplaceTempView('tokens')
display(spark.sql('select * from tokens order by creation_time'))
# Filter results by a user by using the `created-by-id` (to filter by the user ID) or `created-by-username` flags.
databricks token-management list
Supprimer (révoquer) un jeton
Pour supprimer un jeton, remplacez TOKEN_ID par l'ID du jeton à supprimer :
databricks token-management delete TOKEN_ID
Vérifier l'état de la portée automatique des jetons
Vous pouvez consulter le statut de la portée automatique, les portées inférées et les portées appliquées d'un jeton en utilisant l'interface utilisateur du Workspace ou l'API de jetons. Pour un aperçu du fonctionnement de l'auto-scoping, voir l'auto-scoping pour les jetons d'accès personnels.
Pour les nouveaux jetons, vous pouvez afficher les portées proposées dans l'interface utilisateur du Workspace. Pour les jetons existants avec un accès à toutes les API, les portées proposées sont disponibles uniquement via l'API.
- Workspace UI
- API
- Dans votre workspace Databricks, cliquez sur votre nom d'utilisateur dans le coin supérieur droit.
- Cliquez sur Paramètres .
- Dans le volet de navigation gauche, cliquez sur Développeur .
- Cliquez sur **Jetons d'accès** > **Gérer**.
- Examinez l'état de réglage automatique de la portée de chaque jeton et ses portées historiques ou appliquées.
Utilisez GET /api/2.0/token/list pour examiner les étendues inférées et l'état de l'étendue automatique.
Nouveaux jetons : la réponse inclut inferred_scopes affichant les étendues inférées actuelles et autoscope_state affichant l'état actuel de la portée automatique.
{
"token_infos": [
{
"token_id": "<token-id>",
"comment": "example autoscoping completed PAT",
"scopes": ["authentication"],
"autoscope_state": "AUTOSCOPE_STATE_COMPLETED",
"inferred_scopes": ["authentication"]
}
]
}
Jetons existants : La réponse inclut un champ backfill_scopes affichant les portées déduites de l’utilisation historique de l’API.
{
"token_infos": [
{
"token_id": "<token-id>",
"comment": "example existing all-apis PAT",
"backfill_scopes": ["authentication"]
}
]
}