External Secrets Operator

Zweck

External Secrets Operator verwaltet Kubernetes Secrets deklarativ.

Der Operator erzeugt Kubernetes Secrets auf Basis von ExternalSecret-Ressourcen.

Ziele

  • GitOps-kompatibles Secret Management

  • Trennung von Secret Definition und Secret Nutzung

  • Automatische Secret-Erzeugung

  • Vorbereitung für externe Secret Backends

Architektur

ExternalSecret
        |
        v
External Secrets Operator
        |
        v
Kubernetes Secret
        |
        v
Anwendung

Der Operator überwacht ExternalSecret-Ressourcen und erzeugt daraus die entsprechenden Kubernetes Secrets.

Deployment Modell

External Secrets Operator ist im Cluster home-tamay-cloud installiert.

Aktuell wird der Operator nur eingeschränkt verwendet.

Aktueller Einsatz

Der Operator wird derzeit hauptsächlich zur Erzeugung von Kubernetes Secrets innerhalb des Clusters genutzt.

Ein externes Secret Backend ist aktuell nicht eingerichtet.

Secret Backends

Aktuell verwendete Backends:

  • Keine

Mögliche zukünftige Backends:

  • HashiCorp Vault

  • Bitwarden

  • 1Password

  • Infisical

  • Kubernetes Secret Store

Derzeit werden Secrets weiterhin überwiegend über SOPS verwaltet.

Weitere Informationen:

Beispiel

apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
  name: application-secret
spec:
  refreshInterval: 1h

Verhältnis zu SOPS

Die Plattform verwendet aktuell primär SOPS zur Verwaltung sensibler Daten.

SOPS schützt Secrets im Git Repository.

External Secrets Operator ermöglicht hingegen die automatische Bereitstellung von Secrets innerhalb des Clusters.

Beide Ansätze können gemeinsam verwendet werden.

Vorteile

  • Kubernetes-native Integration

  • Deklarative Verwaltung

  • Vorbereitung für externe Secret Backends

  • Automatische Secret-Erzeugung

Einschränkungen

  • Aktuell kein externes Secret Backend

  • Begrenzte Nutzung innerhalb der Plattform

  • Zusätzliche Komplexität gegenüber reinem SOPS

Betrieb

External Secrets anzeigen

kubectl get externalsecrets -A

Secret Stores anzeigen

kubectl get secretstores -A
kubectl get clustersecretstores

Operator prüfen

kubectl get pods -n external-secrets

Logs anzeigen

kubectl logs \
  -n external-secrets \
  deployment/external-secrets

Verwandte Dokumente