Zum Hauptinhalt springen

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.

  1. Generieren eines Sealed Secret durch ausfüllen des Formulares im Secrets Generator Tab.

  2. Sealed Secret herunterladen.

  3. Anwenden via kubectl.

    $ kubectl apply -f ~/Downloads/cloudsql-prod.yaml
    sealedsecret.bitnami.com/cloudsql-prod created
  4. Ü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.