Know-How
Secrets v Kubernetes
Kubernetes Secrets jsou base64 encoded, ne šifrované. Pro produkci potřebujete lepší řešení.
Problémy s K8s Secrets
- Base64 != šifrování
- Viditelné v etcd (pokud není encryption at rest)
- Přístupné přes API každému s RBAC oprávněním
External Secrets Operator
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: app-secrets
spec:
refreshInterval: 1h
secretStoreRef:
name: vault
kind: ClusterSecretStore
data:
- secretKey: DB_PASSWORD
remoteRef:
key: secret/myapp
property: db_password
Sealed Secrets
# Šifrování secretu
kubeseal --format yaml < secret.yaml > sealed-secret.yaml
# sealed-secret.yaml je bezpečný pro Git!
Klíčový takeaway
Nikdy plain K8s Secrets v Gitu. External Secrets Operator + Vault pro produkci, Sealed Secrets pro GitOps.