密钥管理的首要原则:不进代码库。硬编码密钥提交到 Git 后即使删除文件,历史记录仍在,扫描机器人几分钟内就会捡走滥用(云 AK 被捡是最常见入侵入口之一)。

分层方案:1)开发环境.env + .gitignore,示例文件只放占位符;2)生产:用专业密钥管理——云上 KMS/Secrets Manager、自建 HashiCorp Vault,应用通过身份认证(K8s ServiceAccount、IAM Role、SPIFFE)运行时动态拉取,而非静态分发;3)杜绝长期凭证:优先临时凭证——云上用实例角色/IRSA,数据库用动态账号(Vault 按时生成即弃);4)轮换与吊销:定期轮换,泄露时一键吊销并审计使用记录;5)检测兜底:CI 与仓库跑 gitleaks/trufflehog,平台开启 push protection。

易错点:CI 变量允许 fork PR 触发流水线读取(GitHub Actions 经典事故);日志与 APM trace 泄露 header 凭证;多环境共用同一密钥导致测试环境被破即生产沦陷。追问方向:Vault 动态密钥原理、K8s Secret 的 etcd 加密、泄露应急响应。