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
- Azure Key Vault
- AWS Secrets Manager / Parameter Store
- Google Cloud Secret Manager
- HashiCorp Vault
- 1Password
- Kubernetes (ClusterSecretStore)