Skip to main content

Aktivieren von GitHub Actions mit Amazon S3-Speicher

Sie können GitHub Actions auf GitHub Enterprise Server aktivieren und Amazon S3-Speicher verwenden, um die bei Workflow-Ausführungen generierten Daten zu speichern.

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.

Tipp

Wenn GitHub Actions bereits konfiguriert ist und Sie die Daten in einen neuen Bucket, ein neues Konto oder eine neue Region auf Amazon S3 verschieben müssen, siehe Migration des externen Speichers für GitHub Actions.

Voraussetzungen

Hinweis

Die einzigen GitHubunterstü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.

Stellen Sie vor dem Aktivieren GitHub Actionssicher, dass Sie die folgenden Schritte ausgeführt haben:

  • 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 finden Sie 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 finden Sie 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 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.

Aktivierung von GitHub Actions für Amazon S3 mithilfe von OIDC (empfohlen)

Um die Verwendung von OIDC mit einem Amazon S3-Bucket zu konfigurieren GitHub Enterprise Server , müssen Sie zuerst einen Amazon OIDC-Anbieter erstellen und dann eine Identitäts- und Zugriffsverwaltungsrolle (IAM) erstellen und schließlich konfigurieren GitHub Enterprise Server , um den Anbieter und die Rolle für den Zugriff auf Ihren S3-Bucket zu verwenden.

1. Erstellen eines Amazon-OIDC-Anbieters

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

    1. Verwenden Sie den folgenden OpenSSL-Befehl, um den SHA1-Fingerabdruck für deine GitHub Enterprise Server-Instanz abzurufen, wobei Sie HOSTNAME durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz ersetzen.

      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. Verwenden Sie mit der AWS CLI den folgenden Befehl, um einen OIDC-Provider für deine GitHub Enterprise Server-Instanz zu erstellen. Ersetzen Sie HOSTNAME 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.

    Warnung

    Wenn sich das Zertifikat für deine GitHub Enterprise Server-Instanz in Zukunft ändert, müssen Sie den Thumbprint-Wert beim Amazon-OIDC-Anbieter aktualisieren, damit die OIDC-Vertrauensstellung weiterhin 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. Er sollte benannt HOSTNAME/_services/tokenwerden , wobei HOSTNAME der öffentliche Hostname für deine GitHub Enterprise Server-Instanz.
    • 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 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, wobei HOSTNAME durch den öffentlichen Hostnamen für deine GitHub Enterprise Server-Instanz ersetzt wird:

    ...
    "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 Sie GitHub Enterprise Server für die Verbindung mit Amazon S3 mithilfe von OIDC

  1. Klicke in einem Verwaltungskonto für GitHub Enterprise Server 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. Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.

  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.

    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.

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

Aktivierung von GitHub Actions mit Amazon-S3-Speicher unter Verwendung 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 für GitHub Enterprise Server 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. Klicke in der Randleiste „ Site admin“ auf Verwaltungskonsole.

  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.

    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.

  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.