Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Nota
Para provisionar uma entidade de serviço gerida pelo Microsoft Entra ID usando o portal do Azure e a interface do usuário do Azure Databricks, veja Entidades de serviço.
As entidades de serviço gerenciado do Microsoft Entra ID diferem das identidades gerenciadas para recursos do Azure, que o Azure Databricks também oferece suporte para autenticação. Para saber como usar identidades gerenciadas para recursos do Azure em vez de entidades de serviço gerenciado do Microsoft Entra ID para autenticação do Azure Databricks, consulte Usar identidades gerenciadas do Azure com o Azure Databricks.
Uma service principal é uma identidade para ferramentas e sistemas automatizados, como scripts, aplicações e plataformas de CI/CD. O Databricks recomenda usar uma entidade de serviço e seu token OAuth ou token de acesso pessoal em vez de sua conta de usuário e token de acesso pessoal do Azure Databricks. Os benefícios incluem:
- Conceder e restringir o acesso a recursos independentemente de um utilizador.
- Permitindo que os usuários protejam melhor seus próprios tokens de acesso.
- Desativar ou excluir uma entidade de serviço sem afetar outros usuários.
- Remover um usuário quando ele sai da organização sem afetar nenhuma entidade de serviço.
Siga estas instruções para usar o Terraform para criar uma entidade de serviço gerenciado do Microsoft Entra ID no Azure, use o provedor Databricks Terraform para vincular a entidade de serviço do Microsoft Entra ID ao seu espaço de trabalho do Azure Databricks e, opcionalmente, crie um token Microsoft Entra ID ou token OAuth do Azure Databricks para a entidade de serviço.
Requisitos
- A CLI Terraform. Consulte Download Terraform.
- A CLI do Azure, conectada à assinatura de ID do Microsoft Entra de destino executando o
az logincomando. Para iniciar sessão com uma conta de utilizador ou entidade de serviço, consulte Iniciar sessão com a CLI do Azure.
Etapa 1: Criar a entidade de serviço
Se você já tiver uma entidade de serviço gerenciada do Microsoft Entra ID disponível, pule para a Etapa 2.
No seu terminal, crie um diretório vazio e, em seguida, mude para ele. (Cada conjunto separado de arquivos de configuração do Terraform deve estar em seu próprio diretório.) Por exemplo:
mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demo.mkdir terraform_azure_service_principal_demo && cd terraform_azure_service_principal_demoNeste diretório vazio, crie um arquivo chamado
main.tf. Adicione o seguinte conteúdo a este ficheiro e, em seguida, guarde o ficheiro.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 }No mesmo diretório, crie um arquivo chamado
terraform.tfvars. Adicione o seguinte conteúdo a este ficheiro, substituindo o seguinte valor e, em seguida, guarde o ficheiro:- Substitua o
azure_service_principal_display_namevalor por um nome de exibição para a entidade de serviço Microsoft Entra ID.
azure_service_principal_display_name = "<A display name for the <entra-service-principal>>"- Substitua o
Inicialize o diretório de trabalho que contém o
main.tfarquivo executando oterraform initcomando. Para obter mais informações, consulte Command: init no site da Terraform.terraform initVerifique se há erros de sintaxe na configuração executando o
terraform validatecomando. Para obter mais informações, consulte Comando: validar no site do Terraform.terraform validateAplique as alterações necessárias para alcançar o estado desejado da configuração executando o
terraform applycomando. Para obter mais informações, consulte Comando: aplicar no site da Terraform.terraform apply
Depois de criar a entidade de serviço, copie os valores de saída azure_client_id e azure_client_secret, pois precisará deles mais tarde.
Para obter o valor azure_client_secret, consulte o valor de outputs.client_secret.value no arquivo terraform.tfstate, que está no diretório de trabalho que contém o arquivo main.tf.
Etapa 2: Adicionar a entidade de serviço ao espaço de trabalho do Azure Databricks
Nota
O conteúdo a seguir adiciona uma entidade de serviço no nível do espaço de trabalho do Azure Databricks. Se o seu espaço de trabalho do Azure Databricks estiver habilitado para federação de identidades, o conteúdo a seguir também sincronizará automaticamente a entidade de serviço com a conta relacionada do Azure Databricks.
No seu terminal, crie um diretório vazio e, em seguida, mude para ele. Cada conjunto separado de arquivos de configuração do Terraform deve estar em seu próprio diretório. Por exemplo:
mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demo.mkdir terraform_databricks_service_principal_demo && cd terraform_databricks_service_principal_demoNeste diretório vazio, crie um arquivo chamado
main.tf. Adicione o seguinte conteúdo a este ficheiro e, em seguida, guarde o ficheiro.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." }Nota
Para adicionar este principal de serviço a grupos e adicionar direitos a este principal de serviço, consulte databricks_service_principal no site da Terraform.
No mesmo diretório, crie um arquivo chamado
terraform.tfvars. Adicione o seguinte conteúdo a este ficheiro, substituindo os seguintes valores e, em seguida, guarde o ficheiro:- Substitua o
databricks_hostvalor pela URL do espaço de trabalho do Azure Databricks. - Substitua o
azure_client_idvalor peloazure_client_idvalor da Etapa 1. - Substitua o
databricks_service_principal_display_namevalor por um nome de exibição de espaço de trabalho para a entidade de serviço do 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>"- Substitua o
Inicialize o diretório de trabalho que contém o
main.tfarquivo executando oterraform initcomando. Para obter mais informações, consulte Command: init no site da Terraform.terraform initVerifique se há erros de sintaxe na configuração executando o
terraform validatecomando. Para obter mais informações, consulte Comando: validar no site do Terraform.terraform validateAplique as alterações necessárias para alcançar o estado desejado da configuração executando o
terraform applycomando. Para obter mais informações, consulte Comando: aplicar no site da Terraform.terraform apply
Depois de criar a entidade de serviço, copie o valor de databricks_service_principal_application_id saída, pois você precisará dele para criar um token de ID do Microsoft Entra para a entidade de serviço.
(Opcional) Etapa 3: Criar um token de acesso do Microsoft Entra ID para uma entidade de serviço do Microsoft Entra ID
Importante
O Databricks não recomenda a criação manual de tokens de ID do Microsoft Entra. Eles expiram dentro de uma hora e exigem substituição manual. Em vez disso, use ferramentas ou SDKs com autenticação unificada para lidar com o gerenciamento de tokens automaticamente.
Se precisar criar manualmente um token de ID do Microsoft Entra para uma entidade de serviço do Microsoft Entra ID, recolha as seguintes informações e siga as instruções em Gerar um token:
- A ID do locatário para a entidade de serviço do Microsoft Entra ID, que você usará como ID do Locatário / ID /
<tenant-id>nas instruções. Para obter a ID do inquilino, consulte Criar uma entidade de serviço. - O
databricks_service_principal_application_idvalor da Etapa 2, que você usará como ID do Cliente / ID /<client-id>nas instruções. - O
azure_client_secretvalor da Etapa 1, que você usará como o segredo do cliente / Valor /<client-secret>nas instruções.
Depois de criar o token de ID do Microsoft Entra, copie o access_token valor, pois você precisará fornecê-lo ao seu script, aplicativo ou sistema.
(Opcional) Etapa 4: Criar um token OAuth do Azure Databricks para uma entidade de serviço Microsoft Entra ID
Importante
O Databricks não recomenda a criação manual de tokens OAuth do Azure Databricks para entidades de serviço gerenciado do Microsoft Entra ID. Eles expiram dentro de uma hora e exigem substituição manual. Em vez disso, use ferramentas ou SDKs que implementam a autenticação unificada para gerar e substituir tokens automaticamente usando Autorizar acesso da entidade de serviço ao Azure Databricks com OAuth.
Se você precisar criar manualmente um token OAuth do Azure Databricks para uma entidade de serviço Microsoft Entra ID, consulte Gerar manualmente tokens de acesso OAuth M2M.