Authentification par identités managées Azure
L’authentification par identités managées Azure utilise des identités managées pour les ressources Azure (anciennement Managed Service Identities (MSI)) pour l’authentification auprès d’Azure Databricks. Les appels par programme aux opérations sur les comptes et les espaces de travail Azure Databricks utilisent cette identité managée lors de l’utilisation des ressources Azure qui prennent en charge les identités managées, telles que les machines virtuelles Azure.
- Pour plus d’informations sur les identités managées, consultez l’article Que sont les identités managées pour les ressources Azure ?.
- Pour apprendre à créer une identité managée et lui accorder l’autorisation d’accéder aux comptes et espaces de travail Azure Databricks, consultez l’article Configurer et utiliser l’authentification des identités managées Azure pour l’automatisation Azure Databricks.
Remarque
Les identités managées pour les ressources Azure sont différentes des principaux de service Microsoft Entra ID, qu’Azure Databricks prend également en charge pour l’authentification. Pour savoir comment utiliser les principaux de service Microsoft Entra ID pour une authentification Azure Databricks plutôt que les identités managées pour les ressources Azure, consultez les articles suivants :
- Authentification du principal de service MS Entra
- Authentification Azure CLI
- Gérer les principaux de service
- Approvisionner un principal de service en utilisant Terraform
- Obtenir des jetons Microsoft Entra ID pour les principaux de service
- Connexion Azure CLI avec un principal de service Microsoft Entra ID
- Connexion PowerShell avec un principal de service Microsoft Entra ID
L’authentification par identités managées Azure est prise en charge uniquement entre des ressources correctement configurées qui prennent en charge les identités managées (machines virtuelles Azure, par exemple) et des comptes et espaces de travail Azure Databricks.
Pour configurer l’authentification par identités managées Azure avec Azure Databricks, vous devez définir les variables d’environnement associées suivantes, les champs .databrickscfg
, les champs Terraform ou les champs Config
sur une machine virtuelle Azure correctement prise en charge :
- Un hôte Azure Databricks.
- Pour les opérations de compte, spécifiez
https://accounts.azuredatabricks.net
. - Pour les opérations d’espace de travail, spécifiez l’URL par espace de travail, par exemple
https://adb-1234567890123456.7.azuredatabricks.net
.
- Pour les opérations de compte, spécifiez
- Pour les opérations de compte, l’ID de compte Azure Databricks.
- L’ID de locataire de l’identité managée.
- L’ID client de l’identité managée.
- ID de ressource Azure.
- Définissez l’utilisation des identités managées dans Azure sur true.
Pour effectuer l’authentification par identités managées Azure avec Azure Databricks, intégrez les éléments suivants dans votre code, en fonction de l’outil ou du kit de développement logiciel (SDK) participant :
Environnement
Pour utiliser des variables d’environnement pour un type d’authentification Azure Databricks spécifique avec un outil ou un kit de développement logiciel (SDK), consultez Authentifier l’accès aux ressources Azure Databricks, ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Méthodes par défaut pour l’authentification unifiée du client.
Pour les opérations au niveau du compte, définissez les variables d’environnement suivantes :
DATABRICKS_HOST
, défini sur la valeur de l’URL de la console de votre compte Azure Databricks,https://accounts.azuredatabricks.net
.DATABRICKS_ACCOUNT_ID
ARM_CLIENT_ID
ARM_USE_MSI
, définie surtrue
.
Pour les opérations au niveau de l’espace de travail, définissez les variables d’environnement suivantes :
DATABRICKS_HOST
, défini sur la valeur de votre URL par espace de travail Azure Databricks, par exemplehttps://adb-1234567890123456.7.azuredatabricks.net
.ARM_CLIENT_ID
ARM_USE_MSI
, définie surtrue
.
Pour les opérations au niveau de l’espace de travail, si l’identité cible n’a pas déjà été ajoutée à l’espace de travail, spécifiez DATABRICKS_AZURE_RESOURCE_ID
avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de DATABRICKS_HOST
avec l’URL de l’espace de travail. Dans ce cas, l’identité cible doit avoir au moins les autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.
Profil
Créez ou identifiez un profil de configuration Azure Databricks avec les champs suivants dans votre fichier .databrickscfg
. Si vous créez le profil, remplacez les espaces réservés par les valeurs appropriées. Pour utiliser le profil avec un outil ou un kit de développement logiciel (SDK), consultez Authentifier l’accès aux ressources Azure Databricks ou la documentation de l’outil ou du SDK. Consultez également Variables et champs d’environnement pour l’authentification unifiée du client et Méthodes par défaut pour l’authentification unifiée du client.
Pour les opérations au niveau du compte, définissez les valeurs suivantes dans votre fichier .databrickscfg
. Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <account-console-url>
account_id = <account-id>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi = true
Pour les opérations au niveau de l’espace de travail, définissez les valeurs suivantes dans votre fichier .databrickscfg
. Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net
:
[<some-unique-configuration-profile-name>]
host = <workspace-url>
azure_client_id = <azure-managed-identity-application-id>
azure_use_msi = true
Pour les opérations au niveau de l’espace de travail, si l’identité cible n’a pas déjà été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id
avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de host
avec l’URL de l’espace de travail. Dans ce cas, l’identité cible doit avoir au moins les autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.
INTERFACE DE LIGNE DE COMMANDE
Pour l’interface CLI Databricks, effectuez l’une des opérations suivantes :
- Définissez les variables d’environnement comme spécifié dans la section « Environnement » de cet article.
- Définissez les valeurs de votre fichier
.databrickscfg
comme spécifié dans la section « Profil » de cet article.
Les variables d’environnement sont toujours prioritaires sur les valeurs de votre fichier .databrickscfg
.
Consultez également Authentification des identités managées Azure.
Se connecter
Remarque
Databricks Connect s'appuie sur le SDK Databricks pour Python pour l'authentification. Le SDK Databricks pour Python n’a pas encore implémenté l’authentification avec des identités managées Azure.
VS Code
Remarque
L’extension Databricks pour Visual Studio Code ne prend pas encore en charge l’authentification des identités gérées Azure.
Terraform
Pour les opérations au niveau du compte, pour l’authentification par défaut :
provider "databricks" {
alias = "accounts"
}
Pour la configuration directe (remplacez les espaces réservés retrieve
par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net
:
provider "databricks" {
alias = "accounts"
host = <retrieve-account-console-url>
account_id = <retrieve-account-id>
azure_client_id = <retrieve-azure-client-id>
azure_use_msi = true
}
Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :
provider "databricks" {
alias = "workspace"
}
Pour la configuration directe (remplacez les espaces réservés retrieve
par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme HashiCorp Vault. Référez-vous également à Vault Provider). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net
:
provider "databricks" {
alias = "workspace"
host = <retrieve-workspace-url>
azure_client_id = <retrieve-azure-client-id>
azure_use_msi = true
}
Pour les opérations au niveau de l’espace de travail, si l’identité cible n’a pas déjà été ajoutée à l’espace de travail, spécifiez azure_workspace_resource_id
avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de host
avec l’URL de l’espace de travail. Dans ce cas, l’identité cible doit avoir au moins les autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.
Pour plus d’informations sur l’authentification avec le fournisseur Databricks Terraform, consultez Authentification.
Python
Remarque
Le SDK Databricks pour Python n’a pas encore implémenté l’authentification par identités managées Azure.
Java
Remarque
Le SDK Databricks pour Java n’a pas encore implémenté l’authentification par identités managées Azure.
Go
Pour les opérations au niveau du compte, pour l’authentification par défaut :
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...
Pour la configuration directe (remplacez les espaces réservés retrieve
par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’URL de la console de compte Azure Databricks est https://accounts.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient(&databricks.Config{
Host: retrieveAccountConsoleUrl(),
AccountId: retrieveAccountId(),
AzureClientId: retrieveAzureClientId(),
AzureUseMSI: true,
}))
// ...
Pour les opérations au niveau de l’espace de travail, pour l’authentification par défaut :
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...
Pour la configuration directe (remplacez les espaces réservés retrieve
par votre propre implémentation afin de récupérer les valeurs de la console ou d’un autre magasin de configuration comme Azure KeyVault). Dans ce cas, l’hôte est l’URL par espace de travail Azure Databricks, par exemple https://adb-1234567890123456.7.azuredatabricks.net
:
import (
"github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient(&databricks.Config{
Host: retrieveWorkspaceUrl(),
AzureClientId: retrieveAzureClientId(),
AzureUseMSI: true,
}))
// ...
Pour les opérations au niveau de l’espace de travail, si l’identité cible n’a pas déjà été ajoutée à l’espace de travail, spécifiez AzureResourceID
avec l’ID de ressource Azure pour l’espace de travail Azure Databricks, au lieu de Host
avec l’URL de l’espace de travail. Dans ce cas, l’identité cible doit avoir au moins les autorisations Contributeur ou Propriétaire sur la ressource Azure pour l’espace de travail Azure Databricks.
Pour plus d’informations sur l’authentification avec les outils et les kits de développement logiciel (SDK) Databricks qui utilisent Go et qui implémentent l’Authentification unifiée du client Databricks, consultez Authentifier le kit de développement logiciel (SDK) Databricks pour Go avec votre compte ou votre espace de travail Azure Databricks.