External Secrets Operator

把外部密钥后端同步成 K8s Secret:Git 里只留「去哪取」,不留密文。

两个 CR 就是全部心智模型:SecretStore 声明「后端在哪、用什么身份认证」,ExternalSecret 声明「取哪几个键、拼成哪个 Secret」。控制器按刷新周期去后端取值并 upsert 成原生 Secret,应用侧照常用 `envFrom` / volume 读,完全不需要改。后端支持 Vault、OpenBao、云厂商 KMS、1Password、Doppler 等一长串。它解决的是 GitOps 的核心矛盾:清单要进 Git,密钥不能进 Git。

License
Apache-2.0
语言
Go
自托管
Helm Chart · K8s 清单
上游托管版
无
分类
密钥交付
仓库
github.com/external-secrets/external-secrets
上游文档
文档官网

上游活跃度

2026-08-23 抓取 · 数据来自 external-secrets/external-secrets (github)
star6,806
最近提交2026-08-19
最新版本helm-chart-2.9.02026-08-08

数字由构建期抓取,非实时;star 数不同代码托管平台之间不可直接比较。

运行依赖

  • 一个密钥后端,以及集群到该后端的认证路径(常用 Kubernetes ServiceAccount 认证)

上手前注意

  • 同步出来的仍是**普通 Secret**(etcd 里只是 base64)—— 它管的是「不进 Git」,不是「集群内加密」,那是 etcd 加密与 RBAC 的事
  • 后端不可达时行为要想清楚:已同步的 Secret 还在,但新建/轮换会停,且失败信号只在 CR 状态里
  • 刷新周期太短会打爆后端的审计日志与速率限制,太长则轮换后不生效 —— 这个值要按后端能力定

同类工具(密钥交付)