Let's Deploy with ayedo, Teil 1: GitLab CI/CD, Harbor Registry, Vault Secrets
TL;DR GitLab CI/CD wird zum zentralen Orchestrator Ihres Delivery-Workflows: klar strukturierte …
Diese Serie erklärt systematisch, wie moderne Software compliant entwickelt und betrieben wird – von EU-Regulierungen bis zur technischen Umsetzung.
Secrets Management ist nicht nur ein Security-Thema, sondern eine Grundvoraussetzung für jede ernstzunehmende Compliance-Strategie. Wer Zugangsdaten, Tokens oder Verschlüsselungs-Keys verliert, verliert im Zweifel auch die Kontrolle über Daten, Systeme und Reputation.
Mit der GDPR (anwendbar seit dem 25.05.2018), der NIS-2-Richtlinie (in Kraft seit dem 16.01.2023, mit Umsetzungsfrist bis zum 17.10.2024) und der DORA-Verordnung (gilt ab dem 17.01.2025) steigt der Druck, Sicherheitsmaßnahmen strukturiert und nachweisbar umzusetzen. Artikel 32 GDPR fordert explizit „geeignete technische und organisatorische Maßnahmen“, insbesondere Verschlüsselung und Zugriffskontrolle.
In modernen, verteilten Infrastrukturen – mit mehreren Kubernetes-Clustern, GitOps, Multi-Cloud und Lieferketten aus Drittanbietern – genügt es nicht mehr, Secrets „irgendwo sicher abzulegen“. Ein zeitgemäßes Konzept muss:
HashiCorp Vault in Kombination mit dem External Secrets Operator adressiert genau diese Anforderungen – ohne die Entwicklerproduktivität zu opfern.
Secrets direkt im Git-Repository zu speichern, ist aus heutiger Sicht kaum zu rechtfertigen:
Selbst mit Verschlüsselungslösungen rund um Git (z. B. SOPS) bleibt die Herausforderung: Zugriff auf Git bedeutet häufig auch Zugriff auf die verschlüsselten Artefakte und deren Schlüsselmaterial, wenn Governance und Schlüsselmanagement nicht sehr strikt aufgesetzt sind.
Kubernetes-Secrets sind ein Fortschritt gegenüber Klartext-Umgebungsvariablen, aber konzeptionell begrenzt:
Für einfache Szenarien sind Kubernetes Secrets ausreichend. In regulierten Umgebungen mit vielen Anwendungen, Mandanten oder Clustern stoßen sie jedoch an ihre Grenzen.
Vault bringt einen dedizierten Secret Store mit:
In einem Zero-Trust-Ansatz wird Vault zur „Source of Truth“ für alle Secrets – Kubernetes ist dann nur noch ein kontrollierter Konsument über ESO.
Vault abstrahiert Secrets über sogenannte Secrets Engines. Wichtige Beispiele:
Dynamic Secrets sind hier besonders relevant: Für eine PostgreSQL-Datenbank generiert Vault auf Anfrage kurzlebige Zugangsdaten, mit:
Damit werden klassische „Shared Credentials“ durch temporäre, anwendungs- oder dienstspezifische Identitäten ersetzt – ein enormer Sicherheitsgewinn.
Mit der Transit Secrets Engine bietet Vault „Encryption as a Service“:
Das erfüllt nicht nur Verschlüsselungsanforderungen aus Artikel 32 GDPR, sondern reduziert auch die Angriffsfläche für Key-Diebstahl signifikant.
Jeder Zugriffsversuch auf Vault – erfolgreich oder nicht – kann in Audit-Backends wie Files, Syslog oder SIEM-Systemen protokolliert werden:
Zusammen mit klar definierten Policies entsteht ein nachvollziehbares, revisionsfähiges Kontrollsystem, das auch für NIS‑2- und DORA-Audits belastbare Nachweise liefert.
Der External Secrets Operator (ESO) ist ein Kubernetes Operator, der externe Secret Stores wie Vault mit dem Cluster verbindet:
Damit müssen Applikationsteams nicht direkt mit Vault-APIs oder -Policies arbeiten. Sie definieren lediglich, welche Secrets sie benötigen, in welchem Namespace, und welches Backend zuständig ist. ESO übernimmt:
Aus Sicht des Pods bleibt alles beim Alten: Er konsumiert ganz normale Kubernetes Secrets. Das komplexe, aber notwendige Sicherheits- und Compliance-Gerüst liegt dahinter.
Ein praxistauglicher Zero-Trust-Workflow könnte wie folgt aussehen:
Platform Admin
Verantwortet zentrale Infrastruktur wie Datenbanken, Vault-Cluster und Kubernetes-Basiskomponenten. Er definiert, welche Systeme über Vault verwaltet werden und legt Policies fest.
Vault
Enthält alle relevanten Credentials, sei es in KV-Stores oder als Dynamic Secrets. Für Datenbanken wie PostgreSQL werden Rollen eingerichtet, die anwendungsspezifische Credentials generieren und rotieren.
External Secrets Operator
Läuft in den jeweiligen Clustern und ist so konfiguriert, dass er auf die passenden Vault-Pfade zugreifen darf – streng begrenzt über Policies und Kubernetes Service Accounts.
Kubernetes & GitOps
Applikationsteams definieren ExternalSecret-Ressourcen in ihren Git-Repositories. GitOps-Werkzeuge wie Argo CD spielen diese ins Cluster ein. ESO erzeugt daraus die konkreten Kubernetes Secrets.
Applikation
Nutzt die bereitgestellten Secrets über Umgebungsvariablen oder Volume Mounts, ohne die Herkunft zu kennen. Rotation wird transparent gehandhabt; im besten Fall erfolgt ein Rolling Restart automatisiert, wenn sich kritische Secrets ändern.
In diesem Modell berühren sensible Informationen weder Git noch CI/CD-Systeme. Sie bleiben in Vault und wandern über ESO kontrolliert in die Laufflächen.
Nehmen wir eine PostgreSQL-Datenbank, die von einem Plattformteam bereitgestellt wird – etwa über CloudNativePG oder einen gemanagten Cloud-Service.
Datenbankbereitstellung
Der Platform Admin erstellt die Datenbank und konfiguriert in Vault eine Database Secrets Engine für PostgreSQL. Dort werden Rollen definiert, die anwendungsspezifische User erzeugen können, mit begrenzten Rechten und klarer TTL.
Vault-Konfiguration
Für jede Anwendung gibt es einen Vault-Pfad (z. B. pro Team oder Service). Policies erlauben ESO nur den Zugriff auf die Pfade, die zum jeweiligen Namespace gehören. Dynamic Secrets sorgen dafür, dass Credentials regelmäßig erneuert werden.
ESO-Anbindung
Im Kubernetes-Cluster ist ESO so konfiguriert, dass er sich gegenüber Vault authentifizieren kann (beispielsweise über die Kubernetes Auth Method). Ein SecretStore-Objekt beschreibt, wo Vault erreichbar ist und wie die Authentifizierung läuft.
ExternalSecret durch das App-Team
Das Applikationsteam beschreibt in seinem Git-Repository ein ExternalSecret, das:
Laufzeitverhalten
ESO erzeugt das Kubernetes Secret, aktualisiert es bei Rotationen und sorgt dafür, dass die Anwendung stets gültige Credentials erhält. Weder Entwickler noch CI/CD-Pipelines sehen jemals die Klartext-Passwörter.
Dieses Muster lässt sich auf viele andere Systeme übertragen: Message-Broker, externe APIs, Cloud-Ressourcen – überall dort, wo Credentials im Spiel sind.
Ein Vault+ESO-Setup hilft, regulatorische Anforderungen nicht nur „irgendwie“ zu erfüllen, sondern strukturiert nachweisen zu können.
Artikel 32 GDPR fordert u. a.:
Vault adressiert das, indem:
ESO ergänzt dies, indem er sicherstellt, dass Secrets nur kontrolliert in die Kubernetes-Laufzeit gelangen – ohne Streuverluste in Git oder CI/CD-Systemen.
Die NIS‑2-Richtlinie verlangt von Betreibern kritischer und wichtiger Einrichtungen ein hohes Niveau an Cyber-Sicherheit, inklusive:
Vault+ESO unterstützt hier, indem:
DORA fokussiert sich auf die digitale operationelle Resilienz im Finanzsektor. Für Secrets Management relevant sind:
Ein standardisiertes Vault+ESO-Pattern schafft:
Nein. Ein zentraler Vorteil des External Secrets Operators ist gerade, dass Anwendungen nicht direkt mit Vault interagieren müssen. Sie konsumieren weiterhin Kubernetes Secrets, während ESO im Hintergrund den sicheren Datenaustausch mit Vault übernimmt.
Für bestimmte High-Security-Szenarien kann ein direkter Vault-Zugriff sinnvoll sein (z. B. bei On-demand-Verschlüsselung über Transit Engines). Für den Großteil der Workloads ist das Muster „Vault → ESO → Kubernetes Secret → App“ jedoch ausreichend und operational deutlich einfacher.
Legacy-Anwendungen sind oft nicht in der Lage, Secrets zur Laufzeit neu zu laden. Hier bieten sich pragmatische Schritte an:
Wichtig ist, dass Sie auch bei Legacy-Systemen zumindest die zentrale Verwaltung und Auditfähigkeit erreichen – ESO hilft, ohne tiefgreifende Codeänderungen erste Verbesserungen umzusetzen.
Viele Organisationen unterschätzen den Aufwand für ein robustes Vault+ESO-Setup: Hochverfügbarkeit, Backup-Strategien, Policy-Design, Integration in CI/CD, Schulung von Teams. ayedo bringt hier Plattform- und Compliance-Erfahrung zusammen:
Weitere Fragen? Siehe unsere FAQ
Ein starkes Secrets-Management mit HashiCorp Vault und dem External Secrets Operator ist kein Selbstzweck. Es ist die technische Basis dafür, dass Ihre Plattform resilient, revisionssicher und zukunftsfähig bleibt – insbesondere unter den Rahmenbedingungen von GDPR, NIS‑2 und DORA.
In vielen Organisationen sehen wir ähnliche Muster: Es gibt bereits Kubernetes-Cluster, GitOps ist etabliert, vielleicht existiert sogar ein Vault-PoC. Was fehlt, ist eine konsistente Linie:
Genau hier setzt ayedo an. Wir verstehen Vault und ESO nicht als Insellösungen, sondern als integralen Bestandteil einer Cloud-Native-Plattform: vom sicheren Aufbau und Betrieb der Vault-Infrastruktur über die ESO-Integration in Ihre Cluster bis hin zur Einbettung in CI/CD, Observability und Governance.
Wenn Sie Vault+ESO nicht nur ausprobieren, sondern als dauerhaft tragfähige Basis für Zero-Trust-Secrets-Management etablieren wollen, begleiten wir Sie von der Architektur über das initiale Setup bis hin zur schrittweisen Migration Ihrer Anwendungen – mit einem besonderen Blick auf regulatorische Anforderungen und praktische Umsetzbarkeit im Alltag Ihrer Teams.
Wenn Sie diesen Schritt angehen möchten, starten Sie mit unserem gemeinsamen Vault + ESO Setup.
TL;DR GitLab CI/CD wird zum zentralen Orchestrator Ihres Delivery-Workflows: klar strukturierte …
TL;DR Guardrails sind automatisierte Leitplanken rund um Ihre Deployments: Sie verhindern typische …
TL;DR Klassische Container-Builds mit Docker Daemon, Root-Rechten und docker.sock im CI-System sind …