Entidades de serviço de CI/CD
Este artigo descreve como usar entidades de serviço para CI/CD com o Azure Databricks. Uma entidade de serviço é uma identidade criada para uso com ferramentas e aplicativos automatizados, incluindo:
- Plataformas de CI/CD como GitHub Actions, Azure Pipelines e CI/CD do GITLab
- Airflow em pipelines de dados
- Jenkins
Como melhor prática de segurança, o Databricks recomenda o uso de uma entidade de serviço e seu respectivo token em vez do usuário ou do token de acesso pessoal do Databricks para o usuário do workspace a fim de permitir o acesso das plataformas de CI/CD aos recursos do Azure Databricks. Alguns benefícios dessa abordagem incluem:
- Você pode permitir e restringir o acesso aos recursos do Azure Databricks para uma entidade de serviço independentemente de um usuário. Por exemplo, isso permite que você proíba uma entidade de serviço de atuar como administrador no workspace do Azure Databricks enquanto ainda permite que outros usuários específicos no workspace continuem a atuar como administradores.
- Os usuários podem proteger os tokens de acesso contra o acesso de plataformas de CI/CD.
- Você pode desabilitar temporariamente ou excluir permanentemente uma entidade de serviço sem afetar outros usuários. Por exemplo, isso permite que você pause ou remova o acesso de uma entidade de serviço com suspeita de uso mal-intencionado.
- Se um usuário sair da organização, você poderá removê-lo sem afetar nenhuma entidade de serviço.
Para conceder a uma plataforma de CI/CD acesso ao workspace do Azure Databricks, faça o seguinte:
Escolha um dos seguintes mecanismos de autenticação do MS Entra com suporte com uma conexão de serviço:
Federação de identidade de carga de trabalho do Microsoft Entra, usando a CLI do Azure como o mecanismo de autenticação.
- Uma entidade de serviço do Microsoft Entra, usando um segredo do cliente do Microsoft Entra como o mecanismo de autenticação.
- Uma identidade gerenciada do Microsoft Entra ID.
Para obter detalhes sobre como implementar a autenticação com o Microsoft Entra, confira Autenticar com o Azure DevOps no Databricks.
Para saber como autenticar especificamente o acesso às pastas Git do Azure Databricks usando o Azure DevOps, confira Usar uma entidade de serviço do Microsoft Entra para autenticar o acesso às pastas Git do Azure Databricks.
- Uma entidade de serviço do Microsoft Entra, usando um segredo do cliente do Microsoft Entra como o mecanismo de autenticação.
Requisitos
- O token OAuth do Azure Databricks ou o token do Microsoft Entra ID para uma entidade de serviço gerenciada do Azure Databricks ou uma entidade de serviço gerenciada do Microsoft Entra ID. Para criar uma entidade de serviço gerenciada do Azure Databricks ou a entidade de serviço gerenciada do Microsoft Entra ID e seu token OAuth do Azure Databricks ou o token do Microsoft Entra ID, confira Gerenciar entidades de serviço.
- Uma conta com seu provedor Git.
Configurar o GitHub Actions
O GitHub Actions precisa poder acessar o workspace do Azure Databricks. Se você quiser usar as pastas Git do Azure Databricks, o workspace também precisará acessar o GitHub.
Para permitir que o GitHub Actions acesse seu workspace do Azure Databricks, você deve fornecer informações sobre sua entidade de serviço gerenciada do Azure Databricks ou a entidade de serviço gerenciada do Microsoft Entra ID para o GitHub Actions. Isso pode incluir informações como a ID do aplicativo (cliente), a ID do diretório (locatário) de uma entidade de serviço gerenciada do Microsoft Entra ID, a entidade de serviço gerenciada do Azure Databricks ou o segredo do cliente da entidade de serviço gerenciada do Microsoft Entra ID ou o valor access_token
de uma entidade de serviço gerenciada do Azure Databricks, dependendo dos requisitos da ação do GitHub. Para obter mais informações, confira Gerenciar entidades de serviço e a documentação do GitHub Actions.
Caso você também deseje permitir que o workspace do Azure Databricks acesse o GitHub ao usar as pastas Git do Azure Databricks, adicione o token de acesso pessoal do GitHub de um usuário do computador do GitHub ao workspace.
Fornecer informações sobre sua entidade de serviço ao GitHub Actions
Esta seção descreve como permitir que o GitHub Actions acesse seu workspace do Azure Databricks.
Como melhor prática de segurança, o Databricks recomenda que você não insira informações sobre sua entidade de serviço diretamente no corpo de um arquivo do GitHub Actions. Você deve fornecer essas informações ao GitHub Actions usando segredos criptografados do GitHub.
O GitHub Actions, como os que o Databricks lista em Integração e entrega contínuas usando o GitHub Actions, depende de vários segredos criptografados do GitHub, como:
DATABRICKS_HOST
, que é o valorhttps://
seguido pelo nome da instância do workspace, por exemploadb-1234567890123456.7.azuredatabricks.net
.AZURE_CREDENTIALS
, que é um documento JSON que representa a saída da executar da CLI do Azure para obter informações sobre uma entidade de serviço gerenciada do Microsoft Entra ID. Para obter mais informações, confira a documentação da Ação do GitHub.AZURE_SP_APPLICATION_ID
, que é o valor do ID do Aplicativo (cliente) para uma entidade de serviço gerenciada do Microsoft Entra ID.AZURE_SP_TENANT_ID
, que é o valor do ID do Diretório (locatário) para uma entidade de serviço gerenciado Microsoft Entra ID.AZURE_SP_CLIENT_SECRET
, que é o valor do Valor do segredo do cliente para uma entidade de serviço gerenciada do Microsoft Entra ID.
Para obter mais informações sobre quais segredos criptografados do GitHub são necessários para uma Ação do GitHub, confira Gerenciar entidades de serviço e a documentação dessa Ação do GitHub.
Para adicionar esses segredos criptografados do GitHub ao repositório do GitHub, confira Como criar segredos criptografados para um repositório na documentação do GitHub. Se quiser obter outras abordagens para adicionar esses segredos do repositório do GitHub, confira Segredos criptografados na documentação do GitHub.
Adicionar o token de acesso pessoal do GitHub de um usuário do computador do GitHub ao workspace do Azure Databricks
Esta seção descreve como habilitar seu workspace do Azure Databricks para acessar o GitHub com as pastas Git do Azure Databricks. Essa é uma tarefa opcional em cenários de CI/CD.
Como melhor prática de segurança, o Databricks recomenda que você use usuários de computador do GitHub em vez de contas pessoais do GitHub, por muitos dos mesmos motivos pelos quais você deve usar uma entidade de serviço em vez de um usuário do Azure Databricks. Para adicionar o token de acesso pessoal do GitHub de um usuário do computador do GitHub ao workspace do Azure Databricks, faça o seguinte:
Crie um usuário do computador do GitHub, se você ainda não tiver um disponível. Um usuário do computador do GitHub é uma conta pessoal do GitHub, separada da sua conta pessoal do GitHub, que você pode usar para automatizar a atividade no GitHub. Crie uma conta do GitHub separada para usar como um usuário do computador do GitHub, se você ainda não tiver uma disponível.
Observação
Ao criar uma conta do GitHub separada como um usuário do computador do GitHub, você não pode associá-la ao endereço de email da sua conta pessoal do GitHub. Nesse caso, pergunte ao administrador de email da organização como obter um endereço de email separado que você possa associar a essa nova conta do GitHub separada como um usuário do computador do GitHub.
Pergunte ao administrador da conta da organização como gerenciar o endereço de email separado, o usuário do computador do GitHub associado e os tokens de acesso pessoal do GitHub na organização.
Forneça ao usuário do computador do GitHub o acesso ao repositório do GitHub. Confira Convidar uma equipe ou uma pessoa na documentação do GitHub. Para aceitar o convite, primeiro você precisa sair da sua conta pessoal do GitHub e depois entrar novamente como o usuário do computador do GitHub.
Entre no GitHub como o usuário do computador e crie um token de acesso pessoal do GitHub para o usuário do computador. Confira Criar um token de acesso pessoal na documentação do GitHub. Permita que o token de acesso pessoal acesse o repositório do GitHub.
Reúna o token do Microsoft Entra ID para sua entidade de serviço, o nome de usuário do computador do GitHub e, em seguida, Adicione as credenciais do provedor Git a um workspace do Azure Databricks.
Configurar o Azure Pipelines
O Azure Pipelines precisa poder acessar o workspace do Azure Databricks. Se você também quiser usar as pastas Git do Azure Databricks, o workspace precisará conseguir acessar o Azure Pipelines.
Os arquivos do pipeline YAML do Azure Pipelines dependem de variáveis de ambiente para acessar seu workspace do Azure Databricks. Essas variáveis de ambiente incluem as seguintes:
DATABRICKS_HOST
, que é o valorhttps://
seguido pelo nome da instância do workspace, por exemploadb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_TOKEN
, que é o valor do valortoken_value
que você copiou após a criação do token do Microsoft Entra ID para a entidade de serviço gerenciada do Microsoft Entra ID.
Para adicionar essas variáveis de ambiente ao pipeline do Azure, confira Usar segredos do Azure Key Vault no Azure Pipelines e Definir variáveis secretas na documentação do Azure.
Consulte também o seguinte blog do Databricks:
Opcional para cenários de CI/CD: se o workspace usar as pastas Git do Azure Databricks e você quiser habilitar o workspace para acessar o Azure Pipelines, reúna:
- O token do Microsoft Entra ID para sua entidade de serviço
- Seu nome de usuário do Azure Pipelines
Em seguida, Adicionar credenciais de provedor Git a um workspace do Azure Databricks.
Configurar a CI/CD do GitLab
A CI/CD do GitLab precisa poder acessar o workspace do Azure Databricks. Caso você também deseje usar as pastas Git do Azure Databricks, o workspace precisará conseguir acessar a CI/CD do GitLab.
Para acessar seu workspace do Azure Databricks, os arquivos .gitlab-ci.yml
da CI/CD do GitLab, como o que faz parte do Modelo Básico do Python em dbx
, use variáveis personalizadas de CI/CD, como:
DATABRICKS_HOST
, que é o valorhttps://
seguido pelo nome da instância do workspace, por exemploadb-1234567890123456.7.azuredatabricks.net
.DATABRICKS_TOKEN
, que é o valor dotoken_value
que você copiou depois de criar o token do Microsoft Entra ID para a entidade de serviço.
Para adicionar essas variáveis personalizadas ao seu projeto de CI/CD do GitLab, consulte Adicionar uma variável de CI/CD a um projeto na documentação de CI/CD do GitLab.
Se o seu workspace usar as pastas Git do Databricks e você quiser habilitá-lo para acessar o CI/CD do GitLab, reúna:
- O token do Microsoft Entra ID para sua entidade de serviço
- Seu nome de usuário de CI/CD do GitLab
Em seguida, Adicionar credenciais de provedor Git a um workspace do Azure Databricks.
Adicionar credenciais de provedor Git a um workspace do Azure Databricks
Esta seção descreve como habilitar seu workspace do Azure Databricks para acessar o provedor Git com as pastas Git do Azure Databricks. Isso é opcional em cenários de CI/CD. Por exemplo, talvez você queira apenas que o provedor Git acesse seu workspace do Azure Databricks, mas não queira usar as pastas Git do Azure Databricks no workspace com o provedor Git. Se for esse o caso, ignore esta seção.
Antes de começar, reúna as seguintes informações e ferramentas:
- O token do Microsoft Entra ID para sua entidade de serviço.
- O nome de usuário associado ao seu provedor Git.
- O token de acesso associado ao usuário para seu provedor Git.
Observação
Para o Azure Pipelines, consulte Usar tokens de acesso pessoal no site do Azure.
- CLI do Databricks versão 0.205 ou superior. Consulte O que é a CLI do Databricks?. Você não pode usar a interface do usuário do Azure Databricks.
- Um perfil de configuração do Azure Databricks no seu arquivo
.databrickscfg
, com os campos do perfil configurados corretamente para ohost
relacionado representando o URL por workspace do seu Azure Databricks, por exemplo,https://adb-1234567890123456.7.azuredatabricks.net
, etoken
representando o token do Microsoft Entra ID para a sua entidade de serviço. (Não use o token de acesso pessoal do Databricks para o usuário do seu workspace.) Confira Autenticação de token de acesso pessoal do Azure Databricks.
Use a CLI do Databricks para executar o comando a seguir:
databricks git-credentials create <git-provider-short-name> --git-username <git-provider-user-name> --personal-access-token <git-provider-access-token> -p <profile-name>
- Use um dos seguintes como
<git-provider-short-name>
:- Para o GitHub, use
GitHub
. - Para o Azure Pipelines, use
AzureDevOpsServices
. - Para a CI/CD do GitLab, use
GitLab
.
- Para o GitHub, use
- Substitua
<git-provider-user-name>
pelo nome de usuário associado ao seu provedor de Git. - Substitua
<git-provider-access-token>
pelo token de acesso associado ao usuário para o seu provedor de Git. - Substitua
<profile-name>
pelo nome do perfil de configuração do Azure Databricks no seu arquivo.databrickscfg
.
Dica
Para confirmar se a chamada foi bem-sucedida, você pode executar um dos seguintes comandos da CLI do Databricks e revisar a saída:
databricks git-credentials list -p <profile-name>
databricks git-credentials get <credential-id> -p <profile-name>