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.
securitykubernetessecretsvault