GitOps: CI/CD-Pipelines für Terraform absichern

Bei GitOps baut man oft CI/CD-Pipelines. Für den Terraform-Code in den Git-Repositorys gibt es Fallstricke, die sich mit ein paar Grundregeln umgehen lassen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
Lesezeit: 13 Min.
Von
  • Armin Berberovic
Inhaltsverzeichnis

GitOps ist ein Administrationsstil, bei dem die Cloud-Umgebung mit Infrastructure-as-Code-Sprachen wie Terraform beschrieben und zentral bereitgestellt wird. Für diese Bereitstellung dienen CI/CD-Pipelines, die Repository und Cloud synchronisieren. Die Vorteile liegen auf der Hand: Es erleichtert nicht nur die konsistente und wiederholbare Bereitstellung von Ressourcen, sondern ermöglicht ihre Verwaltung mit etablierten Methoden der Softwareentwicklung. Will man aber vertraute Zugriffskonzepte in die neue GitOps-Welt übertragen, ist Vorsicht geboten. Um Sicherheitslücken zu vermeiden, sind die Repositorys sorgfältig an die Anforderungen dieser neuen Verwaltungsmethode anzupassen. Der Artikel verwendet zur Illustration GitHub, Terraform und Azure, die Grundregeln sind aber ebenso auf andere Cloud-Anbieter anwendbar.

CI/CD-Pipelines sind die wesentliche Stütze des Software Development Lifecycle und gestalten ihn durch Automatismen schneller und sicherer. Sie können je nach Reifegrad viele Schritte beinhalten, die vom Kompilieren des Codes über Unit-Tests und statische Codeanalyse bis hin zum Deployment reichen. Für viele dieser Schritte gibt es Tools, deren Ausführung CI/CD-Plattformen wie GitHub Actions verwalten.

Mehr zum Thema GitOps
Armin Berberovic

Armin Berberovic ist Senior IT Security Architect in der Luftfahrtindustrie und hat mehrere Jahre Berufserfahrung im Bereich Sicherheit für Cloud und Cloud-native Technologien, die er in seinem Blog cloudsec42.com mit der Community teilt.

Der Vielfalt, der man in der Praxis begegnet, kann man mit einer modellhaften Darstellung einer Pipeline entfliehen. Sie besteht im Wesentlichen aus nur drei Bestandteilen: einem GitHub-Repository, einem dazugehörigen GitHub-Actions-Workflow sowie einem Service-Account mit Berechtigungen in Azure. Das Repository ist dafür zuständig, den Code zu verwalten, während der Service-Account sich darum kümmert, Änderungen nach Azure zu synchronisieren. Der GitHub-Workflow ist der Kern der Pipeline und beschreibt, wie aus Code in GitHub eine Liveumgebung in der Cloud entsteht. Dieser Prozess kann aus beliebig vielen Schritten bestehen, die etwa eine statische Codeanalyse vorsehen. In früheren Artikeln wurden solche Codescanner für Terraform bereits beschrieben, bewertet und aufgebohrt.

Das war die Leseprobe unseres heise-Plus-Artikels "GitOps: CI/CD-Pipelines für Terraform absichern". Mit einem heise-Plus-Abo können sie den ganzen Artikel lesen und anhören.