Hinweis: GitHub Actions-Support für Google Cloud Storage befindet sich derzeit in der Betaversion und unterliegt Änderungen.
Informationen zum externen Speicher für GitHub Actions
GitHub Actions verwendet externen Blobspeicher, um durch Workflowausführungen generierte Daten zu speichern. Gespeicherte Daten umfassen Workflowprotokolle, Caches, und von Benutzer*innen hochgeladene Buildartefakte. Weitere Informationen findest du unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server.
Es gibt zwei Optionen zum Konfigurieren von GitHub Enterprise Server, um eine Verbindung mit deinem externen Speicheranbieter herzustellen:
- OpenID Connect (OIDC)
- Herkömmliche, auf Anmeldeinformationen basierende Authentifizierung mithilfe von Geheimnissen
Es wird empfohlen, OIDC nach Möglichkeit zu verwenden, da du keine vertraulichen und langlebigen Anmeldeinformationsgeheimnisse für deinen Speicheranbieter erstellen oder verwalten musst und so riskierst, dass sie verfügbar gemacht werden. Nach dem Definieren einer Vertrauensstellung mit OIDC stellt dein Cloudspeicheranbieter automatisch kurzlebige Zugriffstoken für deine GitHub Enterprise Server-Instanz aus, die automatisch ablaufen.
Voraussetzungen
Stelle vor dem Aktivieren von GitHub Actions sicher, dass du die folgenden Schritte ausgeführt hast:
-
Erstelle Deinen Google Cloud Storage-Bucket zum Speichern von Daten, die von Workflowausführungen generiert werden.
-
Überprüfe die Hardwareanforderungen für GitHub Actions. Weitere Informationen findest du unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server.
-
TLS muss für die Domäne von Ihre GitHub Enterprise Server-Instance konfiguriert sein. Weitere Informationen findest du unter TLS konfigurieren.
Hinweis: Es wird dringend empfohlen, TLS für GitHub Enterprise Server mit einem Zertifikat zu konfigurieren, das von einem vertrauenswürdigen Aussteller signiert ist. Ein selbst signiertes Zertifikat kann zwar funktionieren, erfordert jedoch zusätzliche Konfiguration für deine selbstgehosteten Runner und wird für Produktionsumgebungen nicht empfohlen.
-
Wenn du einen HTTP-Proxyserver auf Ihre GitHub Enterprise Server-Instance konfiguriert hast:
-
Du musst der HTTP-Proxyausschluss-Liste
.localhost
und127.0.0.1
hinzufügen. -
Wenn dein externer Speicherort nicht routingfähig ist, musst du der Ausschlussliste auch die URL zu deinem externen Speicher hinzufügen.
Weitere Informationen zum Ändern deiner Proxyeinstellungen findest du unter Konfigurieren eines ausgehenden Webproxyservers.
-
Wenn du OIDC für die Verbindung mit deinem Speicheranbieter verwendest, musst du die folgenden OIDC-Tokendienst-URLs für deine GitHub Enterprise Server-Instanz für das öffentliche Internet verfügbar machen:
https://HOSTNAME/_services/token/.well-known/openid-configuration https://HOSTNAME/_services/token/.well-known/jwks
Dadurch wird sichergestellt, dass der Speicheranbieter deine GitHub Enterprise Server-Instanz zur Authentifizierung kontaktieren kann.
Aktivieren von GitHub Actions mit Google Cloud Storage mithilfe von OIDC (empfohlen)
Um GitHub Enterprise Server für die Verwendung von OIDC mit Google Cloud Storage zu konfigurieren, musst du zunächst ein Google Cloud-Dienstkonto und anschließend einen Google Cloud-Identitätspool sowie einen Identitätsanbieter erstellen. Konfiguriere schließlich GitHub Enterprise Server so, dass der Anbieter und das Dienstkonto für den Zugriff auf deinen Google Cloud Storage-Bucket verwendet werden.
1. Erstellen eines Dienstkontos
-
Erstelle ein Dienstkonto, das mithilfe von OIDC auf deinen Bucket zugreifen kann. Weitere Informationen findest du in der Google Cloud-Dokumentation zum Erstellen und Verwalten von Dienstkonten.
Stelle beim Erstellen des Dienstkontos sicher, dass du die folgenden Schritte ausführst:
- Aktivieren der IAM-API (wie am Anfang des Artikels Dienstkonten erstellen und verwalten beschrieben)
- Hinzufügen der folgenden Rollen zum Dienstkonto:
- Dienstkonto-Tokenersteller
- Speicherobjektadministrator
-
Notiere dir nach dem Erstellen des Dienstkontos dessen E-Mail-Adresse, da sie später benötigt wird. Die E-Mail-Adresse für das Dienstkonto weist das Format
SERVICE-ACCOUNT-NAME@PROJECT-NAME.iam.gserviceaccount.com
auf.
2. Erstellen eines Identitätspools und Identitätsanbieters
-
Navigiere in der Google Cloud-Konsole zur Seite Neuer Workloadanbieter und Pool.
-
Gib unter „Erstellen eines Identitätspools“ einen Namen für den Identitätspool ein, und klicke auf Weiter.
-
Gehe unter „Anbieter zum Pool hinzufügen“ wie folgt vor:
-
Wähle für „Anbieter auswählen“ die Option OpenID Connect (OIDC) aus.
-
Gib für „Anbietername“ einen Namen für den Anbieter ein.
-
Gib für „Aussteller“ die folgende URL ein, und ersetze
HOSTNAME
durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz:https://HOSTNAME/_services/token
Beispiel:
https://my-ghes-host.example.com/_services/token
-
Übernimm unter „Zielgruppen“ die Auswahl Standardzielgruppe, aber notiere dir die Identitätsanbieter-URL, da diese später benötigt wird. Die Identitätsanbieter-URL weist das Format
https://iam.googleapis.com/projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME
auf. -
Klicke auf Weiter.
-
-
Gehe unter „Anbieterattribute konfigurieren“ wie folgt vor:
-
Gib für die Zuordnung „OIDC 1“
assertion.sub
ein. -
Klicke unter „Attributbedingungen“ auf Bedingung hinzufügen.
-
Gib für „Bedingung CEL“ die folgende Bedingung ein, und ersetze
HOSTNAME
durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz:google.subject == "HOSTNAME"
Zum Beispiel:
google.subject == "my-ghes-host.example.com"
Hinweis: Der hier verwendete Hostname von deine GitHub Enterprise Server-Instanz darf das Protokoll nicht enthalten.
-
Klicke auf Speichern.
-
-
Klicke nach dem Erstellen des Identitätspools oben auf der Seite des Identitätspools auf Zugriff gewähren.
- Wähle unter „Dienstkonto auswählen“ das Dienstkonto aus, das du im vorherigen Schritt erstellt hast.
- Wähle unter „Prinzipale auswählen (Identitäten, die auf das Dienstkonto zugreifen können)“ die Option Nur Identitäten, die dem Filter entsprechen aus.
- Wähle für „Attributname“ die Option Antragsteller aus.
- Gib für „Attributwert“ deinen GitHub Enterprise Server-Hostnamen ein (ohne Protokoll). Beispiel:
my-ghes-host.example.com
. - Klicke auf Speichern.
- Du kannst das Dialogfeld „Anwendung konfigurieren“ schließen, da die Konfigurationsdatei nicht benötigt wird.
3. Konfigurieren von GitHub Enterprise Server zum Herstellen einer Verbindung mit Google Cloud Storage mithilfe von OIDC
-
Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Aktionen.
-
Wähle unter „GitHub Actions“ die Option GitHub Actions aktivieren aus.
-
Klicke unter „Artifact & Log Storage“ neben „Google Cloud Storage“ auf Einrichten.
-
Wähle unter „Authentifizierung“ die Option OpenID Connect (OIDC) aus, und gib die Werte für deinen Speicher ein:
-
Dienst-URL: Die Dienst-URL für deinen Bucket. Dies ist normalerweise
https://storage.googleapis.com
. -
Bucketname: Dies ist der Name deines Buckets.
-
Workloadidentitätsanbieter-ID: Dies ist die Identitätsanbieter-ID für deinen Identitätspool.
Sie weist das Format
projects/PROJECT-NUMBER/locations/global/workloadIdentityPools/POOL-NAME/providers/PROVIDER-NAME
auf. Beachte, dass du das Präfixhttps://iam.googleapis.com/
aus dem Wert entfernen musst, den du dir im vorherigen Schritt notiert hast.Beispiel:
projects/1234567890/locations/global/workloadIdentityPools/my-pool/providers/my-provider
. -
Dienstkonto: Dies ist die E-Mail-Adresse des Dienstkontos, die du dir im vorherigen Schritt notiert hast. Beispiel:
ghes-oidc-service-account@my-project.iam.gserviceaccount.com
.
-
-
Klicke auf die Schaltfläche Speichereinstellungen testen, um deine Speichereinstellungen zu überprüfen.
Wenn bei der Überprüfung der Speichereinstellungen Fehler auftreten, überprüfe die Einstellungen mit dem Speicheranbieter, und versuche es erneut.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis: Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Aktivieren von GitHub Actions mit Google Cloud Storage mithilfe eines HMAC-Schlüssels
-
Erstelle ein Google Cloud-Dienstkonto, das auf den Bucket zugreifen kann, und einen Hash-based Message Authentication Code (HMAC) für das Dienstkonto. Weitere Informationen findest du in der Google Cloud-Dokumentation unter Verwalten von HMAC-Schlüsseln für Dienstkonten.
Das Dienstkonto muss über die folgenden Berechtigungen für Identitäts- und Zugriffsverwaltung (IAM) für den Bucket verfügen:
storage.objects.create
storage.objects.get
storage.objects.list
storage.objects.update
storage.objects.delete
storage.multipartUploads.create
storage.multipartUploads.abort
storage.multipartUploads.listParts
storage.multipartUploads.list
1. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.
-
Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.
-
Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Aktionen.
-
Wähle unter „GitHub Actions“ die Option GitHub Actions aktivieren aus.
-
Klicke unter „Artifact & Log Storage“ neben „Google Cloud Storage“ auf Einrichten.
-
Wähle unter „Authentifizierung“ die Option Basierend auf Anmeldeinformationen aus, und gib die Details deines Speicherbuckets ein:
- Dienst-URL: Die Dienst-URL für deinen Bucket. Dies ist normalerweise
https://storage.googleapis.com
. - Bucketname: Der Name deines Buckets.
- HMAC Access ID und HMAC Secret: Die Google Cloud-Zugriffs-ID und der geheime Schlüssel für dein Speicherkonto. Weitere Informationen findest du in der Google Cloud-Dokumentation unter Verwalten von HMAC-Schlüsseln für Dienstkonten.
- Dienst-URL: Die Dienst-URL für deinen Bucket. Dies ist normalerweise
-
Klicke auf die Schaltfläche Speichereinstellungen testen, um deine Speichereinstellungen zu überprüfen.
Wenn bei der Überprüfung der Speichereinstellungen Fehler auftreten, überprüfe die Einstellungen mit dem Speicheranbieter, und versuche es erneut.
-
Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.
Hinweis: Durch das Speichern von Einstellungen in der Verwaltungskonsole werden Systemdienste neu gestartet, was zu einer für den Benutzer feststellbaren Downtime führen könnte.
-
Warten Sie auf den Abschluss der Konfigurationsausführung.
Nächste Schritte
Nachdem die Konfigurationsausführung erfolgreich abgeschlossen wurde, werden GitHub Actions für Ihre GitHub Enterprise Server-Instance aktiviert. Informationen zu den nächsten Schritten, z. B. das Verwalten von GitHub Actions-Zugriffsberechtigungen und Hinzufügen selbstgehosteter Runner findest du unter Erste Schritte mit GitHub Actions für GitHub Enterprise Server.