Ansluta GitHub Actions till Azure Machine Learning på ett säkert sätt

Slutförd

Dina valideringsarbetsflöden kan nu fånga upp kodfel innan de når main. Nästa steg är att låta dessa arbetsflöden kommunicera med Azure Machine Learning – skicka jobb, läsa resultat och registrera modeller. Det kräver autentisering och hur du hanterar det är viktigt för säkerheten.

Hemligheter och variabler

GitHub innehåller två platser där du kan lagra arbetsflödeskonfiguration:

  • Hemligheter är krypterade värden för autentiseringsuppgifter och annan känslig konfiguration. GitHub maskerar identifierade hemliga värden i loggar, men arbetsflöden måste ändå undvika att exponera dem.
  • Variabler innehåller icke-känsliga konfigurationsdata. Använd dem för arbetsytenamn, resursgruppnamn och liknande värden som du vill återanvända i arbetsflöden.

Miljöspecifika hemligheter är mer begränsade än hemligheter på lagringsplatsnivå: ett jobb måste vara riktat mot den miljön innan det kan få åtkomst till dem.

Tjänstens huvudnamn och lägsta behörighet

Ett sätt att autentisera ett arbetsflöde mot Azure är att använda ett tjänsthuvudnamn – en icke-mänsklig identitet i Microsoft Entra ID. Du skapar huvudkontot, tilldelar det en Azure roll och lagrar dess autentiseringsuppgifter som en GitHub hemlighet.

Rollen och omfånget är viktiga. Tilldela en lämplig roll på den lägsta möjliga nivån som arbetsflödet kräver, till exempel Azure Machine Learning-arbetsytan eller dess resursgrupp.

Arbetslastsidentitetsfederation med OpenID Connect

Om du lagrar långlivade autentiseringsuppgifter som en hemlighet skapas en risk: om hemligheten exponeras förblir den giltig tills du roterar den. Federering av arbetsbelastningsidentiteter med OpenID Connect (OIDC) gör att man slipper lagra den långvariga autentiseringsuppgiften.

I stället för att lagra klienthemligheter konfigurerar du en förtroenderelation mellan din GitHub-lagringsplats och ett Microsoft Entra program. När ett arbetsflöde körs utfärdar GitHub en kortlivad OIDC-token. Azure verifierar token och returnerar en åtkomsttoken – ingen lagrad autentiseringsuppgift utbyts.

Tips/Råd

För nya arbetsflöden väljer du federering av arbetsbelastningsidentiteter i stället för klienthemligheter för tjänsthuvudnamn. Kortlivade token minskar exponeringen och tar bort behovet av att rotera en lagrad klienthemlighet.

Arbetsflödesautentisering och Git-spårning

När du skickar källfiler från en lokal Git-databas kan Azure Machine Learning registrera databasen, grenen och committen för träningsjobbet. Den här spårningen fungerar med alla kompatibla Git-tjänster och kopplar inte en specifik GitHub lagringsplats till arbetsytan.

Git-spårning och arbetsflödesautentisering löser olika problem. Spårning ansluter ett jobb till källversionen som skapade det. Autentisering ger arbetsflödet behörighet att skicka jobbet.

Tips/Råd

Vilka arbetsflödesvärden är identifierare och vilka är autentiseringsuppgifter som måste förbli hemliga?