Autenticação de identidades gerenciadas do Azure

A autenticação Identidades gerenciadas do Azure usa identidades gerenciadas para recursos do Azure (anteriormente MSI (Identidades de Serviço Gerenciado)) para autenticar com o Azure Databricks. Chamadas programáticas para operações do espaço de trabalho e conta do Azure Databricks usam essa identidade gerenciada ao trabalhar com recursos do Azure que dão suporte para identidades gerenciadas, como nas VMs do Azure.

Observação

As identidades gerenciadas para recursos do Azure são diferentes das entidades de serviço do Microsoft Entra ID, que o Azure Databricks também dá suporte à autenticação. Para saber como usar as entidades de serviço do Microsoft Entra ID para 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, é necessário definir as seguintes variáveis de ambiente associadas, campos .databrickscfg, campos do Terraform ou campos Config 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 de workspace, especifique a URL por workspace, 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 verdadeiro.

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 do Azure Databricks específico com uma ferramenta ou SDK, consulte Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.

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.

Quanto ás operações no nível do espaço de trabalho, se a identidade de destino ainda não tiver sido adicionada ao espaço de trabalho, especifique DATABRICKS_AZURE_RESOURCE_ID junto com a ID do recurso do Azure no espaço de trabalho do Azure Databricks, em vez de DATABRICKS_HOST junto com a URL do espaço de trabalho. Nesse caso, a identidade de destino deve ter, no mínimo, permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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 Autenticar o acesso a recursos do Azure Databricks ou a documentação da ferramenta ou SDK. Consulte também Variáveis de ambiente e campos para autenticação unificada do cliente e Métodos padrão para autenticação unificada do cliente.

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 por 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

Quanto às operações no nível do espaço de trabalho, se a identidade de destino ainda não tiver sido adicionada ao espaço de trabalho, especifique azure_workspace_resource_id junto com a ID do recurso do Azure no espaço de trabalho do Azure Databricks, em vez de host junto com a URL do espaço de trabalho. Nesse caso, a identidade de destino deve ter, no mínimo, permissões de Colaborador ou Proprietário no recurso do Azure para o workspace do Azure Databricks.

CLI

Na CLI do Databricks, siga um destes procedimentos:

  • Defina as variáveis de ambiente, conforme especificado na seção “Ambiente” deste artigo.
  • Defina os valores no arquivo .databrickscfg, conforme especificado na seção “Perfil” deste artigo.

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.

Código VS

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.

Terraform

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 por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como HashiCorp Vault. Confira também Provedor de Cofres). 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 do workspace, para autenticação padrão:

provider "databricks" {
  alias = "workspace"
}

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

Quanto às operações no nível do espaço de trabalho, se a identidade de destino ainda não tiver sido adicionada ao espaço de trabalho, especifique azure_workspace_resource_id junto com a ID do recurso do Azure no espaço de trabalho do Azure Databricks, em vez de host junto com a URL do espaço de trabalho. Nesse caso, a identidade de destino deve ter, no mínimo, permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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 do 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 espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório 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 do workspace, para autenticação padrão:

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

Para a configuração direta (substitua os espaços reservados retrieve por sua própria implantação para recuperar os valores do console ou de algum outro repositório de configurações, como o Azure KeyVault). Nesse caso, o host é a URL por 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,
}))
// ...

Quanto às operações no nível do espaço de trabalho, se a identidade de destino ainda não tiver sido adicionada ao espaço de trabalho, especifique AzureResourceID junto com a ID do recurso do Azure no espaço de trabalho do Azure Databricks, em vez de Host junto com a URL do espaço de trabalho. Nesse caso, a identidade de destino deve ter, no mínimo, permissões de Colaborador ou Proprietário no recurso do Azure para o workspace 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.