Conectar GitHub Actions a Azure Machine Learning com segurança

Concluído

Seus fluxos de trabalho de validação agora podem detectar erros de código antes de chegarem main. A próxima etapa é permitir que esses fluxos de trabalho conversem com Azure Machine Learning : enviar trabalhos, ler resultados e registrar modelos. Isso requer autenticação e como você lida com ela é importante para a segurança.

Segredos e variáveis

GitHub fornece dois locais para armazenar a configuração do fluxo de trabalho:

  • Os segredos são valores criptografados para credenciais e outras configurações confidenciais. GitHub mascara valores secretos reconhecidos em logs, mas os fluxos de trabalho ainda devem evitar expô-los.
  • As variáveis contêm configurações não sensíveis. Use-os para nomes de workspace, nomes de grupo de recursos e valores semelhantes que você deseja reutilizar entre fluxos de trabalho.

Os segredos com escopo de ambiente são mais restritos do que os segredos do repositório: um job deve ter esse ambiente como destino antes de poder acessá-los.

Entidades de serviço e princípio do menor privilégio

Uma maneira de autenticar um fluxo de trabalho no Azure é com uma entidade de serviço — uma identidade não humana no Microsoft Entra ID. Você cria a entidade de segurança, atribui a ela uma função do Azure e armazena suas credenciais como um segredo do GitHub.

A função e o escopo importam. Atribua uma função apropriada no escopo mais restrito de que o fluxo de trabalho precisa, como o espaço de trabalho do Azure Machine Learning ou seu grupo de recursos.

Federação de identidade de carga de trabalho com OpenID Connect

Armazenar credenciais de longa duração em um segredo gera um risco: se o segredo for exposto, ele continuará válido até que você o substitua. A federação de identidade de carga de trabalho com o OpenID Connect (OIDC) evita armazenar essa credencial de longa duração.

Em vez de armazenar segredos do cliente, você configura uma relação de confiança entre o repositório GitHub e um aplicativo Microsoft Entra. Quando um fluxo de trabalho é executado, GitHub emite um token OIDC de curta duração. Azure valida o token e retorna um token de acesso. Nenhuma credencial armazenada é trocada.

Dica

Prefira a federação de identidade de carga de trabalho ao uso de segredos do cliente da entidade de serviço em novos fluxos de trabalho. Tokens de curta duração reduzem a exposição e eliminam a necessidade de fazer a rotação de um segredo de cliente armazenado.

Autenticação de fluxo de trabalho e acompanhamento do Git

Quando você envia arquivos de origem a partir de um repositório Git local, o Azure Machine Learning pode registrar o repositório, a ramificação e o commit com o trabalho de treinamento. Esse acompanhamento funciona com qualquer serviço Git compatível e não anexa um repositório GitHub específico ao workspace.

O acompanhamento do Git e a autenticação de fluxo de trabalho resolvem problemas diferentes. O rastreamento conecta uma tarefa à versão de origem que a produziu. A autenticação concede a permissão de fluxo de trabalho para enviar esse trabalho.

Dica

Quais valores de fluxo de trabalho são identificadores e quais são as credenciais que devem permanecer em segredo?