Helm – External Secrets

External Secrets synchronisiert Secrets aus externen Secret-Stores (z.B. Azure Key Vault, AWS Secrets Manager, HashiCorp Vault) automatisch als Kubernetes Secrets.

Installation

# CRDs installieren
kubectl apply -f "https://raw.githubusercontent.com/external-secrets/external-secrets/v2.4.0/deploy/crds/bundle.yaml" --server-side
kubectl get crds | grep externalsecrets

# Helm Chart installieren
helm repo add external-secrets https://charts.external-secrets.io
helm install external-secrets external-secrets/external-secrets \
  -n external-secrets --create-namespace --set installCRDs=false

helm -n external-secrets ls
kubectl get all -n external-secrets

Azure Key Vault Anbindung

# Azure Credentials konfigurieren
vim schulungk8s-azure-secrets.yaml   # Client-ID und Secret-ID eintragen
kubectl apply -f schulungk8s-azure-secrets.yaml
kubectl apply -f schulungk8s-secret-store.yaml
kubectl apply -f schulungk8s-external-secret.yaml

Secret synchronisieren und prüfen

kubectl get externalsecret schulungk8s
kubectl get secret postgres -o json | jq .data.POSTGRES_PASSWORD | tr -d '"' | base64 -d

Passwort in Azure Key Vault rotieren

# Altes Passwort im Cluster setzen
kubectl exec pod/postgres-0 -- psql -U postgres -c \
  "ALTER USER postgres PASSWORD 'new_secure_password' VALID UNTIL '2026-12-31';"

# Neues Passwort in Azure Key Vault aktualisieren
# External Secrets synchronisiert das neue Secret automatisch

kubectl get externalsecret schulungk8s
kubectl get secret postgres -o json | jq .data.POSTGRES_PASSWORD | tr -d '"' | base64 -d

Verfügbare Secret-Stores