SOPS 密钥文件加密和轮换
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/sops-secret-file-encryption-rotation。
技能介绍
这个技能解决什么问题
配置文件里混着明文密钥是运维场景里最常见的隐患:deploy.yaml 里的 API Token、.env 里的数据库密码、INI 里的第三方密钥,一旦提交到 Git 就等于公开。手工轮换这些密钥意味着逐文件改、逐服务重启,漏掉一处就留下旧密钥还在生效的坑。SOPS 的思路是让加密后的文件本身可以进版本库,值在磁盘上保持密文,只在使用前解密。
它如何工作
这个技能围绕 SOPS 的能力组织,核心是同一套工作流覆盖多种文件格式和多种加密后端:
- 多格式支持:YAML、JSON、ENV、INI 和二进制文件,意味着密钥和配置可以放在一起管理,不必为二进制密钥单独维护一套流程。
- 多后端选择:AWS KMS、GCP KMS、Azure Key Vault、age 或 PGP,按团队已有的身份体系选一种即可。
- 加密与轮换:对文件执行加密写入后,明文只出现在运行解密的节点上;轮换时改密文文件并重新分发,比手工改每台机器上的明文配置更可控。
关键步骤通常包括:配置后端凭据、加密既有文件、将密文文件纳入版本控制,以及在部署流程中解密加载。
适用边界与注意点
- 运行前需要备齐后端依赖:
AWS KMS、GCP KMS、Azure Key Vault、age或PGP,缺哪一项取决于你选定的加密后端。 - 资料中没有提供可自动提取的安装和使用说明,在敏感流程里运行前应先审阅上游仓库:https://github.com/1991513ccie-png/skills
- 密钥轮换不等于凭据本身安全:后端权限、解密日志和分发链路仍需单独收紧。
使用场景
- CI/CD 流程中需要把含数据库密码的配置文件提交到 Git,先用 SOPS 加密再入库
- 数据库密码或 API Token 轮换后,批量更新各处密文配置并重新分发到服务
- 团队使用 KMS 或 age 管理密钥,需要统一加密 YAML、ENV 等配置文件
- 包含二进制密钥的部署包需要纳入版本控制,并在部署时按需解密
适合人员
- 需要把含密钥的配置文件安全提交 Git 的后端工程师与 SRE
- 负责定期轮换密钥、批量更新多环境配置的运维工程师
- 希望用 KMS 或 PGP 统一管理密钥、避免明文入库的平台工程师
- 需要为机密文件定义加密与分发流程的 DevOps 负责人