概述 - 目标:通过Vault为数据库/云资源签发短期动态凭证,管理TTL与续租/撤销,降低凭证泄露风险。 - 适用:数据库访问、云API临时凭证、应用启动时密钥注入。 核心与实战 - 启用与配置数据库 secrets 引擎(PostgreSQL示例): ``` vault secrets enable database vault write database/config/postgres \ plugin_name=postgresql-database-plugin \ allowed_roles="app-role" \ connection_url="postgresql://{{username}}:{{password}}@db:5432/postgres?sslmode=disable" \ username="admin" \ password="secret" vault write database/roles/app-role \ db_name=postgres \ creation_statements="CREATE ROLE \"{{name}}\" WITH LOGIN PASSWORD '{{password}}' VALID UNTIL '{{expiration}}'; GRANT SELECT ON ALL TABLES IN SCHEMA public TO \"{{name}}\";" \ default_ttl=1h \ max_ttl=24h ``` - 申请动态密钥并观察租约: ``` vault read database/creds/app-role # 返回 username/password 与 lease_id 与 ttl ``` - 续租与撤销: ``` vault lease renew vault lease revoke ``` - KV引擎存储应用配置: ``` vault secrets enable -path=kv kv-v2 vault kv put kv/app api_key=xxx timeout=5000 vault kv get kv/app ``` 示例 - App使用Vault Agent模板注入: ``` vault agent -config=agent.hcl # agent.hcl 片段: auto_auth { method "approle" { config = { role_id = "...", secret_id = "..." } } } template { source = "/etc/app/config.ctmpl" destination = "/etc/app/config.json" } ``` - 策略(只读KV与角色签发): ``` path "kv/data/app" { capabilities = ["read"] } path "database/creds/app-role" { capabilities = ["read"] } ``` 验证与监控 - 租约生命周期: - `vault lease lookup `查看TTL与可续租;监控续租失败与撤销事件。 - 审计: - 开启审计设备`vault audit enable file file_path=/var/log/vault_audit.log`;过滤签发与撤销记录。 - 高可用: - 配置存储后端与自动解封;检查Leader状态与HA健康。 常见误区 - 使用长效静态密钥导致泄露风险;应采用短期动态密钥并限制权限。 - 忽视撤销与过期清理;需在退出与异常路径主动撤销。 - 策略过宽导致越权访问;应最小权限并细分路径能力。 结语 - 通过Vault的动态密钥与租约治理,可实现短期、可撤销的访问控制,显著提升安全与合规能力。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部