Sealed Secrets
Sealed Secrets verschlüsselt Kubernetes Secrets, damit diese ohne Bedenken in einem git Repository gespeichert werden können.
Details
Der Inhalt eines Kubernetes Secret ist üblicherweise nicht verschlüsselt, wodurch es nicht zu empfehlen ist das Secret zusammen mit anderen Kubernetes Definitionen in der Versionskontrolle oder an einem ungesicherten Ort zu speichern. Dadurch werden manuelle und fehleranfällige Schritte notwendig um eine Applikation zu Deployen. Als Lösung betreiben wir einen Controller, der das Entschlüsseln der Sealed Secrets übernimmt um diese in normale Secret Objekte umwandelt.
Verfügbarkeit
Sealed Secrets sind standardmässig Teil von nine Managed GKE.
Nutzung
Der einfachste Weg ein Sealed Secret zu erstellen ist durch unseren Generator auf runway.
-
Generieren eines Sealed Secret durch ausfüllen des Formulares im Secrets Generator Tab.
-
Sealed Secret herunterladen.
-
Anwenden via
kubectl
.$ kubectl apply -f ~/Downloads/cloudsql-prod.yaml
sealedsecret.bitnami.com/cloudsql-prod created -
Überprüfen des Secret, welches der Controller für uns erstellt hat.
$ kubectl get secret cloudsql-prod --template={{.data.password}} | base64 -d
s#g{eJJ#O)p~VCHVNt26*WGD3
Um das Secret zu löschen, kann einfach das Sealed Secret gelöscht werden und der Controller wird auch das Secret Objekt entfernen.
$ kubectl delete sealedsecret cloudsql-prod
sealedsecret.bitnami.com "cloudsql-prod" deleted
Beachten Sie, dass wir in einem produktiven Szenario nicht empfehlen das Sealed Secret lokal mit kubectl
anzuwenden. Stattdessen können Sie es in Ihrem Konfigurations Repository speichern und Argo CD das erstellen überlassen.