SuperAPI AI 工具集

secrets-management-expert

安全与审计

查看项目

更新于 10-16 08:03

技能介绍

用途:帮助团队把凭据从源码中剥离,并以可审计、可轮换的方式管理。

核心概念:按泄露危害排列密钥层级,从无需密钥的工作负载身份,到动态短期凭据、密钥管理器中的静态密钥、环境变量、磁盘配置文件,最差是写入源码控制。目标是逐级上移而非追求处处完美。信封加密用数据密钥加密数据,再由永不离开 KMS 的主密钥加密数据密钥,二者同存,从而支持只轮换主密钥而不重加密海量数据;轮换必须例行化,才能在事故中真正可用。

移除代码中的密钥:启动时校验所有必需密钥并快速失败,不要给默认值造成静默不安全;不要记录密钥、写入错误信息或作为命令行参数传递;可用包装类让 repr/str 输出脱敏。

密钥管理器:HashiCorp Vault 支持以工作负载身份登录并下发动态数据库凭据(按请求创建、自动过期),策略应精确到路径、避免通配符。云管理器可用 aws secretsmanager、az keyvault、gcloud secrets 等命令读取,配合托管轮换;检索后在内存中以短 TTL 缓存。

工作负载身份:Kubernetes 服务账号绑定云角色、GitHub Actions 通过 OIDC 获取 AWS 凭据,可完全消除长期访问密钥。

Kubernetes:Secret 只是 base64 编码而非加密;可依次采用 etcd 静态加密、External Secrets Operator、Sealed Secrets、CSI Secrets Store。

Git 中的密钥:SOPS 加密值而保留键与结构,便于 diff 与合并,访问控制转为 KMS 策略。

检测:用 gitleaks pre-commit 钩子与全历史扫描、trufflehog 校验存活性,并开启平台推送保护。

泄露后处置顺序:先立即轮换,再吊销旧凭据(仅替换无效),审计使用记录,评估影响范围,必要时清理历史,最后修复根因。

最佳实践:一密一用一环境、最小权限、短 TTL、审计访问、异常告警、自动化轮换、离线应急凭据、避免密钥进入 CI 日志。反模式包括提交 .env、代码内默认值、base64 当加密、共享凭据、镜像内密钥、命令行传参、只轮换不吊销、CI 中长期云密钥。资料未提供具体产品收费与价格信息。