Skip to main content

Aktivieren von GitHub Actions mit Amazon S3-Speicher

Du kannst GitHub Actions auf GitHub Enterprise Server aktivieren und Amazon S3 zum Speichern von Daten verwenden, die durch Workflowausführungen generiert wurden.

Wer kann dieses Feature verwenden?

Site administrators can enable GitHub Actions and configure enterprise settings.

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

Note

Die einzigen von GitHub unterstützten S3-Speicheranbieter sind Amazon S3 und MinIO Gateway für NAS.

Es gibt andere S3-API-kompatible Speicherprodukte, für die sich GitHub-Partner selbst validiert haben, wenn sie mit GitHub Actions auf GitHub Enterprise Server arbeiten. Weitere Informationen findest du im Repository für GHES-Speicherpartner.

Für Speicherprodukte, die über das GitHub-Technologiepartnerschaftprogramm validiert wurden, ist der Speicheranbieter für den Support und die Dokumentation für die Verwendung des Speicherprodukts mit GitHub Actions verantwortlich.

Stelle vor dem Aktivieren von GitHub Actions sicher, dass du die folgenden Schritte ausgeführt hast:

  • Erstelle deinen Amazon S3-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 GitHub Enterprise Server-Domäne konfiguriert werden. Weitere Informationen findest du unter TLS konfigurieren.

    Note

    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 Sie einen HTTP-Proxyserver auf GitHub konfiguriert haben:

  • Sie müssen .localhost, 127.0.0.1 und ::1 zu der HTTP-Proxy-Ausschlussliste hinzufügen (in dieser Reihenfolge).

  • 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 Amazon S3 mithilfe von OIDC (empfohlen)

Um GitHub Enterprise Server für die Verwendung von OIDC (OpenID Connect) mit einem Amazon S3-Bucket zu konfigurieren, musst du zuerst einen Amazon-OIDC-Anbieter erstellen, dann eine IAM-Rolle (Identity & Access Management) erstellen und schließlich GitHub Enterprise Server für den Zugriff auf den S3-Bucket mit dem Anbieter und der Rolle konfigurieren.

1. Erstellen eines Amazon-OIDC-Anbieters

  1. Rufe den Fingerabdruck für deine GitHub Enterprise Server-Instanz ab.

    1. Verwende den folgenden OpenSSL-Befehl, um den SHA1-Fingerabdruck für deine GitHub Enterprise Server-Instanz abzurufen, und ersetze dabei HOSTNAME durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz.

      Shell
      openssl s_client -connect HOSTNAME:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -sha1 -in /dev/stdin
      

      Beispiel:

      openssl s_client -connect my-ghes-host.example.com:443 < /dev/null 2>/dev/null | openssl x509 -fingerprint -noout -sha1 -in /dev/stdin
      

      Der Befehl gibt einen Fingerabdruck im folgenden Format zurück:

      SHA1 Fingerprint=AB:12:34:56:78:90:AB:CD:EF:12:34:56:78:90:AB:CD:EF:12:34:56
      
    2. Entferne die Doppelpunkte (:) aus dem Fingerabdruckwert, und speichere den Wert zur späteren Verwendung.

      Der Fingerabdruck für den im vorherigen Schritt zurückgegebenen Wert lautet beispielsweise wie folgt:

      AB1234567890ABCDEF1234567890ABCDEF123456
      
  2. Verwende den folgenden Befehl in der AWS-Befehlszeilenschnittstelle (Command Line Interface, CLI), um einen OIDC-Anbieter für deine GitHub Enterprise Server-Instanz zu erstellen. Ersetze HOSTNAME durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz und THUMBPRINT durch den Fingerabdruckwert aus dem vorherigen Schritt.

    Shell
    aws iam create-open-id-connect-provider \
      --url https://HOSTNAME/_services/token \
      --client-id-list "sts.amazonaws.com" \
      --thumbprint-list "THUMBPRINT"
    

    Beispiel:

    Shell
    aws iam create-open-id-connect-provider \
      --url https://my-ghes-host.example.com/_services/token \
      --client-id-list "sts.amazonaws.com" \
      --thumbprint-list "AB1234567890ABCDEF1234567890ABCDEF123456"
    

    Weitere Informationen zum Installieren der AWS-CLI findest du in der Amazon-Dokumentation.

    Warning

    Wenn sich das Zertifikat für deine GitHub Enterprise Server-Instanz in Zukunft ändert, musst du den Fingerabdruckwert im Amazon-OIDC-Anbieter aktualisieren, damit die OIDC-Vertrauensstellung weiter funktioniert.

2. Erstellen einer IAM-Rolle

  1. Öffne die AWS-Konsole, und wechsle zum Identity & Access Management-Dienst (IAM).

  2. Wähle im linken Menü unter „Zugriffsverwaltung“ die Option Rollen und dann Rolle erstellen aus.

  3. Wähle auf der Seite „Vertrauenswürdige Entität auswählen“ die folgenden Optionen aus:

    • Wähle für „Typ der vertrauenswürdigen Entität“ die Option Webidentität aus.
    • Wähle für „Identitätsanbieter“ im Dropdownmenü Anbieter auswählen den OIDC-Anbieter aus, den du in den vorherigen Schritten erstellt hast. Der Name sollte HOSTNAME/_services/token lauten, wobei HOSTNAME der öffentliche Hostname für deine GitHub Enterprise Server-Instanz ist.
    • Wähle unter „Zielgruppe“ die Option sts.amazonaws.com aus.
  4. Klicke auf Weiter.

  5. Suche auf der Seite „Add permissions“ mithilfe des Filters nach der Richtlinie AmazonS3FullAccess, und wähle sie aus.

  6. Klicke auf Weiter.

  7. Gib auf der Seite „Benennen, überprüfen und erstellen“ einen Namen für die Rolle ein, und wähle dann Rolle erstellen aus.

  8. Wähle auf der IAM-Seite „Rollen“ die Rolle aus, die du gerade erstellt hast.

  9. Notiere unter „Zusammenfassung“ den ARN-Wert (Amazon Resource Name) für die Rolle, da dieser später benötigt wird.

  10. Wähle die Registerkarte Vertrauensstellungen und dann Vertrauensrichtlinie bearbeiten aus.

  11. Bearbeite die Vertrauensrichtlinie, um einen neuen sub-Anspruch hinzuzufügen. Der Wert für Condition muss dem folgenden Beispiel entsprechen. Ersetze dabei HOSTNAME durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz:

    ...
    "Condition": {
      "StringEquals": {
        "HOSTNAME/_services/token:aud": "sts.amazonaws.com",
        "HOSTNAME/_services/token:sub": "HOSTNAME"
      }
    }
    ...
    

    Beispiel:

    ...
    "Condition": {
      "StringEquals": {
        "my-ghes-host.example.com/_services/token:aud": "sts.amazonaws.com",
        "my-ghes-host.example.com/_services/token:sub": "my-ghes-host.example.com"
      }
    }
    ...
    
  12. Wähle Richtlinie aktualisieren aus.

3. Konfigurieren von GitHub Enterprise Server zum Herstellen einer Verbindung mit Amazon S3 mithilfe von OIDC

  1. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.

  2. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

  3. Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.

  4. Klicke auf der Randleiste unter „Einstellungen“ auf Aktionen.

  5. Wähle unter „GitHub Actions“ die Option GitHub Actions aktivieren aus.

  6. Klicke unter „Artefakt- und Protokollspeicher“ neben „Amazon S3“ auf Einrichtung.

  7. Wähle unter „Authentifizierung“ die Option OpenID Connect (OIDC) aus, und gib die Werte für deinen Speicher ein:

    • AWS S3 Bucket: Der Name deines S3-Buckets.
    • AWS-Rolle: Der ARN für die Rolle, die du in den vorherigen Schritten erstellt hast. Beispiel: arn:aws:iam::123456789:role/my-role-name.
    • AWS-Region: Die AWS-Region für deinen Bucket. Beispiel: us-east-1.
  8. 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.

  9. Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.

    Note

    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.

  10. Warten Sie auf den Abschluss der Konfigurationsausführung.

Aktivieren von GitHub Actions mit Amazon S3-Speicher mithilfe von Zugriffsschlüsseln

  1. Erstelle mithilfe der AWS-Konsole oder der AWS-CLI einen Zugriffsschlüssel für deinen Speicherbucket. GitHub Actions erfordert die folgenden Berechtigungen für den Zugriffsschlüssel, der auf den Bucket zugreift:

    • s3:PutObject
    • s3:GetObject
    • s3:ListBucketMultipartUploads
    • s3:ListMultipartUploadParts
    • s3:AbortMultipartUpload
    • s3:DeleteObject
    • s3:ListBucket
    • kms:GenerateDataKey(wenn die Verschlüsselung mit dem Schlüsselverwaltungsdienst (Key Management Service, KMS) aktiviert wurde)
    • kms:Decrypt(wenn die Verschlüsselung mit dem Schlüsselverwaltungsdienst (Key Management Service, KMS) aktiviert wurde)

    Weitere Informationen zur Verwaltung von AWS-Zugriffsschlüsseln findest du in der Dokumentation zu AWS Identity and Access Management.

  2. Klicke in einem Verwaltungskonto auf GitHub Enterprise Server und dann in der rechten oberen Ecke einer beliebigen Seite auf „“.

  3. Wenn du dich nicht bereits auf der Seite „Websiteadministrator“ befindest, klicke in der oberen linken Ecke auf Websiteadministrator.

  4. Wähle auf der Randleiste „ Websiteadministrator“ die Option Verwaltungskonsole aus.

  5. Klicke auf der Randleiste unter „Einstellungen“ auf Aktionen.

  6. Wähle unter „GitHub Actions“ die Option GitHub Actions aktivieren aus.

  7. Klicke unter „Artefakt- und Protokollspeicher“ neben „Amazon S3“ auf Einrichtung.

  8. Wähle unter „Authentifizierung“ die Option Basierend auf Anmeldeinformationen aus, und gib die Details deines Speicherbuckets ein:

    • URL des AWS-Diensts: Die Dienst-URL für deinen Bucket. Wurde dein S3-Bucket z. B. in der us-west-2-Region erstellt, sollte dieser Wert https://s3.us-west-2.amazonaws.com lauten.

      Weitere Informationen findest du in der AWS-Dokumentation unter AWS-Dienstendpunkte.

    • AWS S3 Bucket: Der Name deines S3-Buckets.

    • AWS S3-Zugriffsschlüssel und geheimer AWS S3-Schlüssel: Die ID des AWS-Zugriffsschlüssels und der geheime Schlüssel für deinen Bucket

  9. 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.

  10. Klicke auf der Randleiste unter „Einstellungen“ auf Einstellungen speichern.

    Note

    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.

  11. Warten Sie auf den Abschluss der Konfigurationsausführung.

Nächste Schritte

Nachdem die Konfigurationsausführung erfolgreich abgeschlossen wurde, werden GitHub Actions für GitHub 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.