Partilhar via


Usar uma entidade de serviço do Microsoft Entra para autenticar o acesso às pastas Git do Azure Databricks

Saiba como configurar o acesso autenticado às pastas Git do Azure Databricks hospedadas pelo Azure DevOps (Azure Repos) com uma entidade de serviço Microsoft Entra.

Se você tiver pastas Databricks Git em seu projeto Databricks que são apoiadas por repositórios Git do Azure Repos e quiser gerenciá-las em sua automação, poderá usar as informações neste artigo para configurar a autenticação usando uma entidade de serviço do Microsoft Entra e o Azure DevOps. Depois de concluir essa tarefa, você terá uma credencial autenticada do Databricks Git que poderá ser usada em sua automação.

Por que usar o Microsoft Entra e não um PAT?

No passado, os Tokens de Acesso Pessoal (PATs) eram a maneira preferida de autenticação ao chamar uma API que requer acesso e permissões específicos para recursos. Esses tokens de portador representavam um nome de usuário e senha, e exigiam rotação regular para minimizar o risco de segurança que apresentavam. Os tokens de acesso do Microsoft Entra ID resolvem essa preocupação gerenciando automaticamente a rotação desses tokens a cada hora, e o Databricks os recomenda como uma prática recomendada ao trabalhar com recursos do Azure. Ao criar uma entidade de serviço do Microsoft Entra, você pode gerenciar as permissões concedidas no acesso a esses recursos sem usar uma conta de usuário do Microsoft Azure.

Requisitos

Tem de ter:

  • Acesso a um projeto do Azure DevOps com um repositório Git do Azure Repos conectado a uma pasta do Databricks Git.
  • Permissões na sua conta do Azure para criar uma entidade de serviço do MS Entra.
  • A CLI do Azure instalada.
  • A CLI do Databricks instalada.

Etapa 1: Criar uma entidade de serviço do Microsoft Entra

Pode ignorar este passo se já tiver uma entidade de serviço Microsoft Entra configurada.

Para criar uma entidade de serviço do Microsoft Entra, siga as etapas na documentação do Microsoft Azure: Registrar um aplicativo Microsoft Entra e criar uma entidade de serviço. Na seção "Configurar autenticação" deste artigo, ignore as duas primeiras opções e siga as etapas em "Opção 3: Criar um novo segredo do cliente".

Depois de configurá-lo, você terá:

  • Um segredo do cliente. Ele será apresentado como uma longa sequência de caracteres que aparecem aleatoriamente.
    • Um ID da entidade de serviço. Este é o nome exclusivo que você atribuiu à entidade de serviço do MS Entra. Como prática recomendada, o nome também deve indicar como e quando deve ser usado (por exemplo, Databricks_CICD_SP).

(Você pode ignorar a interface do usuário de redirecionamento opcional na caixa de diálogo de configuração do MS Entra, pois ela não será usada nessa configuração.)

Copie-os para baixo em algum lugar, pois você os usará em etapas futuras. Depois de concluir com sucesso o processo nesta documentação, proteja ou exclua essas informações.

Etapa 2: Configurar as permissões do Azure DevOps para a entidade de serviço do MS Entra

Primeiro, você deve conceder a permissão da entidade de serviço do MS Entra para acessar seus recursos do Azure DevOps. Para fazer isso, você deve usar o portal do Azure DevOps.

  1. Faça logon na sua conta do Azure DevOps e navegue até o seu projeto.

  2. Em Configurações do>projeto Permissões, clique em Leitores.

    O conteúdo do painel Membros em Permissões nas Configurações do Projeto do Azure DevOps

  3. Clique na guia Membros , clique em Adicionar e adicione o nome da entidade de serviço do MS Entra que você criou.

  4. No console, volte para o nível de organização da sua organização do Azure DevOps e clique em Configurações da organização na parte inferior do painel esquerdo.

  5. Clique em Usuários>Adicionar Usuário e configure o acesso para sua entidade de serviço da seguinte maneira:

    • Adicione sua entidade de serviço do MS Entra usando o ID que você criou anteriormente.
    • Configure o acesso para a entidade de serviço para o nível mínimo necessário para executar operações no Azure Repos. Normalmente, as permissões de nível básico são suficientes. Se você não tiver certeza de qual nível usar, entre em contato com o administrador da organização do Azure DevOps.
    • Adicione a entidade de serviço ao seu projeto de DevOps do Azure.
    • Atribua a entidade de serviço ao grupo de Colaboradores do Projeto.

    O conteúdo do painel Usuários nas Configurações da Organização do Azure DevOps

Etapa 3: Atribuir permissões à entidade de serviço no Azure Databricks

Você também deve atribuir permissões no Azure Databricks à sua entidade de serviço do Microsoft Entra.

  1. Inicie sessão na consola de administração da conta do Azure Databricks para a sua conta.
  2. Clique em Usuários & grupos.
  3. Clique na guia Entidades de serviço e, em seguida, clique em Adicionar entidade de serviço. A guia Entidades de serviço em Usuários & grupos no console de administração da conta Databricks
  4. Na página Adicionar entidade de serviço, clique em ID do Microsoft Entra gerenciada e adicione a ID do aplicativo Microsoft Entra e o nome da entidade de serviço em "Etapa 1: Criar uma entidade de serviço do Microsoft Entra". Clique em Adicionar quando terminar. A caixa de diálogo Adicionar entidade de serviço no console de administração da conta Databricks
  5. Clique na entidade de serviço Microsoft Entra adicionada para ver a guia Informações principais.
  6. Clique em Gerar segredo no canto inferior esquerdo da página para gerar um segredo OAuth. Esse segredo permite que você autentique chamadas de API do Azure Databricks usando a CLI do Databricks.
  7. Copie a cadeia de caracteres secreta e a ID do cliente e clique em Concluído. Você usará ambos na próxima etapa. Selecionar Concluído. A caixa de diálogo Gerar segredo no console de administração da conta do Databricks
  8. Na barra lateral esquerda, clique em Espaços de trabalho, escolha seu espaço de trabalho e clique na guia Permissões .
  9. Conceda permissões de "Usuário" à entidade de serviço e clique em Adicionar permissões.

Importante

Se a guia Permissões estiver acinzentada, seu espaço de trabalho do Azure Databricks não será atribuído a um metastore do Catálogo Unity. Entre em contato com o administrador do Databricks.

Em seguida, crie sua credencial Git do Azure Databricks.

Etapa 4: Crie um token de acesso do Microsoft Entra ID e armazene-o como uma credencial Git do Azure Databricks.

Nota

Esta etapa requer o uso das CLIs do Azure e do Databricks.

Para autenticar no Azure Databricks, você deve ter um perfil de configuração (.databrickscfg) configurado com o segredo OAuth criado na etapa anterior. Para configurar essa configuração, abra o .databrickscfg arquivo no editor e adicione o seguinte ao arquivo:

[DEFAULT]
host = https://<workspace-url>.azuredatabricks.net/
client_id = <service principal ID>
client_secret = <Databricks OAuth token value>

Onde host é a URL para seu espaço de trabalho Databricks, client_id é a ID da entidade de serviço do Microsoft Entra e client_secret é o segredo do cliente OAuth que você criou em "Etapa 3: atribuir permissões à entidade de serviço no Azure Databricks".

Agora você deve ter os seguintes valores para fornecer às chamadas da CLI nesse processo:

  • O ID do cliente da entidade de serviço das Etapas 1 ou 3 - eles devem ser os mesmos. sp_id( nos seguintes exemplos de CLI.)
  • O nome da entidade de serviço da Etapa 1. (sp_name)
  • A cadeia de caracteres secreta do cliente principal de serviço da Etapa 1. (sp_secret)
  • Seu nome de organização do Azure DevOps. (devops_org)
  • Seu nome de projeto do Azure DevOps. (devops_project)
  • Seu nome de repositório do Azure Repos. (devops_repo)

Além disso, você precisa da ID de locatário do Azure (tenant_id nos exemplos a seguir) para sua assinatura do Azure. Siga estas instruções para obtê-lo do portal do Azure.

Agora, você pode criar uma credencial Git a partir da CLI do Azure.

  1. Abra uma janela de linha de comando com acesso às CLIs do Azure e do Databricks.
  2. Execute o seguinte comando da CLI do Azure para fazer logon como a entidade de serviço do Microsoft Entra: az login --allow-no-subscriptions --service-principal -u $sp_id -p $sp_secret --tenant $tenant_id
  3. Como entidade de serviço do Microsoft Entra, solicite um token de acesso do Microsoft Entra ID e atribua-o a uma variável: ENTRA_ID_TOKEN=$(az account get-access-token --resource "499b84ac-1321-427f-aa17-267ca6975798" --query "accessToken" --output tsv)
  4. Use o token de acesso para criar uma credencial Git para acesso ao Azure Databricks, usando os níveis de permissão que você configurou para ele: databricks git-credentials create azureDevOpsServices --personal-access-token $ENTRA_ID_TOKEN --git-username $sp_name
  5. Por fim, crie uma nova pasta Git usando a entidade de serviço do Microsoft Entra: databricks repos create \https://$sp_name@dev.azure.com/$devops_org/$devops_project/_git/$devops_repo

A pasta Git correspondente para este repositório do Azure DevOps agora está disponível em seu espaço de trabalho do Azure Databricks. Você pode fornecer a credencial do Git para gerenciá-la a partir do seu código usando as APIs REST do Databricks Repos ou a CLI do Databricks.

Agora você aprendeu como gerar um token de acesso do Microsoft Entra ID com escopo para o Azure DevOps e armazená-lo como uma credencial do Databricks Git.

Melhores práticas

O token de acesso do Entra ID é de curta duração, portanto, seu pipeline deve atualizar a credencial do Databricks Git usando git-credentials updateo . Em seguida, você pode acionar uma solicitação pull usando databricks repos update.

Importante

Medidas de segurança adicionais são necessárias em um ambiente de produção. Em um ambiente de produção, você deve armazenar o segredo do cliente principal de serviço e o token OAuth do Databricks em um armazenamento secreto seguro, como o Cofre de Chaves do Azure.

Consulte também