Autenticar o acesso a recursos do Azure Databricks
Para acessar um recurso do Azure Databricks com a CLI ou APIs REST do Databricks, os clientes devem se autenticar usando uma conta do Azure Databricks com a autorização necessária para acessar o recurso. Para executar com segurança um comando da CLI do Databricks ou chamar uma solicitação de API do Databricks que exija acesso autorizado a uma conta ou workspace, você deve fornecer um token de acesso com base em credenciais válidas da conta do Azure Databricks. Este artigo aborda as opções de autenticação para fornecer essas credenciais e autorizar o acesso a um workspace ou conta do Azure Databricks.
A tabela a seguir mostra os métodos de autenticação disponíveis para sua conta do Azure Databricks.
Métodos de autenticação do Azure Databricks
Como as ferramentas e os SDKs do Azure Databricks funcionam com um ou mais métodos de autenticação do Azure Databricks com suporte, você pode selecionar o melhor método de autenticação para seu caso de uso. Para obter detalhes, consulte a documentação da ferramenta ou do SDK em Ferramentas do desenvolvedor.
Método | Descrição | Caso de uso |
---|---|---|
OAuth para entidades de serviço (OAuth M2M) | Tokens OAuth de curta duração para entidades de serviço. | Cenários de autenticação não assistida, como fluxos de trabalho totalmente automatizados e CI/CD. |
OAuth para usuários (OAuth U2M) | Tokens OAuth de curta duração para usuários. | Cenários de autenticação assistida, em que você usa seu navegador da Web para autenticar com o Azure Databricks em tempo real, quando solicitado. |
PAT (tokens de acesso pessoais) | Tokens de curta ou longa duração para usuários ou entidades de serviço. | Cenários em que sua ferramenta de destino não oferece suporte ao OAuth. |
Autenticação de identidades gerenciadas do Azure | Tokens do Microsoft Entra ID para Identidades gerenciadas do Azure. | Use somente com recursos do Azure que oferecem suporte a identidades gerenciadas, como máquinas virtuais do Azure. |
Autenticação da entidade de serviço do Microsoft Entra ID | Tokens do Microsoft Entra ID para entidades de serviço do Microsoft Entra ID. | Use somente com recursos do Azure que oferecem suporte a tokens do Microsoft Entra ID e não a identidades gerenciadas, como o Azure DevOps. |
Autenticação da CLI do Azure | Tokens do Microsoft Entra ID para usuários ou entidades de serviço do Microsoft Entra ID. | Use para autenticar o acesso a recursos do Azure e no Azure Databricks usando a CLI do Azure. |
Autenticação de usuário do Microsoft Entra ID | Tokens do Microsoft Entra ID para usuários. | Use somente com recursos do Azure que oferecem suporte apenas a tokens do Microsoft Entra ID. O Databricks não recomenda que você crie manualmente tokens do Microsoft Entra ID para usuários do Azure Databricks. |
Que abordagem de autenticação devo escolher?
Você tem duas opções para autenticar um comando da CLI do Databricks ou uma chamada à API para acessar seus recursos do Azure Databricks:
- Use uma conta de usuário do Azure Databricks (chamada de autenticação "usuário para computador" ou U2M). Escolha essa opção somente quando estiver executando um comando da CLI do Azure Databricks no ambiente do cliente local ou chamando uma solicitação de API do Azure Databricks do código que você possui e executa de forma exclusiva.
- Use a entidade de serviço do Azure Databricks (chamada autenticação "computador para computador" ou M2M). Escolha essa opção se outras pessoas executarem seu código (especialmente no caso de um aplicativo) ou se você estiver criando uma automação que chamará comandos da CLI do Azure Databricks ou solicitações de API.
- Se você estiver usando o Azure Databricks, também poderá usar uma entidade de serviço do MS Entra para autenticar o acesso à sua conta ou workspace do Azure Databricks. No entanto, o Databricks recomenda que você use uma entidade de serviço do Databricks com nossa autenticação OAuth fornecida pela autenticação da entidade de serviço do MS Entra. Isso ocorre porque a autenticação do Databricks usa tokens de acesso OAuth que são mais robustos ao autenticar somente com o Azure Databricks.
Para obter mais detalhes sobre como usar uma entidade de serviço do MS Entra para acessar recursos do Databricks, consulte Autenticação da entidade de serviço do MS Entra.
Você também deve ter um token de acesso vinculado à conta que usará para chamar a API do Databricks. Esse token pode ser um token de acesso OAuth 2.0 ou um token de acesso pessoal (PAT). No entanto, o Azure Databricks recomenda usar OAuth em vez de PATs para autorização, pois os tokens OAuth são atualizados automaticamente por padrão e não exigem o gerenciamento direto do token de acesso, melhorando sua segurança contra sequestro de token e acesso indesejado. Como o OAuth cria e gerencia o token de acesso para você, você fornece uma URL de ponto de extremidade do token OAuth, uma ID do cliente e um segredo gerado no workspace do Azure Databricks em vez de fornecer diretamente uma string de token. Os PATs expõem o risco de tokens de longa duração fornecerem oportunidades de saída se não forem auditados regularmente e rotacionados ou revogados, ou se as strings e senhas de token não forem gerenciadas com segurança para seu ambiente de desenvolvimento.
Como faço para usar o OAuth para autenticar com o Azure Databricks?
O Azure Databricks fornece autenticação de cliente unificada para ajudar você com a autenticação usando um conjunto padrão de variáveis de ambiente que você pode definir como valores de credencial específicos. Isso ajuda você a trabalhar com mais facilidade e segurança, pois essas variáveis de ambiente são específicas para o ambiente que executará os comandos da CLI do Azure Databricks ou chamará APIs do Azure Databricks.
- Para autenticação de conta de usuário (usuário para computador), o OAuth do Azure Databricks é gerenciado para você com a autenticação unificada do cliente do Databricks desde que as ferramentas e os SDKs implementem seu padrão. Caso contrário, você poderá gerar manualmente um verificador de código OAuth e um par de desafios para usar diretamente nos comandos da CLI do Azure Databricks e nas solicitações de API. Consulte a Etapa 1: Gerar um verificador de código e um par de desafios de código OAuth.
- Para autenticação de entidade de serviço (computador para computador), o OAuth do Azure Databricks exige que o chamador forneça credenciais de cliente junto com uma URL de ponto de extremidade de token em que a solicitação pode ser autorizada. (Isso será gerenciado para você se você usar ferramentas e SDKs do Azure Databricks que oferecem suporte à autenticação unificada de cliente do Databricks.) As credenciais incluem um ID de cliente exclusivo e um segredo do cliente. O cliente, que é a entidade de serviço do Databricks que executará seu código, deve ser atribuído aos workspaces do Databricks. Depois de atribuir a entidade de serviço aos workspaces que ela acessará, você receberá uma ID do cliente e um segredo do cliente que você definirá com variáveis de ambiente específicas.
Essas variáveis de ambiente são:
DATABRICKS_HOST
: essa variável de ambiente é definida como a URL do console da conta do Azure Databricks (http://accounts.cloud.databricks.com
) ou a URL do workspace do Azure Databricks (https://{workspace-id}.cloud.databricks.com
). Escolha um tipo de URL de host com base no tipo de operações que você executará em seu código. Especificamente, se você estiver usando comandos da CLI ou solicitações de API REST no nível da conta do Azure Databricks, defina essa variável como a URL da sua conta do Azure Databricks. Se você estiver usando comandos da CLI ou solicitações de API REST no nível de espaço de trabalho do Azure Databrics, use a URL do workspace do Azure Databricks.DATABRICKS_ACCOUNT_ID
: usado para operações de conta no Azure Databricks. Essa é sua ID da conta do Azure Databricks. Para obtê-la, consulte Localizar a ID da sua conta.DATABRICKS_CLIENT_ID
: (somente OAuth M2M) a ID do cliente que você recebeu ao criar sua entidade de serviço.DATABRICKS_CLIENT_SECRET
: (somente OAuth M2M) o segredo do cliente que você gerou ao criar sua entidade de serviço.
Você pode defini-los diretamente ou por meio do uso de um perfil de configuração do Databricks (.databrickscfg
) em seu computador cliente.
Para usar um token de acesso OAuth, o espaço de trabalho do Azure Databricks ou o administrador da conta deve ter concedido à sua conta de usuário ou entidade de serviço CAN USE
privilégio para os recursos da conta e do workspace que seu código acessará.
Para obter mais detalhes sobre como configurar a autorização OAuth para seu cliente e revisar as opções de autorização específicas do provedor de nuvem, consulte Autenticação unificada do cliente.
Autenticação para serviços e ferramentas de terceiros
Se você estiver escrevendo código que acessa serviços, ferramentas ou SDKs de terceiros, deverá usar os mecanismos de autenticação e autorização fornecidos pelo terceiro. No entanto, se você precisar conceder a uma ferramenta, SDK ou serviço de terceiros acesso à sua conta ou recursos de workspace do Azure Databricks, o Databricks fornecerá o seguinte suporte:
Provedor Terraform do Databricks: essa ferramenta pode acessar as APIs do Azure Databricks do Terraform em seu nome usando sua conta de usuário do Azure Databricks. Para obter mais detalhes, consulte Provisionar uma entidade de serviço usando o Terraform.
Provedores Git, como GitHub, GitLab e Bitbucket, podem acessar APIs do Azure Databricks usando uma entidade de serviço do Databricks. Para obter mais detalhes, consulte Entidades de serviço para CI/CD.
O Jenkins pode acessar as APIs do Azure Databricks usando uma entidade de serviço do Databricks. Para obter mais detalhes, consulte CI/CD com Jenkins no Azure Databricks.
O Azure DevOps pode acessar as APIs do Azure Databricks usando uma entidade de serviço e uma ID do MS Entra. Para obter mais detalhes, consulte Autenticar com o Azure DevOps no Databricks.
Perfis de configuração do Azure Databricks
Um perfil de configuração do Azure Databricks contém configurações e outras informações que o Azure Databricks precisa autenticar. Os perfis de configuração do Azure Databricks são armazenados em arquivos de cliente locais para uso por suas ferramentas, SDKs, scripts e aplicativos. O arquivo de perfil de configuração padrão é denominado .databrickscfg
. Para obter mais informações, consulte Perfis de configuração do Azure Databricks.