Kubernetes-Secrets verschlüsselt in Git speichern mit Sealed Secrets

Mit dem Werkzeug Sealed Secrets kann man Kubernetes-Secrets verschlüsselt in Git-Repositories ablegen, ohne seine Geheimnisse allen zugänglich zu machen.

Artikel verschenken
In Pocket speichern vorlesen Druckansicht
, KI Midjourney  Bearbeitung: c’t

(Bild: KI Midjourney | Bearbeitung: c’t)

Lesezeit: 10 Min.
Von
  • Manuel Ottlik
Inhaltsverzeichnis

Es gibt viele gute Gründe, die YAML-Definitionen für Kubernetes-Ressourcen nicht auf den Rechnern von Admins herumliegen zu lassen und per Hand mit dem Befehl kubectl apply in ein oder mehrere Cluster zu transportieren. Über kurz oder lang kommt es zu Abweichungen zwischen dem Inhalt der lokalen YAML-Dateien und den Clustern. Stattdessen spricht viel dafür, die Definitionen mit einem Paketmanager wie Helm zu verpacken und einem Continuous-Deployment-Werkzeug wie Argo CD die Aufgabe zu überlassen, diese Pakete im Cluster aktuell zu halten. Den sogenannten GitOps-Ansatz haben wir bereits ausführlich beschrieben.

Alle Kubernetes-Objekte, die in Ihrem Cluster laufen sollen, liegen bei dieser Strategie in Git-Repositories und Änderungen können Sie und Ihre Kollegen elegant nachvollziehen. Alle Objekte? Nein, ein Typ bleibt außen vor: Kubernetes-Secrets sollten Sie definitiv nicht als YAML in ein Git-Repository legen, weil sie sonst nicht mehr wirklich geheim wären. Zu solchen Secrets gehören API-Schlüssel für externe Anwendungen, Datenbankkennwörter oder Admin-Zugangsdaten.

Mehr zu Kubernetes

Um Geheimnisse auf sichere Weise in den Cluster zu bekommen, ohne die eigene GitOps-Strategie zu unterwandern, gibt es im Kern zwei Möglichkeiten: einen Kubernetes-Geheimnisspeicher, der in den meisten Fällen außerhalb des Clusters an zentraler Stelle steht, oder das kleine Open-Source-Projekt Sealed Secrets aus dem Hause Bitnami. Die VMware-Tochter hat sich darauf spezialisiert, Softwareinstallationen in der Cloud zu vereinfachen.