Konfiguration und Berechtigungen getrennt GitHub sichert Deployments mit OpenID Connect

Von Stephan Augsten

Um Continuous-Delivery-Workflows besser abzusichern, unterstützt GitHub Actions seit neuestem OpenID Connect, kurz OICD. Somit lässt sich die Cloud-Bereitstellung so konfigurieren, dass ablaufende Zugriffstoken direkt vom Cloud-Anbieter angefordert werden.

Firma zum Thema

Der OpenID-Connect-Ablauf bei GitHub.
Der OpenID-Connect-Ablauf bei GitHub.
(Bild: GitHub)

Viele Cloud-Anbieter unterstützen bereits OIDC, darunter AWS, Azure, GCP und HashiCorp Vault. Ohne OpenID Connect wäre es notwendig, einen Berechtigungsnachweis oder ein Token als verschlüsseltes Secret in GitHub zu speichern und bei jeder Ausführung an den Cloud-Anbieter zu übermitteln.

GitHub-User müssen somit keine Cloud-Anmeldeinformationen mehr bei GitHub hinterlegen. Stattdessen können sie die OIDC-Vertrauenswürdigkeit des Cloud Providers konfigurieren und dann die entsprechenden Workflows aktualisieren. Auf Basis der Authentifizierungs- und Autorisierungstools des jeweiligen Cloud-Anbieters lässt sich genau steuern, welche Workflows auf Cloud-Ressourcen zugreifen können.

Auf diesem Weg sind die bei GitHub hinterlegten Konfigurationsdateien klar von den Berechtigungen getrennt. Ein weiterer Vorteil dieser Methode: Das Token ist kurzlebig und nur für einen einzigen Workflow-Job gültig, anschließend läuft es automatisch ab.

GitHub hat den Ablauf noch einmal genau beschrieben:

Der OpenID-Connect-Ablauf bei GitHub.
Der OpenID-Connect-Ablauf bei GitHub.
(Bild: GitHub)

  • 1. Developer richten das OIDC-Vertrauensverhältnis für ihre Cloud-Rollen ein, um den Zugriff zwischen ihren Bereitstellungsworkflows und Cloud-Ressourcen zu verwalten.
  • 2. Bei jeder Bereitstellung kann ein GitHub-Actions-Workflow nun ein OIDC-Token generieren. Dieses Token enthält alle Metadaten, die dem Workflow eine sichere, überprüfbare Identität bescheinigen.
  • 3. Im Zuge der Anmeldeaktivität wird das Token abgerufen.
  • 4. Der Cloud-Anbieter prüft dann die Angaben im OIDC-Token anhand der Cloud-Rollendefinition und stellt seinerseits ein Zugriffstoken zur Verfügung. Actions und Schritte innerhalb desselben Workflow-Jobs können dieses Zugriffstoken verwenden, um sich mit den Cloud-Ressourcen zu verbinden und diese bereitzustellen. Das Token läuft ab, wenn der Workflow-Auftrag abgeschlossen ist.

Um die Verwendung von OIDC für die Bereitstellung zu vereinfachen, haben wir mit beliebten Cloud-Partnern wie AWS, Azure, GCP und HashiCorp zusammengearbeitet, um die OIDC-Unterstützung zu ihren offiziellen Anmeldeaktionen hinzuzufügen. Erfahren Sie mehr darüber, wie Sie Ihre Cloud-Bereitstellungen durch die Verwendung von OIDC sichern können. Sehen Sie sich auch unseren GitHub Universe-Vortrag über die Unterstützung von Open ID Connect (OIDC) in GitHub an.

(ID:47841820)