Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Uwaga
Aby aprowizować jednostkę usługi zarządzanej Microsoft Entra ID za pomocą portalu Azure oraz interfejsu użytkownika Azure Databricks, zobacz Jednostki usługi.
Jednostki usługi zarządzanej microsoft Entra ID różnią się od tożsamości zarządzanych dla zasobów platformy Azure, które usługa Azure Databricks obsługuje również na potrzeby uwierzytelniania. Aby dowiedzieć się, jak używać tożsamości zarządzanych dla zasobów platformy Azure zamiast zasad obsługi zarządzanej Microsoft Entra ID na potrzeby uwierzytelniania usługi Azure Databricks, zobacz temat Używanie tożsamości zarządzanych platformy Azure z usługą Azure Databricks.
„Service principal” to tożsamość dla zautomatyzowanych narzędzi i systemów, takich jak skrypty, aplikacje i platformy CI/CD. Usługa Databricks zaleca używanie jednostki usługi i tokenu OAuth lub osobistego tokenu dostępu zamiast osobistego konta użytkownika usługi Azure Databricks i osobistego tokenu dostępu. Korzyści obejmują:
- Udzielanie i ograniczanie dostępu do zasobów niezależnie od użytkownika.
- Umożliwienie użytkownikom lepszej ochrony własnych tokenów dostępu.
- Wyłączanie lub usuwanie jednostki usługi bez wpływu na innych użytkowników.
- Usunięcie użytkownika, gdy opuszcza organizację bez wpływu na jednostkę usługi.
Postępuj zgodnie z tymi instrukcjami, aby utworzyć zarządzaną główną jednostkę usługi Microsoft Entra ID w Azure, użyj dostawcy Terraform dla Databricks, aby połączyć główną jednostkę usługi Microsoft Entra ID z obszarem roboczym Azure Databricks, a następnie opcjonalnie utworzyć token Microsoft Entra ID lub token OAuth Azure Databricks dla głównej jednostki usługi.
Wymagania
- Interfejs wiersza polecenia narzędzia Terraform. Zobacz Pobieranie narzędzia Terraform.
- Interfejs wiersza polecenia platformy Azure zalogowany do docelowej subskrypcji microsoft Entra ID, uruchamiając
az loginpolecenie . Aby zalogować się przy użyciu konta użytkownika lub jednostki usługi, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Krok 1. Tworzenie jednostki usługi
Jeśli masz już dostępną jednostkę usługi zarządzanej identyfikatora entra firmy Microsoft, przejdź do kroku 2.
W terminalu utwórz pusty katalog, a następnie przejdź do niego. (Każdy oddzielny zestaw plików konfiguracji programu Terraform musi znajdować się we własnym katalogu). Na przykład:
mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo.mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demoW tym pustym katalogu utwórz plik o nazwie
main.tf. Dodaj następującą zawartość do tego pliku, a następnie zapisz plik.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 }W tym samym katalogu utwórz plik o nazwie
terraform.tfvars. Dodaj następującą zawartość do tego pliku, zastępując następującą wartość, a następnie zapisz plik:-
azure_service_principal_display_nameZastąp wartość nazwą wyświetlaną jednostki usługi Microsoft Entra ID.
azure_service_principal_display_name = "<A display name for the <entra-service-principal>>"-
Zainicjuj katalog roboczy zawierający
main.tfplik, uruchamiającterraform initpolecenie . Aby uzyskać więcej informacji, zobacz Command: init w witrynie internetowej programu Terraform.terraform initSprawdź, czy w konfiguracji występują błędy składniowe, uruchamiając
terraform validatepolecenie . Aby uzyskać więcej informacji, zobacz Polecenie: validate na stronie internetowej programu Terraform.terraform validateZastosuj zmiany wymagane do osiągnięcia żądanego stanu konfiguracji, uruchamiając
terraform applypolecenie . Aby uzyskać więcej informacji, zobacz Polecenie: apply na stronie internetowej Terraform.terraform apply
Po utworzeniu jednostki usługi skopiuj azure_client_id wartości i azure_client_secret wyjściowe, ponieważ będą one potrzebne później.
Aby uzyskać azure_client_secret wartość, zobacz wartość outputs.client_secret.value w terraform.tfstate pliku, który znajduje się w katalogu roboczym zawierającym main.tf plik.
Krok 2. Dodawanie jednostki usługi do obszaru roboczego usługi Azure Databricks
Uwaga
Poniższa zawartość dodaje jednostkę usługi na poziomie obszaru roboczego usługi Azure Databricks. Jeśli obszar roboczy usługi Azure Databricks jest włączony na potrzeby federacji tożsamości, następująca zawartość automatycznie synchronizuje jednostkę usługi z powiązanym kontem usługi Azure Databricks.
W terminalu utwórz pusty katalog, a następnie przejdź do niego. Każdy oddzielny zestaw plików konfiguracji programu Terraform musi znajdować się we własnym katalogu. Na przykład:
mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo.mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demoW tym pustym katalogu utwórz plik o nazwie
main.tf. Dodaj następującą zawartość do tego pliku, a następnie zapisz plik.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." }Uwaga
Aby dodać tę jednostkę usługi do grup i dodać uprawnienia do tej jednostki usługi, zobacz databricks_service_principal w witrynie internetowej narzędzia Terraform.
W tym samym katalogu utwórz plik o nazwie
terraform.tfvars. Dodaj następującą zawartość do tego pliku, zastępując następujące wartości, a następnie zapisz plik:- Zastąp
databricks_hostwartość adresem URL obszaru roboczego usługi Azure Databricks. -
azure_client_idZastąp wartość wartościąazure_client_idz kroku 1. -
databricks_service_principal_display_nameZastąp wartość nazwą wyświetlaną obszaru roboczego jednostki usługi 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>"- Zastąp
Zainicjuj katalog roboczy zawierający
main.tfplik, uruchamiającterraform initpolecenie . Aby uzyskać więcej informacji, zobacz Command: init w witrynie internetowej programu Terraform.terraform initSprawdź, czy w konfiguracji występują błędy składniowe, uruchamiając
terraform validatepolecenie . Aby uzyskać więcej informacji, zobacz Polecenie: validate na stronie internetowej programu Terraform.terraform validateZastosuj zmiany wymagane do osiągnięcia żądanego stanu konfiguracji, uruchamiając
terraform applypolecenie . Aby uzyskać więcej informacji, zobacz Polecenie: apply na stronie internetowej Terraform.terraform apply
Po utworzeniu jednostki usługi skopiuj databricks_service_principal_application_id wartość wyjściową, ponieważ będzie ona potrzebna do utworzenia tokenu identyfikatora Entra firmy Microsoft dla jednostki usługi.
(Opcjonalnie) Krok 3. Tworzenie tokenu dostępu identyfikatora entra firmy Microsoft dla jednostki usługi Microsoft Entra ID
Ważne
Usługa Databricks nie zaleca ręcznego tworzenia tokenów identyfikatora Entra firmy Microsoft. Wygasają w ciągu jednej godziny i wymagają ręcznego zastąpienia. Zamiast tego użyj narzędzi lub zestawów SDK z ujednoliconym uwierzytelnianiem , aby automatycznie obsługiwać zarządzanie tokenami.
Jeśli musisz ręcznie utworzyć token Microsoft Entra ID dla głównego obiektu usługi Microsoft Entra ID, zbierz następujące informacje, a następnie postępuj zgodnie z instrukcjami w Generowanie tokenu:
- Identyfikator dzierżawy jednostki usługi Microsoft Entra ID, który będzie używany jako identyfikatoridentyfikator katalogu (dzierżawy) w instrukcjach. Aby uzyskać identyfikator dzierżawy, zobacz Tworzenie jednostki usługi.
- Wartość
databricks_service_principal_application_idz kroku 2, która będzie używana jako identyfikatoraplikacja (klient) w instrukcjach. - Wartość
azure_client_secretz kroku 1, która będzie używana jako klucz tajny klienta / wartość /<client-secret>w instrukcjach.
Po utworzeniu tokenu identyfikatora Entra firmy Microsoft skopiuj access_token wartość, ponieważ musisz podać ją skryptowi, aplikacji lub systemowi.
(Opcjonalnie) Krok 4. Tworzenie tokenu OAuth usługi Azure Databricks dla jednostki usługi Microsoft Entra ID
Ważne
Usługa Databricks nie zaleca ręcznego tworzenia tokenów OAuth dla usługi Azure Databricks dla zarządzanych przez Microsoft Entra ID jednostek usługi. Wygasają w ciągu jednej godziny i wymagają ręcznego zastąpienia. Zamiast tego użyj narzędzi lub zestawów SDK, które implementują ujednolicone uwierzytelnianie , aby automatycznie generować i zastępować tokeny przy użyciu autoryzacji dostępu jednostki usługi do usługi Azure Databricks za pomocą protokołu OAuth.
Jeśli musisz ręcznie utworzyć token OAuth usługi Azure Databricks dla jednostki usługi Microsoft Entra ID, zobacz Ręczne generowanie tokenów dostępu OAuth M2M.