b'nerd GmbH b'nerd GmbH

Managed Services & Apps CI/CD Workflows mit GitLab CI und OIDC sichern

Erfahrt, wie ihr mit GitLab CI und OIDC eure CI/CD-Pipelines optimal absichert.

Automatisierung durch CI/CD Pipelines ist aus der heutigen, modernen Software- und Infrastructure-Entwicklung nicht mehr wegzudenken. Nicht nur typische “Works on my machine”-Fehler werden verhindert; dank Versionskontrolle, kontinuierlicher Integration und Tests wird auch die Zuverlässigkeit und Geschwindigkeit der Bereitstellung unserer Infrastruktur erhöht.

Wir vertrauen hierbei auf Gitlab CI, eine der führenden Plattformen für CI/CD-Automatisierung, und nutzen zur Authentifizierung und Autorisierung unserer Pipeline OIDC (OpenID Connect). In diesem Artikel wollen wir euch vorstellen, wie GitlabCI und OIDC zusammenarbeiten und worauf es bei der Implementierung ankommt.

Was ist OIDC?

OpenID Connect (OIDC) ist ein Authentifizierungsprotokoll, das auf dem OAuth 2.0-Framework aufbaut. Es ermöglicht die sichere Authentifizierung von Benutzern und Anwendungen durch die Verwendung von JWTs (JSON Web Tokens). Im Gegensatz zu long-term credentials, die als Gitlab CI Umgebungsvariablen gespeichert werden müssen, verwendet OIDC kurzlebige Tokens und reduziert so das Sicherheitsrisiko und den Aufwand, die entsprechenden Umgebungsvariablen regelmäßig zu rotieren.

Vorteile der Verwendung von GitLab CI mit OIDC

  1. Erhöhte Sicherheit: Wie bereits beschrieben werden durch den Einsatz von OIDC statische Zugangsdaten vermieden, was das Risiko von Kompromittierungen minimiert. Die Tokens sind zeitlich begrenzt und spezifisch für die Pipeline, die sie anfordert.
  2. Einfache Verwaltung: OIDC ermöglicht es, Identitäts- und Zugriffsmanagement zentral zu verwalten. Administratoren können Richtlinien festlegen, wer auf welche Ressourcen zugreifen darf, und sicherstellen, dass diese Zugriffe protokolliert und überprüfbar sind.
  3. Nahtlose Integration: GitLab CI lässt sich nahtlos mit verschiedenen Cloud-Providern und Diensten integrieren, die OIDC unterstützen. Dies vereinfacht die Konfiguration von Multi-Cloud-Umgebungen und ermöglicht eine konsistente Sicherheitsstrategie über verschiedene Plattformen hinweg.
  4. Skalierbarkeit und Flexibilität: Da OIDC ein standardisiertes Protokoll ist, lässt es sich leicht an unterschiedliche Anforderungen anpassen, sei es für kleine Startups oder große Unternehmen mit komplexen Infrastrukturbedürfnissen.

Und in der Praxis?

Die konkrete Implementierung unterscheidet sich je nach Cloud Provider, bei dem unsere Ressourcen bereitgestellt werden sollen. Dennoch gibt es einige zentrale Schritte, die unabhängig vom spezifischen Anbieter notwendig sind:

  1. OIDC Provider Konfiguration: Zunächst muss GitLab für den Cloud-Anbieter als vertrauenswürdiger OIDC Provider konfiguriert werden.
  2. Erstellung einer OIDC-Rolle: Im Cloud-Provider wird anschließend eine Rolle für Gitlab erstellt, die den OIDC-Token als vertrauenswürdig anerkennt. Eine Referenz auf diese Rolle muss (je nach Cloud-Provider und Setup) als Umgebungsvariable im entsprechenden Gitlab-Projekt angelegt werden.
  3. Vergabe von Berechtigungen: Die o.g. Rolle muss anschließend durch entsprechende Policies ausgestattet werden. In Bezug auf die Zugriffsrechte beim Cloud-Anbieter gilt auch hier das Prinzip des “Least Proviledge”, zudem können Rechte auf Gitlab-Group, -Project, -Branch oder -Tag Ebene limitiert werden.
  4. Konfiguration der GitLab CI/CD-Pipelines: Im letzten Schritt kann nun unsere Pipeline in Gitlab angepasst werden, sodass sie bei Bedarf OIDC-Tokens anfordert und verwendet. Je nach Setup und Pipeline-Gestaltung kann das Token als pre-script angefordert werden:
    .before-script:
        id_tokens:
            GITLAB_OIDC_TOKEN;
                 aud: https://gitlab.example.com
        before-script:
            - echo "${GITLAB_OIDC_TOKEN}" > /tmp/web_identity_token

Die Authentifizierung unterscheidet sich je nach Cloud Provider, siehe dazu auch die Gitlab-Dokumentation

Fazit

Die Kombination von GitLab CI und OIDC bietet uns eine leistungsstarke Möglichkeit, sichere CI/CD-Pipelines zu betreiben. Durch die Nutzung kurzlebiger OIDC-Tokens werden long-term credentials überflüssig – und damit die Sicherheit erhöht und die Verwaltung von Zugriffsrechten erleichtert.

Sie haben Fragen oder wünschen ein individuelles Angebot? Wir beraten Sie gerne.

Kontakt

Unsere Cloud Experten beraten Sie gerne und individuell.

Unser Büro

Sartoriusstraße 22

20257 Hamburg, Deutschland


Mo - Fr: 09.00 - 18.00 Uhr

Telefon
+49 40 239 69 754 0
Email
hello@bnerd.com