How to Handle Secrets in Helm
Blog post from GitGuardian
Helm charts create a security challenge because they are designed for sharing and version control while Kubernetes Secrets are only base64 encoded, meaning credentials committed in manifests or values files remain effectively exposed. The guide presents two main strategies: encrypting secrets stored in Git with helm-secrets and SOPS or Sealed Secrets, or keeping values outside charts and retrieving them at deployment through External Secrets Operator or Vault Secrets Operator. It recommends SOPS with age rather than PGP for new encrypted-file workflows because age simplifies key management, while noting that cloud KMS with workload identity can further reduce private-key exposure in CI. External Secrets Operator is positioned as the general default for organizations using secret managers because it supports many providers, requires no special tooling on Helm, Argo CD, Flux, or GitHub Actions runners, and continuously synchronizes values into Kubernetes Secrets. Sealed Secrets suits GitOps workflows that want encrypted manifests and no external secret-manager dependency, whereas Vault Secrets Operator is most useful for Vault-specific features such as dynamic credentials. Across all approaches, strong RBAC, encryption at rest, environment-separated keys, audit logs, secret scanning, least-privilege access, and automated pod restarts with Reloader are emphasized, since updating a Secret alone does not restart workloads using its old value.
| Trend | Post Mentions | Total Month Mentions | Posts | Companies | MoM |
|---|---|---|---|---|---|
| Secrets Management | 200 | 991 | 174 | 74 | -68% |
| Kubernetes | 18 | 1,368 | 107 | 49 | -73% |
Use this post, company, and trend context to find content marketing opportunities, perform competitive analysis, or address product feature gaps via the Plushcap MCP server or the Plushcap API.