Bezpieczne łączenie GitHub Actions z Azure Machine Learning
Twoje przepływy pracy walidacji mogą teraz wykrywać błędy w kodzie, zanim trafią do main. Następnym krokiem jest umożliwienie tym przepływom pracy rozmowy z Azure Machine Learning — przesyłanie zadań, odczytywanie wyników i rejestrowanie modeli. Wymaga to uwierzytelniania i sposobu jego obsługi ma znaczenie dla bezpieczeństwa.
Sekrety i zmienne
GitHub udostępnia dwa miejsca do przechowywania konfiguracji przepływu pracy:
- Sekrety to zaszyfrowane wartości używane do przechowywania poświadczeń i innych poufnych danych konfiguracyjnych. GitHub ukrywa w logach rozpoznane wartości sekretów, ale przepływy pracy nadal muszą unikać ich ujawniania.
- Zmienne przechowują konfigurację niewrażliwą. Użyj ich dla nazw obszarów roboczych, nazw grup zasobów i podobnych wartości, które mają być używane w przepływach pracy.
Sekrety powiązane ze środowiskiem mają bardziej ograniczony zakres niż sekrety repozytorium: zadanie musi wskazywać to środowisko, zanim będzie mogło uzyskać do nich dostęp.
Nazwy główne usług i zasada najmniejszych uprawnień
Jednym ze sposobów uwierzytelnienia przepływu pracy w usłudze Azure jest użycie nazwy głównej usługi — tożsamości niebędącej człowiekiem w usłudze Microsoft Entra ID. Tworzysz jednostkę usługi, przypisujesz jej rolę platformy Azure i zapisujesz jej poświadczenia jako sekret GitHub.
Rola i zakres mają znaczenie. Przypisz odpowiednią rolę w możliwie najwęższym zakresie wymaganym przez przepływ pracy, na przykład w obszarze roboczym Azure Machine Learning lub w jego grupie zasobów.
Federacja tożsamości obciążeń z użyciem OpenID Connect
Przechowywanie poświadczeń długoterminowych jako sekretu wiąże się z ryzykiem: jeśli sekret zostanie ujawniony, pozostanie ważny do czasu jego rotacji. Federacja tożsamości obciążenia roboczego z użyciem OpenID Connect (OIDC) pozwala uniknąć przechowywania tego długoterminowego poświadczenia.
Zamiast przechowywać wpisy tajne klienta, należy skonfigurować relację zaufania między repozytorium GitHub a aplikacją Microsoft Entra. Po uruchomieniu przepływu pracy GitHub wystawia krótkotrwały token OIDC. Azure weryfikuje token i zwraca token dostępu — żadne przechowywane poświadczenia nie są wymieniane.
Wskazówka
W nowych przepływach pracy preferowane jest użycie federacji tożsamości obciążeń zamiast wpisów tajnych klienta nazwy głównej usługi. Krótkotrwałe tokeny ograniczają zakres narażenia i eliminują potrzebę rotacji przechowywanego sekretu klienta.
Uwierzytelnianie przepływu pracy i śledzenie usługi Git
Po przesłaniu plików źródłowych z lokalnego repozytorium Git Azure Machine Learning może zarejestrować repozytorium, gałąź i zatwierdzić zadanie trenowania. To śledzenie działa z dowolną zgodną usługą Git i nie dołącza określonego repozytorium GitHub do obszaru roboczego.
Śledzenie usługi Git i uwierzytelnianie przepływu pracy rozwiązuje różne problemy. Śledzenie łączy zadanie z wersją źródłową, która ją wyprodukowała. Uwierzytelnienie nadaje przepływowi pracy uprawnienie do przesłania tego zadania.
Wskazówka
Które wartości przepływu pracy są identyfikatorami i które poświadczenia muszą pozostać tajne?