Łączenie repozytoriów GitHub Enterprise Cloud z agentem usługi Azure SRE

Ważna

Ta funkcja agenta SRE platformy Azure jest obecnie dostępna w wersji zapoznawczej. Zobacz dodatkowe warunki użytkowania dla wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta, wersji zapoznawczej lub w inny sposób nie zostały jeszcze wydane w wersji ogólnodostępnej.

Połącz repozytoria hostowane w chmurze GitHub Enterprise Cloud (<TENANT>.ghe.com) lub github.com do agenta Azure SRE przy użyciu aplikacji BYO (Bring Your Own GitHub). Agent generuje krótkotrwałe tokeny instalacyjne na podstawie klucza prywatnego aplikacji, który jest przechowywany w usłudze Azure Key Vault i nigdy nie jest kopiowany.

Note

Aplikacja BYO GitHub działa zarówno dla hostów github.com, jak i *.ghe.com. Informacje na temat github.com z użyciem OAuth lub PAT zawiera artykuł Skonfiguruj łącznik GitHub.

Kiedy używać uwierzytelniania usługi BYO GitHub App

Użyj aplikacji BYO, gdy:

  • Twoja organizacja wymaga uwierzytelniania opartego na aplikacji i kontroli nadzoru kluczy.
  • Łączysz *.ghe.com repozytoria (wymagane, ponieważ protokół OAuth i pat nie są dostępne dla hostów GHE).
  • Chcesz uzyskać dostęp oparty na tokenach instalacji, a nie tokeny użytkownika.

Wymagania wstępne

Requirement Szczegóły
Azure agentA SRE Agent w stanie Uruchomiony z rolą Administrator lub Użytkownik standardowy
Aplikacja GitHub Aplikacja GitHub utworzona na hoście docelowym (github.com lub <TENANT>.ghe.com)
dostęp administratora GitHub Dostęp administratora organizacji lub repozytorium do tworzenia, instalowania lub weryfikowania zakresu aplikacji GitHub
Azure Key Vault Magazyn, w którym można przechowywać klucz prywatny aplikacji GitHub
Tożsamość zarządzana Możliwość przypisania roli Key Vault Secrets User do tożsamości zarządzanej agenta

Tworzenie aplikacji GitHub

Jeśli masz już aplikację w GitHub z odpowiednimi uprawnieniami, przejdź do Przechowywanie klucza prywatnego w Azure Key Vault.

  1. Przejdź do hosta GitHub:
    • github.com: Przejdź do ustawień organizacji >Ustawienia>Ustawienia programisty>GitHub Apps>Nowa aplikacja GitHub
    • <TENANT>.ghe.com: Ta sama ścieżka w Twojej instancji GHE
  2. Wypełnij szczegóły aplikacji:
    • GitHub Nazwa aplikacji: na przykład sre-agent-reader
    • Adres URL strony głównej: https://sre.azure.com
    • Webhook: odznacz opcję Aktywne (agent nie używa webhooków)
  3. W obszarze Uprawnienia ustaw:
    • Uprawnienia > repozytorium Zawartość: tylko do odczytu (wymagane)
    • Uprawnienia > repozytorium Metadane: tylko do odczytu (wybrane automatycznie)
    • Opcjonalnie dodaj dostęp do odczytu elementów Issues i Pull requests
  4. W obszarze Gdzie można zainstalować tę aplikację GitHub? wybierz pozycję Only na tym koncie.
  5. Wybierz pozycję Utwórz aplikację GitHub.
  6. Zanotuj identyfikator klienta wyświetlany na stronie ustawień aplikacji.

Instalowanie aplikacji GitHub

  1. Na stronie GitHub Ustawienia aplikacji wybierz pozycję Zainstaluj aplikację na lewym pasku bocznym.
  2. Wybierz organizację.
  3. Wybierz pozycję Wszystkie repozytoria lub wybierz określone repozytoria.
  4. Wybierz Zainstaluj.

Generowanie klucza prywatnego aplikacji GitHub

  1. Na stronie ustawień aplikacji GitHub przewiń do Klucze prywatne.
  2. Wybierz pozycję Wygeneruj klucz prywatny.
  3. Pobierany jest .pem plik. Ten plik jest kluczem prywatnym RSA używanym przez agenta do uwierzytelniania.

Caution

Przechowuj plik PEM w bezpiecznym miejscu. Przekażesz go do Key Vault w następnym kroku. Nie zatwierdzaj go w repozytorium i nie udostępniaj go.

Przechowywanie klucza prywatnego w Azure Key Vault

  1. Otwórz portal Azure i przejdź do Key Vault.
  2. Przejdź do pozycji Wpisy tajne>Generuj/Importuj.
  3. Ustaw nazwę (na przykład sre-agent-github-app-key) i wklej pełną zawartość PEM jako wartość (w tym -----BEGIN RSA PRIVATE KEY----- i -----END RSA PRIVATE KEY----- nagłówki).
  4. Wybierz Utwórz.
  5. Otwórz klucz tajny, wybierz bieżącą wersję i skopiuj identyfikator URI Secret Identifier:
https://myvault.vault.azure.net/secrets/my-github-app-key/<VERSION>

Wskazówka

URI z wersją i bez wersji: Możesz użyć URI z wersją (z sufiksem /<VERSION>), aby powiązać je z określoną wersją klucza, lub pominąć wersję w URI, aby zawsze używać najnowszej wersji. Użyj niewersyjnego identyfikatora URI, aby po obróceniu klucza agent automatycznie pobiera nową wersję bez aktualizowania identyfikatora URI.

Udzielanie Key Vault dostępu do tożsamości agenta

  1. W portalu Azure otwórz Key Vault>Kontrolka dostępu (IAM).
  2. Przypisz rolę Key Vault Secrets User do tożsamości zarządzanej agenta.
  3. Poczekaj, aż przypisanie roli zacznie obowiązywać.

Skonfiguruj aplikację BYO w funkcji Dostęp do kodu

  1. Otwórz swojego agenta w portalu.
  2. Przejdź do pozycji Builder>Dostęp do kodu.
  3. Wybierz pozycję Dodaj repozytoria.
  4. Wybierz GitHub i wprowadź hosta:
    • github.com dla publicznego GitHub
    • <TENANT>.ghe.com dla chmury dla przedsiębiorstw
  5. Przejdź do uwierzytelniania.
  6. Wybierz Użyj własnej aplikacji GitHub.
  7. Wejść:
    • identyfikator klienta
    • Identyfikator URI klucza prywatnego (Key Vault)
    • Opcjonalna tożsamość Key Vault (lub zachowaj przypisaną przez system)
  8. Wybierz Połącz.

Kreator weryfikuje dane logowania. Jeśli operacja się powiedzie, zobaczysz Połączono jako aplikacja GitHub z zielonym znacznikiem wyboru.

Note

Po wprowadzeniu domeny *.ghe.com jako hosta kreator automatycznie wybiera opcję Użyj własnej aplikacji GitHub. OAuth i PAT nie są dostępne dla hostów GHE.

Dodawanie repozytoriów i weryfikowanie połączenia

  1. Wybierz repozytoria i zapisz.
  2. Upewnij się, że w karcie Code Access wyświetlane są podłączony host i typ uwierzytelniania GitHubApp.
  3. Przetestuj na czacie:
Get me recent issues from owner/repo.

Tożsamość zarządzana dla każdej aplikacji w wielu aplikacjach GitHub

Domyślnie agent używa przypisanej przez system tożsamości zarządzanej do odczytu klucza prywatnego z Key Vault. Jeśli zarządzasz wieloma aplikacjami GitHub (na przykład po jednej na każde wystąpienie GHE), możesz przypisać do każdej aplikacji inną tożsamość zarządzaną przypisaną przez użytkownika. Takie podejście zapewnia izolację bezpieczeństwa, ponieważ każda tożsamość ma dostęp tylko do własnego sekretu w usłudze Key Vault.

Wybierz tożsamość na liście rozwijanej Key Vault identity podczas kroku konfigurowania.

Obsługa wielu hostów dla połączeń GitHub

Możesz połączyć wiele hostów GitHub z tym samym agentem. Każdy host ma niezależne uwierzytelnianie:

  • github.com → OAuth, PAT lub BYO App
  • contoso.ghe.com → aplikacja BYO
  • engineering.ghe.com → BYO App (z inną aplikacją GitHub)

Rozłączanie jednego hosta nie ma wpływu na innych.

Troubleshooting

Objaw Prawdopodobna przyczyna Napraw.
Sprawdzanie poprawności uwierzytelniania kończy się niepowodzeniem Nieprawidłowy identyfikator klienta lub nieprawidłowy host Sprawdź, czy aplikacja została utworzona na tym samym hoście wprowadzonym w programie Code Access.
Odczyt sekretu nie powiódł się Brak mechanizmu RBAC lub zasad dostępu usługi Key Vault Udziel użytkownikowi Key Vault Secrets User tożsamości agenta.
Repozytorium wyświetla Niepowodzenie w sekcji Dostęp do kodu Brak uprawnień aplikacji lub brak zakresu instalacji Weryfikowanie metadanych: odczytywanie + zawartości: zakres odczytu i instalacji.
Problemy z czatem działają, ale dostęp do kodu kończy się niepowodzeniem Kontrole punktu końcowego/ścieżki różnią się Uruchom ponownie test połączenia i zweryfikuj uprawnienie metadanych.

Następny krok