Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Informationen zum Bereitstellen eines verwalteten Dienstprinzipals in Microsoft Entra ID mithilfe des Azure-Portals und der Benutzeroberfläche von Azure Databricks finden Sie stattdessen unter Dienstprinzipale.
Verwaltete Dienstprinzipale in Microsoft Entra ID unterscheiden sich von verwalteten Identitäten für Azure-Ressourcen, die von Azure Databricks für die Authentifizierung ebenfalls unterstützt werden. Informationen zum Verwenden von verwalteten Identitäten für Azure-Ressourcen anstelle von verwalteten Microsoft Entra ID-Dienstprinzipale für die Azure Databricks-Authentifizierung finden Sie unter Verwenden von azure verwalteten Identitäten mit Azure Databricks.
Ein Dienstprinzipal ist eine Identität für automatisierte Tools und Systeme wie Skripts, Apps und CI/CD-Plattformen. Databricks empfiehlt, einen Dienstprinzipal und seinen OAuth-Token oder persönlichen Zugriffstoken anstelle Ihres Azure Databricks-Benutzerkontos und persönlichen Zugriffstokens zu verwenden. Dies hat unter anderem folgende Vorteile:
- Gewähren und Einschränken des Zugriffs auf Ressourcen unabhängig von Benutzer*innen.
- Benutzer*innen ermöglichen, ihre eigenen Zugriffstoken besser zu schützen.
- Deaktivieren oder Löschen eines Dienstprinzipals, ohne dass sich dies auf andere Benutzer*innen auswirkt.
- Entfernen von Benutzer*innen, wenn sie die Organisation verlassen, ohne dadurch Dienstprinzipale zu beeinträchtigen.
Befolgen Sie diese Anweisungen, um Terraform zum Erstellen eines verwalteten Microsoft Entra ID-Dienstprinzipals in Azure zu verwenden: Verwenden Sie den Terraform-Anbieter von Databricks, um den Microsoft Entra ID-Dienstprinzipal mit Ihrem Azure Databricks-Arbeitsbereich zu verknüpfen, und erstellen Sie für den Dienstprinzipal anschließend optional ein Token in Microsoft Entra ID oder ein OAuth-Token in Azure Databricks.
Anforderungen
- Die Terraform-Befehlszeilenschnittstelle. Weitere Informationen finden Sie unter Herunterladen von Terraform.
- Die Azure CLI, die durch das Ausführen des
az login-Befehls beim Microsoft Entra ID-Zielabonnement angemeldet ist. Informationen zum Anmelden mit einem Benutzerkonto oder Dienstprinzipal finden Sie unter Anmelden mit der Azure CLI.
Schritt 1: Erstellen des Dienstprinzipals
Wenn Sie bereits über einen verwalteten Dienstprinzipal in Microsoft Entra ID verfügen, fahren Sie mit Schritt 2 fort.
Erstellen Sie in Ihrem Terminal ein leeres Verzeichnis, und wechseln Sie dann in dieses Verzeichnis. (Jeder separate Satz von Terraform-Konfigurationsdateien muss sich in einem eigenen Verzeichnis befinden.) Beispiel:
mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo.mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demoErstellen Sie in diesem leeren Verzeichnis eine Datei namens
main.tf. Fügen Sie dieser Datei den folgenden Inhalt hinzu, und speichern Sie dann die Datei.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 }Erstellen Sie im selben Verzeichnis eine Datei namens
terraform.tfvars. Fügen Sie den folgenden Inhalt zu dieser Datei hinzu, indem Sie den folgenden Wert ersetzen, und speichern Sie die Datei dann:- Ersetzen Sie den
azure_service_principal_display_name-Wert durch einen Anzeigenamen für den Microsoft Entra ID-Dienstprinzipal.
azure_service_principal_display_name = "<A display name for the <entra-service-principal>>"- Ersetzen Sie den
Initialisieren Sie das Arbeitsverzeichnis, das die Datei
main.tfenthält, indem Sie den Befehlterraform initausführen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: init.terraform initÜberprüfen Sie, ob Syntaxfehler in der Konfiguration vorhanden sind, indem Sie den Befehl
terraform validateausführen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: validate.terraform validateWenden Sie durch Ausführen des Befehls
terraform applydie erforderlichen Änderungen an, um den gewünschten Zustand der Konfiguration zu erreichen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: apply.terraform apply
Nachdem Sie den Dienstprinzipal erstellt haben, kopieren Sie die Ausgabewerte azure_client_id und azure_client_secret, da Sie diese später noch benötigen.
Um den azure_client_secret-Wert abzurufen, sehen Sie sich den Wert von outputs.client_secret.value in der Datei terraform.tfstate an, die sich in dem Arbeitsverzeichnis befindet, das die main.tf-Datei enthält.
Schritt 2: Hinzufügen des Dienstprinzipals zum Azure Databricks-Arbeitsbereich
Hinweis
Im Folgenden wird beschrieben, wie ein Dienstprinzipal auf Azure Databricks-Arbeitsbereichsebene hinzugefügt wird. Wenn Ihr Azure Databricks-Arbeitsbereich für den Identitätsverbund aktiviert ist, synchronisiert der folgende Inhalt auch automatisch den Dienstprinzipal mit dem zugehörigen Azure Databricks-Konto.
Erstellen Sie in Ihrem Terminal ein leeres Verzeichnis, und wechseln Sie dann in dieses Verzeichnis. Jeder separate Gruppe von Terraform-Konfigurationsdateien muss sich in einem eigenen Verzeichnis befinden. Beispiel:
mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo.mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demoErstellen Sie in diesem leeren Verzeichnis eine Datei namens
main.tf. Fügen Sie dieser Datei den folgenden Inhalt hinzu, und speichern Sie dann die Datei.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." }Hinweis
Informationen zum Hinzufügen dieses Dienstprinzipals zu Gruppen und zum Hinzufügen von Berechtigungen für dieses Dienstprinzipal finden Sie unter databricks_service_principal auf der Terraform-Website.
Erstellen Sie im selben Verzeichnis eine Datei namens
terraform.tfvars. Fügen Sie den folgenden Inhalt zu dieser Datei hinzu, indem Sie die folgenden Werte ersetzen, und speichern Sie die Datei dann:- Ersetzen Sie den
databricks_host-Wert durch die URL des Azure Databricks-Arbeitsbereichs. - Ersetzen Sie den
azure_client_id-Wert durch denazure_client_id-Wert aus Schritt 1. - Ersetzen Sie den
databricks_service_principal_display_name-Wert durch einen Arbeitsbereichsanzeigenamen für den Azure Databricks-Dienstprinzipal.
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>"- Ersetzen Sie den
Initialisieren Sie das Arbeitsverzeichnis, das die Datei
main.tfenthält, indem Sie den Befehlterraform initausführen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: init.terraform initÜberprüfen Sie, ob Syntaxfehler in der Konfiguration vorhanden sind, indem Sie den Befehl
terraform validateausführen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: validate.terraform validateWenden Sie durch Ausführen des Befehls
terraform applydie erforderlichen Änderungen an, um den gewünschten Zustand der Konfiguration zu erreichen. Weitere Informationen finden Sie auf der Terraform-Website unter Befehl: apply.terraform apply
Nachdem Sie den Dienstprinzipal erstellt haben, kopieren Sie den databricks_service_principal_application_id-Ausgabewert, da Sie ihn benötigen, um ein Microsoft Entra ID-Token für den Dienstprinzipal zu erstellen.
(Optional) Schritt 3: Erstellen eines Microsoft Entra ID-Zugriffstokens für einen Microsoft Entra ID-Dienstprinzipal
Von Bedeutung
Databricks empfiehlt das manuelle Erstellen von Microsoft Entra ID-Token nicht. Sie laufen innerhalb einer Stunde ab und erfordern einen manuellen Ersatz. Verwenden Sie stattdessen Tools oder SDKs mit einheitlicher Authentifizierung , um die Tokenverwaltung automatisch zu verarbeiten.
Wenn Sie manuell ein Microsoft Entra ID-Token für einen Microsoft Entra ID-Dienstprinzipal erstellen müssen, sammeln Sie die folgenden Informationen, und befolgen Sie dann die Anweisungen unter Generieren eines Tokens:
- Die Mandanten-ID für Ihren Microsoft Entra ID-Dienstprinzipal, die Sie in den Anweisungen als Mandanten-ID/Verzeichnis-ID (Mandant) /
<tenant-id>verwenden werden. Um die Mandanten-ID zu erhalten, siehe Create a service principal. - Der
databricks_service_principal_application_id-Wert aus Schritt 2, den Sie in den Anweisungen als Client-ID/Anwendungs-ID (Client) /<client-id>verwenden. - Der
azure_client_secret-Wert aus Schritt 1, den Sie in den Anweisungen als geheimen Clientschlüssel/Wert /<client-secret>verwenden werden.
Kopieren Sie nach dem Erstellen des Microsoft Entra ID-Tokens den access_token-Wert, da Sie ihn Ihrem Skript, Ihrer App oder Ihrem System bereitstellen müssen.
(Optional) Schritt 4: Erstellen eines Azure Databricks-OAuth-Tokens für einen Microsoft Entra ID-Dienstprinzipal
Von Bedeutung
Databricks empfiehlt nicht, manuell Azure Databricks OAuth-Token für verwaltete Dienstprinzipale der Microsoft Entra ID zu erstellen. Sie laufen innerhalb einer Stunde ab und erfordern einen manuellen Ersatz. Verwenden Sie stattdessen Tools oder SDKs, die einheitliche Authentifizierung implementieren, um Token automatisch zu generieren und zu ersetzen, indem Sie den Dienstprinzipalzugriff auf Azure Databricks mit OAuth autorisieren.
Wenn Sie ein Azure Databricks OAuth-Token für einen Microsoft Entra ID-Dienstprinzipal manuell erstellen müssen, lesen Sie manuell das Generieren von OAuth M2M-Zugriffstoken.