Ligue o GitHub Actions ao Azure Machine Learning de forma segura

Concluído

Os seus fluxos de trabalho de validação podem agora detetar erros de código antes de chegarem a main. O passo seguinte é deixar esses fluxos de trabalho comunicarem com o Azure Machine Learning — submeter tarefas, ler resultados e registar modelos. Isso requer autenticação, e a forma como se lida com isso é importante para a segurança.

Segredos e variáveis

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

  • Os segredos são valores encriptados para credenciais e outras configurações sensíveis. As máscaras do GitHub reconhecem valores secretos nos logs, mas os fluxos de trabalho têm de evitar expô-los.
  • As variáveis mantêm uma configuração não sensível. Usa-os para nomes de espaços de trabalho, nomes de grupos de recursos e valores semelhantes que queiras reutilizar entre fluxos de trabalho.

Os segredos associados a um ambiente são mais limitados do que os segredos de repositório: uma tarefa tem de ter esse ambiente como destino antes de lhes poder aceder.

Princípios de serviço e menor privilégio

Uma forma de autenticar um fluxo de trabalho no Azure é através de um principal de serviço — uma identidade não humana no Microsoft Entra ID. Crias o principal, atribuis-lhe um papel no Azure e armazenas as suas credenciais como um segredo no GitHub.

O papel e o âmbito são importantes. Atribuir um papel apropriado no âmbito mais restrito que o fluxo de trabalho necessita, como o espaço de trabalho do Azure Machine Learning ou o seu grupo de recursos.

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

Armazenar credenciais de longa duração como segredo representa um risco: se o segredo for exposto, este mantém-se válido até ser substituído. A federação de identidades de carga de trabalho com o OpenID Connect (OIDC) evita armazenar essa credencial de longa duração.

Em vez de armazenar segredos do cliente, configura uma relação de confiança entre o seu repositório GitHub e uma aplicação Microsoft Entra. Quando um fluxo de trabalho é executado, o GitHub emite um token OIDC de curta duração. O Azure valida o token e devolve um token de acesso — não é trocada nenhuma credencial armazenada.

Sugestão

Prefiro federação de identidade de carga de trabalho em vez de segredos de cliente do principal de serviço para novos fluxos de trabalho. Os tokens de curta duração reduzem a exposição e eliminam a necessidade de fazer a rotação de um segredo do cliente armazenado.

Autenticação do fluxo de trabalho e controlo de versões com Git

Quando submete ficheiros de origem de um repositório Git local, o Azure Machine Learning pode registar o repositório, o ramo e o commit juntamente com o trabalho de treino. Este rastreamento funciona com qualquer serviço Git compatível e não anexa um repositório específico do GitHub ao espaço de trabalho.

O rastreamento Git e a autenticação de workflow resolvem diferentes problemas. O rastreamento liga um trabalho à versão de origem que o produziu. A autenticação concede ao fluxo de trabalho permissão para submeter esse trabalho.

Sugestão

Quais os valores do fluxo de trabalho são identificadores e quais são credenciais que devem permanecer secretas?