Entidades de serviço para 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:

Como prática recomendada de segurança, o Databricks recomenda usar uma entidade de serviço e seu token em vez do usuário do Azure Databricks ou do token de acesso pessoal do Databricks para o usuário do espaço de trabalho para dar às plataformas de CI/CD acesso aos recursos do Azure Databricks. Alguns benefícios dessa abordagem incluem o seguinte:

  • Você pode conceder 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 em seu espaço de trabalho do Azure Databricks e, ao mesmo tempo, permitir que outros usuários específicos em seu espaço de trabalho continuem a atuar como administradores.
  • Os usuários podem proteger seus tokens de acesso de serem acessados por plataformas de CI/CD.
  • Você pode desativar temporariamente ou excluir permanentemente uma entidade de serviço sem afetar outros usuários. Por exemplo, isso permite pausar ou remover o acesso de uma entidade de serviço que você suspeita estar sendo usada de forma mal-intencionada.
  • Se um usuário sair da sua organização, você poderá removê-lo sem afetar nenhuma entidade de serviço.

Para dar a uma plataforma de CI/CD acesso ao seu espaço de trabalho do Azure Databricks, faça o seguinte:

Escolha um dos seguintes mecanismos de autenticação do MS Entra suportados com uma conexão de serviço:

Requisitos

  • O token OAuth do Azure Databricks ou token de ID do Microsoft Entra para uma entidade de serviço gerenciado do Azure Databricks ou uma entidade de serviço gerenciado do Microsoft Entra ID. Para criar uma entidade de serviço gerenciado do Azure Databricks ou uma entidade de serviço gerenciado do Microsoft Entra ID e seu token OAuth do Azure Databricks ou token de ID do Microsoft Entra, consulte Gerenciar entidades de serviço.
  • Uma conta com seu provedor Git.

Configurar ações do GitHub

As Ações do GitHub devem ser capazes de acessar seu espaço de trabalho do Azure Databricks. Se você quiser usar pastas Git do Azure Databricks, seu espaço de trabalho também deve ser capaz de acessar o GitHub.

Para habilitar as Ações do GitHub para acessar seu espaço de trabalho do Azure Databricks, você deve fornecer informações sobre sua entidade de serviço gerenciado do Azure Databricks ou a entidade de serviço gerenciado do Microsoft Entra ID para as Ações do GitHub. Isso pode incluir informações como a ID do Aplicativo (cliente), a ID do Diretório (locatário) de uma entidade de serviço gerenciado do Microsoft Entra ID, o segredo do cliente da entidade de serviço gerenciado do Azure Databricks ou da entidade de serviço gerenciado do Microsoft Entra ID ou o access_token valor de uma entidade de serviço gerenciado do Azure Databricks, dependendo dos requisitos da Ação do GitHub. Para obter mais informações, consulte Gerenciar entidades de serviço e a documentação da Ação do GitHub.

Se você também quiser habilitar seu espaço de trabalho do Azure Databricks para acessar o GitHub ao usar pastas Git do Azure Databricks, deverá adicionar o token de acesso pessoal do GitHub para um usuário de máquina do GitHub ao seu espaço de trabalho.

Fornecer informações sobre sua entidade de serviço para as Ações do GitHub

Esta seção descreve como habilitar as Ações do GitHub para acessar seu espaço de trabalho do Azure Databricks.

Como prática recomendada 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 de ações do GitHub. Você deve fornecer essas informações às Ações do GitHub usando segredos criptografados do GitHub.

As Ações do GitHub, como as que o Databricks lista em Integração e entrega contínuas usando as Ações do GitHub, dependem de vários segredos criptografados do GitHub, como:

  • DATABRICKS_HOST, que é o valor https:// seguido pelo nome da instância do espaço de trabalho, por exemplo adb-1234567890123456.7.azuredatabricks.net.
  • AZURE_CREDENTIALS, que é um documento JSON que representa a saída da execução da CLI do Azure para obter informações sobre uma entidade de serviço gerenciada do Microsoft Entra ID. Para obter mais informações, consulte a documentação do GitHub Action.
  • AZURE_SP_APPLICATION_ID, que é o valor da ID do Aplicativo (cliente) para uma entidade de serviço gerenciada do Microsoft Entra ID.
  • AZURE_SP_TENANT_ID, que é o valor da ID de diretório (locatário) para uma entidade de serviço gerenciada do Microsoft Entra ID.
  • AZURE_SP_CLIENT_SECRET, que é o valor do valor do segredo do cliente para uma entidade de serviço gerenciado 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, consulte Gerenciar entidades de serviço e a documentação dessa Ação do GitHub.

Para adicionar esses segredos criptografados do GitHub ao seu repositório do GitHub, consulte Criando segredos criptografados para um repositório na documentação do GitHub. Para outras abordagens para adicionar esses segredos do repositório GitHub, consulte Segredos criptografados na documentação do GitHub.

Adicionar o token de acesso pessoal do GitHub para um usuário de máquina do GitHub ao seu espaço de trabalho do Azure Databricks

Esta seção descreve como habilitar seu espaço de trabalho do Azure Databricks para acessar o GitHub com pastas Git do Azure Databricks. Esta é uma tarefa opcional em cenários de CI/CD.

Como prática recomendada de segurança, o Databricks recomenda que você use usuários de máquina 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 para um usuário de máquina do GitHub ao seu espaço de trabalho do Azure Databricks, faça o seguinte:

  1. Crie um usuário de máquina GitHub, se você ainda não tiver um disponível. Um usuário de máquina do GitHub é uma conta pessoal do GitHub, separada da sua própria conta pessoal do GitHub, que você pode usar para automatizar a atividade no GitHub. Crie uma nova conta separada do GitHub para usar como um usuário da máquina GitHub, se você ainda não tiver uma disponível.

    Nota

    Quando você cria uma nova conta separada do GitHub como um usuário da máquina GitHub, não pode associá-la ao endereço de e-mail da sua própria conta pessoal do GitHub. Em vez disso, consulte o administrador de e-mail da sua organização sobre como obter um endereço de e-mail separado que você pode associar a essa nova conta separada do GitHub como um usuário de máquina do GitHub.

    Consulte o administrador de conta da sua organização sobre como gerenciar o endereço de e-mail separado e o usuário da máquina GitHub associado e seus tokens de acesso pessoal do GitHub dentro da sua organização.

  2. Dê ao usuário da máquina GitHub acesso ao seu repositório GitHub. Consulte Convidar uma equipe ou pessoa na documentação do GitHub. Para aceitar o convite, você pode primeiro precisar sair da sua conta pessoal do GitHub e, em seguida, entrar novamente como o usuário da máquina do GitHub.

  3. Entre no GitHub como o usuário da máquina e, em seguida, crie um token de acesso pessoal do GitHub para esse usuário da máquina. Consulte Criar um token de acesso pessoal na documentação do GitHub. Certifique-se de conceder ao repositório de token de acesso pessoal do GitHub.

  4. Reúna o token de ID do Microsoft Entra para sua entidade de serviço, seu nome de usuário da máquina GitHub e, em seguida , adicione credenciais de provedor Git a um espaço de trabalho do Azure Databricks.

Configurar o Azure Pipelines

O Azure Pipelines deve ser capaz de acessar seu espaço de trabalho do Azure Databricks. Se você também quiser usar pastas Git do Azure Databricks, seu espaço de trabalho deve ser capaz de acessar o Azure Pipelines.

Os arquivos de pipeline YAML do Azure Pipelines dependem de variáveis de ambiente para acessar seu espaço de trabalho do Azure Databricks. Essas variáveis de ambiente incluem aquelas como:

  • DATABRICKS_HOST, que é o valor https:// seguido pelo nome da instância do espaço de trabalho, por exemplo adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, que é o token_value valor do valor que você copiou depois de criar o token de ID do Microsoft Entra para a entidade de serviço gerenciado do Microsoft Entra ID.

Para adicionar essas variáveis de ambiente ao seu pipeline do Azure, consulte Usar segredos de valor de chave do Azure em Pipelines do Azure e Definir variáveis secretas na documentação do Azure.

Veja também o seguinte blog da Databricks:

Opcional para cenários de CI/CD: se seu espaço de trabalho usa pastas Git do Azure Databricks e você deseja habilitar seu espaço de trabalho para acessar o Azure Pipelines, reúna:

  • O token de ID do Microsoft Entra para sua entidade de serviço
  • Seu nome de usuário do Azure Pipelines

Em seguida, adicione credenciais de provedor Git a um espaço de trabalho do Azure Databricks.

Configurar o GitLab CI/CD

O CI/CD do GitLab deve ser capaz de acessar seu espaço de trabalho do Azure Databricks. Se você também quiser usar pastas Git do Azure Databricks, seu espaço de trabalho deve ser capaz de acessar o CI/CD do GitLab.

Para acessar seu espaço de trabalho do Azure Databricks, os arquivos CI/CD .gitlab-ci.yml do GitLab, como o que faz parte do Modelo Python Básico no dbx, dependem de variáveis CI/CD personalizadas, como:

  • DATABRICKS_HOST, que é o valor https:// seguido pelo nome da instância do espaço de trabalho, por exemplo adb-1234567890123456.7.azuredatabricks.net.
  • DATABRICKS_TOKEN, que é o token_value valor do valor que você copiou depois de criar o token de ID do Microsoft Entra 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 seu espaço de trabalho usa pastas Git Databricks e você deseja habilitar seu espaço de trabalho para acessar o CI/CD do GitLab, reúna:

  • O token de ID do Microsoft Entra para sua entidade de serviço
  • Seu nome de usuário do GitLab CI/CD

Em seguida, adicione credenciais de provedor Git a um espaço de trabalho do Azure Databricks.

Adicionar credenciais de provedor Git a um espaço de trabalho do Azure Databricks

Esta seção descreve como habilitar seu espaço de trabalho do Azure Databricks para acessar um provedor Git para pastas Git do Azure Databricks. Isso é opcional em cenários de CI/CD. Por exemplo, você pode querer apenas que seu provedor Git acesse seu espaço de trabalho do Azure Databricks, mas também não deseja usar pastas do Azure Databricks Git em seu espaço de trabalho com seu provedor Git. Em caso afirmativo, ignore esta seção.

Antes de começar, reúna as seguintes informações e ferramentas:

  • O token de ID do Microsoft Entra 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.

Nota

Para Pipelines do Azure, consulte Usar tokens de acesso pessoal no site do Azure.

  • Databricks CLI versão 0.205 ou superior. Consulte O que é a CLI do Databricks?. Não é possível usar a interface do usuário do Azure Databricks.
  • Um perfil de configuração do Azure Databricks em seu .databrickscfg arquivo, com os campos do perfil definidos corretamente para o relacionado host representando sua URL do Azure Databricks por espaço de trabalho, por exemplohttps://adb-1234567890123456.7.azuredatabricks.net, e token representando o token de ID do Microsoft Entra para sua entidade de serviço. (Não use o token de acesso pessoal Databricks para o usuário do espaço de trabalho.) Consulte Autenticação de token de acesso pessoal do Azure Databricks.

Use a CLI do Databricks para executar o seguinte comando:

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 uma das seguintes opções para <git-provider-short-name>:
    • Para o GitHub, use GitHub.
    • Para Pipelines do Azure, use AzureDevOpsServices.
    • Para o GitLab CI/CD, use GitLab.
  • Substitua <git-provider-user-name> pelo nome de usuário associado ao seu provedor Git.
  • Substitua <git-provider-access-token> pelo token de acesso associado ao usuário para seu provedor Git.
  • Substitua <profile-name> pelo nome do perfil de configuração do Azure Databricks em seu .databrickscfg arquivo.

Gorjeta

Para confirmar que 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>