用途
Secrets Vault Manager 用于生产环境的密钥基础设施管理,面向运行 HashiCorp Vault、云原生密钥存储或混合架构的团队。其工作层面位于基础设施层——Vault 集群、云 KMS、证书颁发机构以及 CI/CD 密钥注入,与处理本地 .env 文件卫生和泄漏检测的 env-secrets-manager 相区分。
适用场景包括:搭建新的 Vault 集群或迁移到托管密钥存储;为服务、CI 运行器和人工操作员设计认证方法;实现凭据自动轮换(数据库、API 密钥、证书);为合规(SOC 2、ISO 27001、HIPAA)审计密钥访问模式;响应需要大规模吊销的密钥泄漏;将密钥集成到 Kubernetes 工作负载或 CI/CD 流水线。
主要能力
HashiCorp Vault 模式
架构决策建议:部署模式采用带 Raft 存储的 HA(无外部依赖、内置领导者选举);自动解封使用云 KMS(AWS KMS / Azure Key Vault / GCP KMS,消除手动解封);命名空间按环境划分(dev/staging/prod,实现爆炸半径隔离);审计设备采用文件 + syslog 双设备(Vault 在所有审计设备失败时拒绝请求,双设备可防止中断)。
认证方法包括:AppRole(服务与批处理作业的机器对机器认证)、Kubernetes(通过服务账户令牌的 Pod 原生认证)、OIDC(通过 SSO 提供商如 Okta、Azure AD、Google Workspace 的人工操作员访问)。
密钥引擎涵盖:KV v2(静态密钥,版本化、手动轮换)、Database(动态数据库凭据,默认 1 小时、最长 24 小时)、PKI(TLS 证书,叶证书 90 天、中间 CA 5 年)、Transit(加密即服务,密钥每 90 天轮换)、SSH(签名 SSH 证书,交互式 30 分钟、自动化 8 小时)。
策略设计遵循基于路径粒度最小权限原则,命名约定为 {service}-{access-level}(如 payment-service-read、api-gateway-admin)。
云密钥存储集成
提供 AWS Secrets Manager、Azure Key Vault、GCP Secret Manager 的对比矩阵,涵盖轮换、版本控制、加密、访问控制、跨区域、审计与定价模型。选择建议:AWS Secrets Manager 适合完全在 AWS 上、需要 RDS/Aurora 开箱即用轮换;Azure Key Vault 证书管理能力强,适合 Azure AD 集成工作负载;GCP Secret Manager API 最简洁,适合 GKE 原生工作负载配合 Workload Identity;HashiCorp Vault 适合多云、动态密钥、PKI、transit 加密等复杂或混合环境。
SDK 访问原则:始终在启动时或通过 sidecar 获取密钥,绝不烘焙进镜像或配置文件。提供 AWS、GCP、Azure 的 Python 访问模式示例。
密钥轮换工作流
按密钥类型的轮换策略:数据库密码 30 天(双账户交换,零停机);API 密钥 90 天(生成新密钥、弃用旧密钥,重叠窗口);TLS 证书到期前 60 天(ACME 或 Vault PKI,优雅重载);SSH 密钥 90 天(Vault 签名证书,基于 CA);服务令牌 24 小时(动态生成);加密密钥 90 天(密钥版本化重包装)。
数据库凭据轮换采用双账户模式:存在 app_user_a 和 app_user_b 两个账户,应用当前使用 a,轮换时轮换 b 的密码并更新密钥存储,应用下次获取凭据时切换到 b,宽限期后轮换 a,循环重复。
API 密钥轮换采用重叠窗口:生成新密钥,存储为新当前、旧密钥移至 previous,部署应用读取当前,所有实例重启或 TTL 过期后吊销 previous,确认旧密钥零使用后再吊销。
动态密钥
动态密钥按需生成并自动过期,应尽可能优先于静态凭据。提供 Vault 数据库动态凭据配置示例(含创建角色、TTL 设置)。Vault 还可生成短期 AWS IAM 凭据、Azure 服务主体密码或 GCP 服务账户密钥,消除长期云凭据。SSH 证书颁发机构模式:Vault 作为 SSH CA,用户/机器请求短期签名证书(30 分钟),SSH 服务器信任 CA 公钥,无需管理 authorized_keys,证书自动过期。
审计日志
记录事件与优先级:密钥读取访问(HIGH,至少保留 1 年)、密钥创建/更新(HIGH,1 年)、认证方法登录(MEDIUM,90 天)、策略变更(CRITICAL,2 年合规)、失败访问尝试(CRITICAL,1 年)、令牌创建/吊销(MEDIUM,90 天)、封存/解封操作(CRITICAL,无限期)。
异常检测信号包括:密钥从新 IP/CIDR 范围访问、访问量激增(超过基线 3 倍)、人工认证方法的非工作时间访问、服务访问策略范围外的密钥、单一来源多次认证失败、创建异常长 TTL 的令牌。
合规报告涵盖:访问清单、轮换合规、策略漂移、孤立密钥(超过 90 天无访问)。可使用 audit_log_analyzer.py 解析 Vault 或云审计日志。
应急程序
密钥泄漏响应(目标 15 分钟内遏制):识别范围、立即在源头轮换受损凭据、吊销访问过泄漏密钥的所有 Vault 令牌、查询审计日志确定爆炸半径、通知利益相关者、事后复盘。
Vault 封存操作:仅在影响 Vault 基础设施的活跃安全事件或怀疑密钥受损时使用,封存会停止所有 Vault 操作,仅作为最后手段。解封程序包括收集解封密钥持有者法定人数(Shamir 阈值)或确认自动解封 KMS 密钥可访问、通过 vault operator unseal 解封或重启自动解封、验证审计设备重连、检查活跃租约与令牌有效性。
CI/CD 集成
Vault Agent Sidecar(Kubernetes):Vault Agent 与应用 Pod 并行运行,处理认证与密钥渲染,通过 Pod 注解配置。
External Secrets Operator(Kubernetes):适合偏好声明式 GitOps 而非 agent sidecar 的团队,通过 ExternalSecret 资源定义。
GitHub Actions OIDC:通过 OIDC 联邦消除 CI 中的长期密钥,使用 hashicorp/vault-action。
反模式
列出应避免的做法:源代码硬编码密钥(应运行时从密钥存储获取)、长期静态令牌超过 30 天(应动态密钥或短 TTL + 轮换)、共享服务账户(应每服务唯一身份)、无轮换策略(应自动定期轮换)、CI 环境变量中的密钥(应 Vault Agent 或 OIDC 注入)、单一解封密钥持有者(应 Shamir 3-of-5 或自动解封)、无审计设备(应双审计设备)、通配符策略(应每服务显式路径策略)。
工具脚本
vault_config_generator.py:根据应用需求生成 Vault 策略与认证配置;rotation_planner.py:从密钥清单文件创建轮换计划;audit_log_analyzer.py:分析审计日志中的异常与合规缺口。
使用方式
该技能以技能包形式提供,包含上述脚本工具与参考文档(如 references/emergency_procedures.md)。具体安装命令与调用方式暂未提供。
适用场景
适合需要生产级密钥基础设施管理的安全、基础设施与 DevOps 团队,尤其是使用 HashiCorp Vault、云原生密钥存储或混合架构,并需要满足 SOC 2、ISO 27001、HIPAA 等合规要求的组织。
限制
资料未提供该技能的具体安装命令、运行环境要求、依赖版本、收费模式或价格信息。部分配置示例中的占位符(如 <admin-password>、vault.example.com)需用户替换为实际值。