Connettere GitHub Actions a Azure Machine Learning in modo sicuro

Completato

I flussi di lavoro di convalida possono ora intercettare gli errori di codice prima che raggiungano main. Il passaggio successivo consente a tali flussi di lavoro di comunicare con Azure Machine Learning, ovvero l'invio di processi, la lettura dei risultati e la registrazione dei modelli. Questo richiede l'autenticazione e come gestirlo è importante per la sicurezza.

Segreti e variabili

GitHub offre due posizioni in cui archiviare la configurazione del flusso di lavoro:

  • I segreti sono valori crittografati per le credenziali e altre configurazioni sensibili. GitHub maschera i valori dei segreti riconosciuti nei log, ma i flussi di lavoro devono comunque evitare di esporli.
  • Le variabili contengono una configurazione non sensibile. Usarli per i nomi delle aree di lavoro, i nomi dei gruppi di risorse e valori simili che si desidera riutilizzare tra i flussi di lavoro.

I segreti definiti a livello di ambiente sono più limitati rispetto ai segreti del repository: un job deve fare riferimento a quell’ambiente prima di potervi accedere.

Entità servizio e privilegi minimi

Un modo per autenticare un flusso di lavoro per Azure consiste nell'usare un'entità servizio, ovvero un'identità non umana in Microsoft Entra ID. Creare l'entità, assegnarla un ruolo Azure e archiviarne le credenziali come segreto GitHub.

Il ruolo e l'ambito sono importanti. Assegnare un ruolo appropriato all'ambito più ristretto necessario per il flusso di lavoro, ad esempio l'area di lavoro Azure Machine Learning o il relativo gruppo di risorse.

Federazione delle identità del carico di lavoro con OpenID Connect

L'archiviazione di credenziali di lunga durata come segreto comporta rischi: se il segreto viene esposto, rimane valido fino a quando non viene ruotato. La federazione delle identità dei carichi di lavoro con OpenID Connect (OIDC) evita di memorizzare quella credenziale di lunga durata.

Anziché archiviare i segreti del client, configuri un rapporto di trust tra il tuo repository GitHub e un'applicazione Microsoft Entra. Quando viene eseguito un flusso di lavoro, GitHub rilascia un token OIDC di breve durata. Azure convalida il token e restituisce un token di accesso. Non viene scambiata alcuna credenziale archiviata.

Tip

Preferire la federazione dell'identità del carico di lavoro rispetto ai segreti client dell'entità servizio per i nuovi flussi di lavoro. I token di breve durata riducono l'esposizione ed eliminano la necessità di cambiare periodicamente un segreto client memorizzato.

Autenticazione del flusso di lavoro e rilevamento Git

Quando si inviano file sorgente da un repository Git locale, Azure Machine Learning può registrare il repository, il branch e il commit insieme al job di training. Questo rilevamento funziona con qualsiasi servizio Git compatibile e non collega un repository GitHub specifico all'area di lavoro.

Il rilevamento Git e l'autenticazione del flusso di lavoro risolveranno diversi problemi. Il tracciamento collega un processo alla versione di origine da cui è stato generato. L'autenticazione concede all'utente l'autorizzazione del flusso di lavoro per inviare il processo.

Tip

Quali valori del flusso di lavoro sono identificatori e quali sono le credenziali che devono rimanere segrete?