Autenticar o acesso ao site Databricks recurso

Para acessar um recurso Databricks com o Databricks CLI ou REST APIs, os clientes devem se autenticar usando um Databricks account com a autorização necessária para acessar o recurso. Para executar com segurança um Databricks CLI comando ou chamar uma solicitação Databricks API que exija acesso autorizado a um account ou workspace, o senhor deve fornecer um access token com base em credenciais Databricks account válidas. Este artigo aborda as opções de autenticação para fornecer essas credenciais e autorizar o acesso a um site Databricks workspace ou account.

A tabela a seguir mostra os métodos de autenticação disponíveis para o seu Databricks account.

Métodos de autenticação do Databricks

Como as ferramentas e os SDKs da Databricks funcionam com um ou mais métodos de autenticação da Databricks compatíveis, o senhor pode selecionar o melhor método de autenticação para o 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 entidade de serviço (OAuth M2M)

De curta duração OAuth tokens para entidade de serviço.

Cenários de autenticação autônoma, como os totalmente automatizados e CI/CD fluxo de trabalho.

OAuth para usuários (OAuth U2M)

De curta duração OAuth tokens para os usuários.

Cenário de autenticação assistida, em que o usuário usa o navegador da Web para se autenticar na Databricks em tempo real, quando solicitado.

Personal access tokens (PAT)

De curta ou longa duração tokens para usuários ou entidade de serviço.

Cenários em que a ferramenta de destino não é compatível com o OAuth.

Observação

A autenticação básica usando um nome de usuário e senha do Databricks chegou ao fim da vida útil em 10 de julho de 2024. Consulte Fim da vida útil das senhas gerenciadas pelo Databricks.

Qual abordagem de autenticação devo escolher?

O senhor tem duas opções para autenticar um Databricks CLI comando ou API chamada para acessar seu Databricks recurso:

  • Use um usuário Databricks account (chamado de autenticação "usuário para máquina", ou U2M). Escolha essa opção somente quando estiver executando um comando Databricks CLI a partir do seu ambiente de cliente local ou chamando uma solicitação Databricks API a partir de um código de sua propriedade e execução exclusiva.

  • Use uma entidade de serviço da Databricks (chamada de autenticação "máquina a máquina" ou M2M). Escolha essa opção se outras pessoas estiverem executando seu código (especialmente no caso de um aplicativo) ou se estiver criando uma automação que chamará as solicitações Databricks CLI comando ou API.

O senhor também deve ter um access token vinculado ao account que usará para chamar o Databricks API. Esses tokens podem ser um OAuth 2.0 access token ou um access token (PAT) pessoal. No entanto, o site Databricks recomenda enfaticamente que o senhor use OAuth em vez de PATs para autorização, pois OAuth tokens são atualizados automaticamente por default e não exigem o gerenciamento direto do access token, o que aumenta a segurança contra sequestro de tokens e acesso indesejado. Como o OAuth cria e gerencia o access token para o usuário, o OAuth usuário fornece um URL de tokens endpoint , um ID de cliente e um segredo que gera a partir do Databricks workspace em vez de fornecer diretamente uma cadeia de tokens. Os PATs expõem o risco de que tokens de longa duração ofereçam oportunidades de saída se não forem auditados regularmente e rotacionados ou revogados, ou se os tokens strings e as senhas não forem gerenciados com segurança para seu ambiente de desenvolvimento.

Como posso usar o OAuth para me autenticar na Databricks?

Databricks fornece autenticação de cliente unificada para ajudá-lo com a autenticação usando um conjunto default de variáveis de ambiente que podem ser definidas com valores de credenciais específicos. Isso ajuda o senhor a trabalhar com mais facilidade e segurança, pois essas variáveis de ambiente são específicas do ambiente que executará o comando Databricks CLI ou chamará Databricks APIs.

  • Para a autenticação do usuário account (usuário para máquina), o Databricks OAuth é tratado para o senhor com a autenticação unificada do clienteDatabricks , desde que as ferramentas e os SDKs implementem esse padrão. Caso contrário, o senhor pode gerar manualmente um verificador de código OAuth e um par de desafios para usar diretamente em suas solicitações Databricks CLI comando e API. Veja o passo 1: Gerar um verificador de código OAuth e um par de desafio de código.

  • Para autenticação de entidade de serviço (máquina a máquina), Databricks OAuth exige que o chamador forneça credenciais de cliente juntamente com um URL de tokens endpoint em que a solicitação possa ser autorizada. (Isso é feito para o senhor se usar as ferramentas e SDKs da Databricks que suportam a autenticação unificada de cliente da Databricks). As credenciais incluem um ID de cliente exclusivo e um segredo de cliente. O cliente, que é a Databricks entidade de serviço que executará seu código, deve ser atribuído ao espaço de trabalho Databricks . Depois de atribuir a entidade de serviço ao espaço de trabalho que ela acessará, o senhor receberá um ID de cliente e um segredo de cliente que serão definidos com uma variável de ambiente específica.

Essas variáveis de ambiente são:

  • DATABRICKS_HOST: Essa variável de ambiente é definida como o URL do seu console Databricks account (http://accounts.cloud.databricks.com) ou do seu URL Databricks workspace (https://{workspace-id}.cloud.databricks.com). Escolha um tipo de URL de host com base no tipo de operações que o senhor realizará em seu código. Especificamente, se estiver usando Databricks account CLI as REST API solicitações -level comando ou, defina essa variável como o Databricks account URL . Se estiver usando Databricks workspace-level CLI comando ou REST API requests, use o Databricks workspace URL .

  • DATABRICKS_ACCOUNT_ID: Usado para Databricks account operações. Este é o seu Databricks account ID. Para obtê-lo, consulte Localizar o ID de sua conta.

  • DATABRICKS_CLIENT_IDID do cliente: (somente M2M OAuth) A ID do cliente que foi atribuída ao criar a entidade de serviço.

  • DATABRICKS_CLIENT_SECRET(somente M2M OAuth) O segredo do cliente que o senhor gerou ao criar a entidade de serviço.

O senhor pode defini-los diretamente ou por meio do uso de um perfil de configuração do Databricks (.databrickscfg) no computador cliente.

Para usar um OAuth access token, o administrador do Databricks workspace ou account deve ter concedido ao usuário account ou à entidade de serviço o privilégio CAN USE para os recursos account e workspace que seu código acessará.

Para obter mais detalhes sobre a configuração da autorização OAuth para seu cliente e para revisar as opções de autorização específicas do provedor cloud, consulte Autenticação unificada do cliente.

Autenticação para serviços e ferramentas de terceiros

Se o senhor estiver escrevendo um código que acesse serviços, ferramentas ou SDKs de terceiros, deverá usar os mecanismos de autenticação e autorização fornecidos por esses terceiros. No entanto, se o senhor precisar conceder a uma ferramenta, SDK ou serviço de terceiros acesso ao seu recurso Databricks account ou workspace, o Databricks oferece o seguinte suporte:

  • Databricks Terraform Provedor: Essa ferramenta pode acessar Databricks APIs de Terraform em seu nome, usando seu usuário Databricks account. Para obter mais detalhes, consulte provisionamento a entidade de serviço usando Terraform.

  • Os provedores de Git, como GitHub, GitLab e Bitbucket, podem acessar as APIs da Databricks usando uma entidade de serviço da Databricks. Para obter mais detalhes, consulte entidade de serviço para CI/CD.

  • O Jenkins pode acessar as APIs da Databricks usando uma entidade de serviço da Databricks. Para obter mais detalhes, consulte CI/CD com Jenkins na Databricks.

Perfis de configuração do Databricks

Um perfil de configuração Databricks contém definições e outras informações que o Databricks precisa para se autenticar. Os perfis de configuração do Databricks são armazenados em arquivos de clientes locais para uso de suas ferramentas, SDKs, scripts e aplicativos. O arquivo de perfil de configuração padrão tem o nome .databrickscfg. Para obter mais informações, consulte Databricks configuration profiles.