Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Remarque
Pour approvisionner un principal de service géré Microsoft Entra ID en utilisant le Portail Azure et l’interface utilisateur Azure Databricks à la place, consultez Principaux de service.
Les principaux de service gérés Microsoft Entra ID diffèrent des identités managées pour les ressources Azure. Azure Databricks les prend également en charge pour l’authentification. Pour savoir comment utiliser des identités gérées pour les ressources Azure au lieu des principaux de service gérés Microsoft Entra ID pour l’authentification Azure Databricks, consultez Utiliser des identités gérées Azure avec Azure Databricks.
Un principal de service est une identité créée pour être utilisée avec des outils et systèmes automatisés (comme les scripts, les applications et les plateformes CI/CD). Databricks recommande d’utiliser un principal de service et son jeton OAuth (ou son jeton d’accès personnel) plutôt que votre compte d’utilisateur Azure Databricks et votre jeton d’accès personnel. Voici les avantages :
- Accorder et restreindre l’accès aux ressources indépendamment de l’utilisateur.
- Permettre aux utilisateurs de mieux protéger leurs jetons d’accès.
- Désactiver ou supprimer un principal de service sans affecter les autres utilisateurs.
- Supprimer un utilisateur qui quitte l’organisation sans affecter le principal de service.
Suivez ces instructions pour utiliser Terraform afin de créer un principal de service géré Microsoft Entra ID dans Azure, utiliser le fournisseur Databricks Terraform pour ajouter le principal de service Microsoft Entra ID à votre espace de travail Azure Databricks, puis éventuellement créer un jeton Microsoft Entra ID ou un jeton OAuth Azure Databricks pour le principal de service.
Spécifications
- Interface CLI Terraform. Consultez Télécharger Terraform.
- Azure CLI, connecté à l’abonnement Microsoft Entra ID cible en exécutant la commande
az login. Pour vous connecter avec un compte d’utilisateur ou un principal de service, consultez Se connecter avec Azure CLI.
Étape 1 : Créer le principal de service
Si vous disposez déjà d’un principal de service géré Microsoft Entra ID, passez à l’étape 2.
Dans votre terminal, créez un répertoire vide, puis basculez vers celui-ci. (Chaque ensemble distinct de fichiers de configuration Terraform doit se trouver dans son propre répertoire.) Par exemple :
mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo.mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demoDans ce répertoire vide, créez un fichier nommé
main.tf. Ajoutez le contenu suivant à ce fichier, puis enregistrez-le.variable "azure_service_principal_display_name" { description = "A display name for the <entra-service-principal>." type = string } terraform { required_providers { azuread = { source = "hashicorp/azuread" } } } provider "azurerm" { features {} } resource "azuread_application" "this" { display_name = var.azure_service_principal_display_name } resource "azuread_service_principal" "this" { application_id = azuread_application.this.application_id } resource "time_rotating" "month" { rotation_days = 30 } resource "azuread_service_principal_password" "this" { service_principal_id = azuread_service_principal.this.object_id rotate_when_changed = { rotation = time_rotating.month.id } } output "azure_client_id" { description = "The Azure AD service principal's application (client) ID." value = azuread_application.this.application_id } output "azure_client_secret" { description = "The Azure AD service principal's client secret value." value = azuread_service_principal_password.this.value sensitive = true }Dans le même répertoire, créez un fichier nommé
terraform.tfvars. Ajoutez le contenu suivant à ce fichier, en remplaçant la valeur suivante, puis enregistrez le fichier :- Remplacez la valeur
azure_service_principal_display_namepar un nom complet pour le principal de service Microsoft Entra ID.
azure_service_principal_display_name = "<A display name for the <entra-service-principal>>"- Remplacez la valeur
Initialisez le répertoire de travail contenant le fichier
main.tfen exécutant la commandeterraform init. Pour plus d’informations, consultez Command: init sur le site web de Terraform.terraform initVérifiez s’il existe des erreurs de syntaxe dans la configuration en exécutant la commande
terraform validate. Pour plus d’informations, consultez Command: validate sur le site web de Terraform.terraform validateAppliquez les modifications nécessaires pour atteindre l’état souhaité de la configuration en exécutant la commande
terraform apply. Pour plus d’informations, consultez Command: apply sur le site web de Terraform.terraform apply
Après la création du principal de service, copiez les valeurs de sortie azure_client_id et azure_client_secret, car vous allez en avoir besoin ultérieurement.
Pour obtenir la valeur azure_client_secret, consultez la valeur de outputs.client_secret.value dans le fichier terraform.tfstate, qui se trouve dans le répertoire de travail contenant le fichier main.tf.
Étape 2 : Ajouter le principal de service à l’espace de travail Azure Databricks
Remarque
Le contenu suivant ajoute un principal de service au niveau de l’espace de travail Azure Databricks. Si votre espace de travail Azure Databricks est activé pour la fédération des identités, le contenu suivant synchronise également automatiquement le principal de service avec le compte Azure Databricks associé.
Dans votre terminal, créez un répertoire vide, puis basculez vers celui-ci. Chaque ensemble de fichiers de configuration Terraform doit se trouver dans son propre répertoire. Par exemple :
mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo.mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demoDans ce répertoire vide, créez un fichier nommé
main.tf. Ajoutez le contenu suivant à ce fichier, puis enregistrez-le.variable "databricks_host" { description = "The Azure Databricks workspace URL." type = string } variable "azure_client_id" { type = string description = "The application (client) ID of the <entra-service-principal> to link to an Azure Databricks service principal. This application (client) ID will be the application ID of the Azure Databricks service principal." } variable "databricks_service_principal_display_name" { type = string description = "A workspace display name for the Azure Databricks service principal." } terraform { required_providers { databricks = { source = "databricks/databricks" } } } provider "databricks" { host = var.databricks_host } resource "databricks_service_principal" "sp" { application_id = var.azure_client_id display_name = var.databricks_service_principal_display_name } output "databricks_service_principal_application_id" { value = databricks_service_principal.sp.application_id description = "Application ID of the Azure Databricks service principal." } output "databricks_service_principal_display_name" { value = databricks_service_principal.sp.display_name description = "Workspace display name of the Azure Databricks service principal." } output "databricks_workspace_service_principal_id" { value = databricks_service_principal.sp.id description = "Workspace ID of the Azure Databricks service principal. This ID is generated by Azure Databricks for this workspace." }Remarque
Pour ajouter ce principal de service à des groupes et ajouter des droits à ce principal de service, consultez databricks_service_principal sur le site web Terraform.
Dans le même répertoire, créez un fichier nommé
terraform.tfvars. Ajoutez le contenu suivant à ce fichier, en remplaçant la valeur suivante, puis enregistrez le fichier :- Remplacez la valeur
databricks_hostpar l’URL de l’espace de travail Azure Databricks. - Remplacez la valeur
azure_client_idpar la valeurazure_client_idde l’étape 1. - Remplacez la valeur
databricks_service_principal_display_namepar un nom complet d’espace de travail pour le principal de service Azure Databricks.
databricks_host = "<The Azure Databricks workspace URL, starting with https://>" azure_client_id = "<The Azure client ID of the Azure Active AD service principal>" databricks_service_principal_display_name = "<A workspace display name for the Azure Databricks service principal>"- Remplacez la valeur
Initialisez le répertoire de travail contenant le fichier
main.tfen exécutant la commandeterraform init. Pour plus d’informations, consultez Command: init sur le site web de Terraform.terraform initVérifiez s’il existe des erreurs de syntaxe dans la configuration en exécutant la commande
terraform validate. Pour plus d’informations, consultez Command: validate sur le site web de Terraform.terraform validateAppliquez les modifications nécessaires pour atteindre l’état souhaité de la configuration en exécutant la commande
terraform apply. Pour plus d’informations, consultez Command: apply sur le site web de Terraform.terraform apply
Après avoir créé le principal de service, copiez la valeur de sortie databricks_service_principal_application_id, car vous allez en avoir besoin pour créer un jeton Microsoft Entra ID pour le principal de service.
(Facultatif) Étape 3 : créer un jeton d’accès Microsoft Entra ID pour un principal de service Microsoft Entra ID
Important
Databricks ne recommande pas de créer manuellement des jetons d’ID Microsoft Entra. Ils expirent dans un délai d’une heure et nécessitent un remplacement manuel. Utilisez plutôt des outils ou des kits sdk avec l’authentification unifiée pour gérer automatiquement la gestion des jetons.
Si vous devez créer manuellement un jeton d’ID Microsoft Entra pour un principal de service Microsoft Entra ID, collectez les informations suivantes, puis suivez les instructions de Générer un jeton :
- ID de locataire de votre principal de service Microsoft Entra ID, que vous utiliserez comme ID de locataire / ID d’annuaire (locataire) /
<tenant-id>dans les instructions. Pour obtenir l’ID de locataire, consultez Créer un principal de service. - Valeur
databricks_service_principal_application_idde l’étape 2, que vous utiliserez comme ID client/ ID d’application (client) /<client-id>dans les instructions. - Valeur
azure_client_secretde l’étape 1, que vous utiliserez comme clé secrète client/ valeur /<client-secret>dans les instructions.
Après avoir créé le jeton Microsoft Entra ID, copiez la valeur access_token, car vous devrez la fournir à votre script, application ou système.
(Facultatif) Étape 4 : créer un jeton OAuth Azure Databricks pour un principal de service Microsoft Entra ID
Important
Databricks ne recommande pas de créer manuellement des jetons OAuth Azure Databricks pour les principaux de service gérés Microsoft Entra ID. Ils expirent dans un délai d’une heure et nécessitent un remplacement manuel. Utilisez plutôt des outils ou des kits de développement logiciel qui implémentent l’authentification unifiée pour générer et remplacer automatiquement des jetons à l’aide de l’autorisation d'accès au principal de service dans Azure Databricks avec OAuth.
Si vous devez créer manuellement un jeton OAuth Azure Databricks pour un principal de service Microsoft Entra ID, consultez Générer manuellement des jetons d’accès OAuth M2M.