Vault 密钥轮换器
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/vault-secrets-rotator 到当前 AI 助手。
技能介绍
解决什么问题
凭据是有生命周期的。一个跑在 Kubernetes 上的服务,可能同时依赖数据库账号、外部 API 的 key,以及服务间通信用的凭证,这些凭据散落在环境变量、ConfigMap 和 CI 脚本里。轮换意味着要改配置、等重启、确认旧凭据失效,任何一个环节漏掉都会留下长期有效的密码。更麻烦的是撤销:当某个凭据被怀疑泄露时,你往往不知道还有哪些服务在用它。
它如何工作
这个技能把轮换压回 Vault 自己的模型里,分三步走:
- 读:通过 HashiCorp Vault HTTP API v1 查询当前凭据状态与策略。
- 换:调用
dynamic secrets引擎生成新凭据。引擎不返回固定密码,而是按请求实时签发,有效期可以精确控制。 - 同步:把新值写进 Kubernetes 侧,由 External Secrets Operator 的 CRD 对象承接,Pod 不需要重启就能拿到新凭据。
撤销时同样走这套模型。Vault 支持的不是单个凭据的删除,而是一整棵凭据树——某个角色名下签发的所有动态凭据可以一起失效,这样轮换掉的不只是一条密码。
适用边界与注意点
它面向的是已经把 Vault 当作唯一密钥源的环境。如果你的凭据还散落在环境变量和 CI 变量里,这个技能不会替你把它们搬进去。
- 轮换路径依赖 dynamic secrets 引擎,静态数据库口令和非 Vault 托管的密钥覆盖不到。
- 外部同步依赖 External Secrets Operator,集群里没装的话
ExternalSecret资源不会生效。 - 轮换动作本身不会自动重载应用,确认消费方拿到新值是你自己的责任。
- 上游文档明确要求 Docker 才能跑测试,CI 里做集成验证时要提前准备。
使用场景
- 数据库账号快到期,需要生成新的动态凭据并同步到 Kubernetes 部署
- 凭据疑似泄露,需要一次性吊销某个角色名下整棵凭据树
- 新服务上线,需要把 Vault 动态凭据接入 External Secrets Operator 并验证生效
- 轮换后应用未拿到新凭据,需要排查同步链路中的 CRD 是否就绪
适合人员
- 平台工程师:需要在 Kubernetes 集群里接入 Vault 动态凭据并管理生命周期
- 安全工程师:需要定期轮换数据库凭据并能快速吊销疑似泄露的凭据树
- SRE:需要在轮换后确认 Pod 是否拿到新凭据并排查同步失败
- 基础设施运维:需要将密钥源统一到 Vault,减少散落在环境变量和 CI 变量里的静态密码