Compartilhar via


Autenticar com identidades gerenciadas do Azure

A autenticação de identidades gerenciadas do Azure usa identidades gerenciadas para recursos do Azure para autenticar com o Azure Databricks. Chamadas programáticas para operações de conta e espaço de trabalho do Azure Databricks usam essa identidade gerenciada ao trabalhar com recursos do Azure que suportam identidades gerenciadas, como VMs do Azure.

Observação

As identidades gerenciadas para os recursos do Azure são diferentes das entidades de serviço do Microsoft Entra ID, que o Azure Databricks também dá suporte para autenticação. Para saber como usar as entidades de serviço do Microsoft Entra ID para a autenticação do Azure Databricks em vez de identidades gerenciadas para recursos do Azure, confira:

A autenticação de identidades gerenciadas do Azure tem suporte apenas entre recursos configurados corretamente que dão suporte a identidades gerenciadas, como máquinas virtuais do Azure (VMs do Azure), e contas e Workspaces do Azure Databricks.

Para configurar a autenticação de identidades gerenciadas do Azure com o Azure Databricks, você deve definir a seguinte configuração usando um dos métodos com suporte em uma VM do Azure com suporte adequado:

  • O host do Azure Databricks.
    • Para operações de conta, especifique https://accounts.azuredatabricks.net.
    • Para operações do espaço de trabalho, especifique a URL por espaço de trabalho, por exemplo https://adb-1234567890123456.7.azuredatabricks.net.
  • Para operações de conta, a ID da conta do Azure Databricks.
  • A ID do locatário da identidade gerenciada.
  • A ID do cliente da identidade gerenciada.
  • A ID do recurso do Azure.
  • Defina o uso de identidades gerenciadas do Azure como true.

Para realizar a autenticação de identidades gerenciadas do Azure com o Azure Databricks, integre o seguinte em seu código, com base na ferramenta ou SDK participante:

Ambiente

Para usar variáveis de ambiente para um tipo de autenticação específico do Azure Databricks com uma ferramenta ou SDK, consulte Autorizar o acesso aos recursos do Azure Databricks ou à documentação da ferramenta ou do SDK. Consulte também variáveis de ambiente e campos para autenticação unificada e a prioridade do método de autenticação.

Para operações no nível da conta, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, definido como o valor da URL do console da sua conta do Azure Databricks, https://accounts.azuredatabricks.net.
  • DATABRICKS_ACCOUNT_ID
  • ARM_CLIENT_ID
  • ARM_USE_MSI, definido como true.

Para operações no nível do espaço de trabalho, defina as seguintes variáveis de ambiente:

  • DATABRICKS_HOST, defina o valor da sua URL por workspace do Azure Databricks, por exemplo, https://adb-1234567890123456.7.azuredatabricks.net.
  • ARM_CLIENT_ID
  • ARM_USE_MSI, definido como true.

O Databricks recomenda usar DATABRICKS_HOST e atribuir explicitamente a identidade ao workspace. Como alternativa, use DATABRICKS_AZURE_RESOURCE_ID com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

Perfil

Crie ou identifique um perfil de configuração do Azure Databricks com os seguintes campos em seu arquivo do .databrickscfg. Se você criar o perfil, substitua os espaços reservados pelos valores apropriados. Para usar o perfil com uma ferramenta ou SDK, consulte Autorizar o acesso aos recursos do Azure Databricks ou à documentação da ferramenta ou do SDK. Consulte também variáveis de ambiente e campos para autenticação unificada e a prioridade do método de autenticação.

Para operações no nível da conta, defina os seguintes valores em seu arquivo .databrickscfg. Nesse caso, a URL do console da conta do Azure Databricks é 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

Para operações no nível do workspace, defina os seguintes valores em seu arquivo .databrickscfg. Nesse caso, o host é a URL específica do workspace do Azure Databricks, por exemplo 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

O Databricks recomenda usar host e atribuir explicitamente a identidade ao workspace. Como alternativa, use azure_workspace_resource_id com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

CLI

Na CLI do Databricks, siga um destes procedimentos:

  • Defina as variáveis de ambiente conforme especificado na guia Ambiente .
  • Defina os valores em seu .databrickscfg arquivo, conforme especificado na guia Perfil .

As variáveis de ambiente sempre têm precedência sobre os valores do arquivo .databrickscfg.

Consulte também Autenticação de identidades gerenciadas do Azure.

Conectar

Observação

O Databricks Connect depende do SDK do Databricks para Python para autenticação. O SDK do Databricks para Python ainda não implementou a Autenticação de identidades gerenciadas pelo Azure.

VS Code

Observação

A extensão do Databricks para o Visual Studio Code ainda não dá suporte para a autenticação das identidades gerenciadas do Azure.

Terraformação

Para operações no nível da conta, para autenticação padrão:

provider "databricks" {
  alias = "accounts"
}

Para configuração direta (substitua os espaços reservados retrieve pela sua própria implementação para recuperar os valores do console ou de outro repositório de configurações, como HashiCorp Vault. Confira também Provedor do Cofre). Nesse caso, a URL do console da conta do Azure Databricks é 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
}

Para operações no nível da área de trabalho, para autenticação padrão:

provider "databricks" {
  alias = "workspace"
}

Para configuração direta (substitua os espaços reservados retrieve pela sua própria implementação para recuperar os valores do console ou de outro repositório de configurações, como HashiCorp Vault. Confira também Provedor do Cofre). Nesse caso, o host é a URL específica do workspace do Azure Databricks, por exemplo 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
}

O Databricks recomenda usar host e atribuir explicitamente a identidade ao workspace. Como alternativa, use azure_workspace_resource_id com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

Para obter mais informações sobre como autenticar com o provedor Terraform do Databricks, consulte Autenticação.

Python

Observação

O SDK do Databricks para Python ainda não implementou a Autenticação de identidades gerenciadas pelo Azure.

Java

Observação

O SDK do Databricks para Java ainda não implementou a autenticação de identidades gerenciadas do Azure.

Go

Para operações no nível da conta, para autenticação padrão:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
a := databricks.Must(databricks.NewAccountClient())
// ...

Para a configuração direta (substitua os marcadores de posição retrieve pela sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configurações, como o Azure KeyVault). Nesse caso, a URL do console da conta do Azure Databricks é 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,
}))
// ...

Para operações no nível da área de trabalho, para autenticação padrão:

import (
  "github.com/databricks/databricks-sdk-go"
)
// ...
w := databricks.Must(databricks.NewWorkspaceClient())
// ...

Para a configuração direta (substitua os marcadores de posição retrieve pela sua própria implementação para recuperar os valores do console ou de algum outro armazenamento de configurações, como o Azure KeyVault). Nesse caso, o host é a URL específica do workspace do Azure Databricks, por exemplo 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,
}))
// ...

O Databricks recomenda usar Host e atribuir explicitamente a identidade ao workspace. Como alternativa, use AzureResourceID com a ID do recurso do Azure. Essa abordagem requer permissões de Colaborador ou Proprietário no recurso do Azure ou uma função personalizada com permissões específicas do Azure Databricks.

Para obter mais informações sobre como autenticar com as ferramentas e SDKs do Databricks que usam o Go e que implementam a autenticação unificada do cliente do Databricks, consulte Autenticar o SDK do Databricks para o Go com sua conta ou espaço de trabalho do Azure Databricks.