Sicheres Verbinden von GitHub Actions mit Azure Machine Learning
Ihre Validierungsworkflows können jetzt Codefehler abfangen, bevor sie main erreichen. Der nächste Schritt besteht darin, dass diese Workflows mit Azure Machine Learning kommunizieren können – Übermitteln von Aufträgen, Lesen von Ergebnissen und Registrieren von Modellen. Das erfordert eine Authentifizierung, und wie Sie damit umgehen, ist für die Sicherheit entscheidend.
Geheime Schlüssel und Variablen
GitHub bietet zwei Orte zum Speichern der Workflowkonfiguration:
- Geheime Schlüssel sind verschlüsselte Werte für Anmeldeinformationen und andere vertrauliche Konfigurationen. GitHub maskiert erkannte Geheimniswerte in Protokollen, aber Workflows müssen dennoch vermeiden, sie offenzulegen.
- Variablen enthalten nicht vertrauliche Konfigurationen. Verwenden Sie sie für Arbeitsbereichsnamen, Ressourcengruppennamen und ähnliche Werte, die Sie in workflowsübergreifend wiederverwenden möchten.
Umgebungsgeheimnisse sind stärker eingeschränkt als Repository-Geheimnisse: Ein Job muss auf diese Umgebung ausgerichtet sein, bevor er auf sie zugreifen kann.
Dienstprinzipale und das Prinzip der geringsten Rechte
Eine Möglichkeit, einen Workflow bei Azure zu authentifizieren, ist ein Dienstprinzipal – eine nicht-menschliche Identität in Microsoft Entra ID. Sie erstellen den Prinzipal, weisen ihm eine Azure Rolle zu und speichern seine Anmeldeinformationen als GitHub Geheimschlüssel.
Die Rolle und der Umfang sind wichtig. Weisen Sie auf der engsten Ebene, die der Workflow benötigt, eine geeignete Rolle zu, z. B. für den Azure Machine Learning-Arbeitsbereich oder seine Ressourcengruppe.
Workload-Identitätsverbund mit OpenID Connect
Das Speichern von langlebigen Anmeldeinformationen als geheimer Schlüssel führt zu Risiken: Wenn der geheime Schlüssel verfügbar gemacht wird, bleibt er gültig, bis Sie ihn drehen. Der Workload-Identitätsverbund mit OpenID Connect (OIDC) verhindert das Speichern dieser langlebigen Anmeldeinformationen.
Anstatt geheime Clientschlüssel zu speichern, konfigurieren Sie eine Vertrauensstellung zwischen Ihrem GitHub Repository und einer Microsoft Entra Anwendung. Wenn ein Workflow ausgeführt wird, gibt GitHub ein kurzlebiges OIDC-Token aus. Azure überprüft das Token und gibt ein Zugriffstoken zurück – es werden keine gespeicherten Anmeldeinformationen ausgetauscht.
Tip
Bevorzugen Sie den Workload-Identitätsverbund gegenüber dienstprinzipal geheimen Clientschlüsseln für neue Workflows. Kurzlebige Token reduzieren die Angriffsfläche und machen es überflüssig, ein gespeichertes Client-Secret zu rotieren.
Workflowauthentifizierung und Git-Nachverfolgung
Wenn Sie Quelldateien aus einem lokalen Git-Repository übermitteln, kann Azure Machine Learning das Repository, den Branch und den Commit zusammen mit dem Trainingsauftrag aufzeichnen. Diese Nachverfolgung funktioniert mit jedem kompatiblen Git-Dienst und fügt keine bestimmte GitHub Repository an den Arbeitsbereich an.
Git-Nachverfolgung und Workflowauthentifizierung lösen verschiedene Probleme. Die Nachverfolgung verbindet einen Auftrag mit der Quellversion, die ihn erstellt hat. Die Authentifizierung erteilt dem Workflow die Berechtigung, diesen Auftrag zu übermitteln.
Tip
Welche Workflowwerte sind Bezeichner und welche Anmeldeinformationen müssen geheim bleiben?