← ClaudeAtlas

implementing-secrets-management-with-vaultlisted

本技能涵盖在云环境中部署 HashiCorp Vault 进行集中式密钥管理,包括为数据库和云提供商生成动态密钥、传输加密(Transit Encryption)、PKI 证书管理以及 Kubernetes 集成。通过实现短生命周期、自动轮换的密钥,解决应用代码和 CI/CD 流水线中硬编码凭据的问题。
killvxk/cybersecurity-skills-zh · ★ 15 · DevOps & Infrastructure · score 81
Install: claude install-skill killvxk/cybersecurity-skills-zh
# 使用 Vault 实施密钥管理 ## 适用场景 - 应用程序将数据库密码、API 密钥或证书存储在环境变量或配置文件中时 - 从静态长期凭据迁移到动态短期密钥时 - Kubernetes 工作负载需要安全访问数据库凭据或云提供商 API 时 - 合规要求强制进行集中凭据管理并具备审计日志时 - CI/CD 流水线中包含代表供应链风险(Supply Chain Attack)的硬编码密钥时 **不适用于**:纯 AWS 环境(AWS Secrets Manager 已足够且无多云需求)、应用层加密逻辑(尽管 Vault Transit 可辅助实现),或身份联合(Identity Federation)场景(参见 managing-cloud-identity-with-okta)。 ## 前置条件 - 以高可用(HA)模式部署的 HashiCorp Vault 服务器(Consul 或 Raft 存储后端) - 用于 Vault 监听端点的 TLS 证书 - Vault Enterprise 许可证(用于命名空间、Sentinel 策略和复制,可选) - ���集成 Vault Agent Injector 或 CSI 提供程序的 Kubernetes 集群(用于工作负载集成) ## 工作流程 ### 步骤 1:以高可用模式部署 Vault 使用集成存储(Raft)部署 Vault,无需外部依赖即可实现 HA。配置 TLS、审计日志以及基于云 KMS 的自动解封(Auto-Unseal)。 ```hcl # vault-config.hcl storage "raft" { path = "/opt/vault/data" node_id = "vault-node-1" retry_join { leader_api_addr = "https://vault-node-2.internal:8200" } retry_join { leader_api_addr = "https://vault-node-3.internal:8200" } } listener "tcp" { address = "0.0.0.0:8200" tls_cert_file = "/opt/vault/tls/vault.crt" tls_key_file = "/opt/vault/tls/vault.key" } seal "awskms" { region = "us-east-1" kms_key_id = "alias/vault-unseal-key" } api_addr = "https://vault-node-1.internal:8200" cluster_addr = "https://vault-node-1.internal:8201" telemetry { prometheus_retention_time = "30s" disable_hostname = true } ``` ```bash # 初始化 Vault vault operator init -key-shares=5 -key-threshold=3 # 启用审计日志 vault audit enable file file_path=/var/log/vault/audit.log # 启用 syslo