Authentification pour la CLI Databricks
L'utilisation de Databricks CLI est soumise à la licence Databricks et à la politique de confidentialité Databricks, y compris toutes les dispositions relatives aux données d'utilisation.
Cet article explique comment configurer l'authentification entre la CLI Databricks et vos comptes et Workspaces Databricks. Il est supposé que vous avez déjà installé la CLI Databricks. Consultez Installer ou mettre à jour la CLI Databricks.
Avant d’exécuter les commandes CLI Databricks, vous devez configurer l’ authentification pour les comptes ou les workspaces que vous prévoyez d’utiliser. La configuration requise dépend de si vous souhaitez exécuter des commandes au niveau du Workspace, des commandes au niveau du compte ou les deux.
Pour afficher les groupes de commandes CLI disponibles, exécutez databricks -h. Pour la liste des opérations d'API REST correspondantes, consultez API REST Databricks.
Authentification OAuth machine à machine (M2M)
L'authentification de machine à machine (M2M) avec OAuth permet aux services, scripts ou applications d'accéder aux ressources Databricks sans connexion utilisateur interactive. Au lieu de s'appuyer sur des jetons d'accès personnels (PAT) ou des informations d'identification utilisateur, l'authentification M2M utilise un Service Principal et un flux d'informations d'identification client OAuth pour demander et gérer les jetons.
Pour configurer et utiliser l'authentification OAuth M2M :
-
Terminez les étapes de configuration de l’authentification OAuth M2M. Consultez Autoriser l'accès de service principal à Databricks avec OAuth.
-
Créez un profil de configuration Databricks avec les champs suivants dans votre fichier
.databrickscfg.Pour les commandes au niveau du compte
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
client_id = <service-principal-client-id>
client_secret = <service-principal-oauth-secret>Pour les commandes au niveau du Workspace.
[<some-unique-configuration-profile-name>]
host = <workspace-url>
client_id = <service-principal-client-id>
client_secret = <service-principal-oauth-secret>
Pour utiliser le profil, transmettez-le avec l'indicateur --profile ou -p dans les commandes CLI. Par exemple :
databricks account groups list -p <profile-name>
Appuyez sur Tab après --profile ou -p pour afficher une liste des profils disponibles.
Authentification OAuth d'utilisateur à machine (U2M)
Avec l'authentification OAuth utilisateur-machine (U2M), vous vous connectez de manière interactive et le CLI gère les jetons de courte durée en votre nom. Les jetons OAuth expirent en moins d'une heure, ce qui réduit le risque si un jeton est accidentellement exposé. Consultez Autoriser l'accès utilisateur à Databricks avec OAuth.
Connexion :
Pour les commandes au niveau du compte
databricks auth login --host <account-console-url> --account-id <account-id>
Pour les commandes au niveau du Workspace.
databricks auth login --host <workspace-url>
La CLI vous guide tout au long d'un flux de connexion basé sur le navigateur. Lorsque vous avez terminé, la CLI enregistre un profil de configuration avec votre hôte de Workspace et le nom de profil. Vous pouvez accepter le nom de profil suggéré ou saisir le vôtre.
Si vous disposez de l'autorisation d'assumer un ou plusieurs rôles, vous choisissez de vous authentifier en tant que votre propre identité d'utilisateur ou en tant que l'un de ces rôles dans votre navigateur web, dans le cadre du flux d'authentification. Le profil résultant autorise les commandes en tant qu'identité que vous sélectionnez. See CLI.
Pour utiliser le profil, transmettez-le avec l'indicateur --profile ou -p dans les commandes CLI. Par exemple :
databricks clusters list -p <profile-name>
Appuyez sur Tab après --profile ou -p pour afficher une liste des profils disponibles.
Stockage des jetons
Par default à partir de la version 1.0.0 de la CLI Databricks, Les jetons U2M sont stockés dans un stockage sécurisé natif du système d'exploitation : Trousseau sur macOS, Gestionnaire d'informations d'identification sur Windows et D-Bus Secret Service sur Linux. Votre fichier .databrickscfg ne contient que des configurations non secrètes telles que le nom d'hôte et le nom de profil. Le jeton lui-même n'y est jamais écrit.
Chaque profil a son propre jeton mis en cache. Si vous avez plusieurs profils pointant vers le même workspace, la déconnexion de l'un n'entraîne pas la déconnexion des autres.
Si votre environnement ne prend pas en charge le stockage sécurisé natif du système d'exploitation (par exemple, un serveur sans interface graphique ou un environnement CI), vous pouvez revenir au stockage de jetons en texte clair.
Pour le dépannage des erreurs de stockage sécurisé, consultez Dépanner la CLI Databricks.
Utiliser le fallback en texte brut
Si votre environnement ne prend pas en charge le stockage sécurisé, ou si vous dépendez d'un stockage de jetons basé sur des fichiers (par exemple, la synchronisation du fichier d'identifiants via SSH), vous pouvez configurer la CLI pour utiliser le fichier JSON brut avec l'une des options suivantes. Après avoir configuré l'une ou l'autre option, exécutez databricks auth login à nouveau.
-
Configurez la variable d'environnement
DATABRICKS_AUTH_STORAGE.Bashexport DATABRICKS_AUTH_STORAGE=plaintext -
Définissez le paramètre
auth_storagedans le fichier profil de configuration Databricks~/.databrickscfg.ini[__settings__]
auth_storage = plaintext
La variable d'environnement prévaut sur le paramètre du profil de configuration.
Ordre d'évaluation de l'authentification
Chaque fois que le Databricks CLI s'authentifie auprès d'un Workspace ou d'un compte Databricks, il recherche les paramètres requis dans l'ordre suivant :
- **Fichiers de paramètres de bundle**, pour les commandes exécutées à partir d'un répertoire de travail de bundle. Les fichiers de paramètres de bundle ne peuvent pas contenir directement les valeurs d'identifiants.
- Variables d'environnement , telles qu'elles sont répertoriées dans cet article et dans Variables d'environnement et champs pour l'authentification unifiée.
- Profils de configuration dans le fichier
.databrickscfg.
Dès que le CLI trouve le paramètre requis, il cesse de chercher d'autres emplacements.
Exemples :
- Si une variable d’environnement
DATABRICKS_TOKENest définie, la CLI l’utilise, même si plusieurs tokens existent dans.databrickscfg. - Si aucun
DATABRICKS_TOKENn'est défini et qu'un environnement de bundle référence un nom de profil tel quedev→ profilDEV, la CLI utilise les informations d'identification de ce profil dans.databrickscfg. - Si aucun
DATABRICKS_TOKENn'est défini et qu'un environnement de bundle spécifie une valeurhost, la CLI recherche un profil dans.databrickscfgavec unhostcorrespondant et utilise sontoken.
Authentification par jeton d'accès personnel (hérité)
Dans la mesure du possible, Databricks recommande d'utiliser OAuth plutôt que des PAT pour l'authentification des comptes utilisateur, car OAuth offre une sécurité renforcée. Prenez en compte les méthodes d'authentification suivantes :
L'authentification par jeton d'accès personnel Databricks utilise un jeton d'accès personnel Databricks pour authentifier l'entité Databricks cible, telle qu'un compte utilisateur Databricks ou un Service Principal Databricks. Consultez S'authentifier avec les jetons d'accès personnels Databricks (hérité).
Pour créer un jeton d'accès personnel, suivez les étapes de Créer des jetons d'accès personnels pour les utilisateurs de Workspace.