← 中文资源

简体中文版本

用 Vault 签发动态数据库凭证

配置数据库密钥引擎,让每个应用实例每次按需获得短期凭证、无需存储,并在租约到期时自动吊销。

阅读英文原文

概述

共享数据库口令被存于多处且从不轮换,一处配置泄露即长期放行数据库访问。动态密钥让应用每次申请只需短时有效的账户,租约到期自动吊销,从根源上消除静态口令。

关键步骤

  1. 用特权连接配置数据库密钥引擎。
  2. 定义仅授予应用所需权限的角色。
  3. 应用申请凭证并在租约到期前刷新。
  4. 依赖 Vault 在租约到期时吊销生成的用户。

验证

  • 应用不再存储静态数据库口令。
  • 签发的凭证符合最小权限。
  • 租约到期后对应用户被吊销。
  • 刷新失败时可改用新凭证恢复连接。

注意事项

  • 动态密钥在获取与续期时引入对 Vault 可用性的依赖。
  • 需要 Vault 具备管理数据库用户的权限,该权限本身必须严格控制。

适用范围

本条目围绕「用 Vault 签发动态数据库凭证」给出可复制的步骤、验证方式与常见问题,适合需要按此流程落地的工程团队。执行时请结合自身上下文调整命令与阈值,并在变更前后留存证据,便于后续复核与回滚。

vault write database/config/app plugin_name=postgresql-database-plugin
vault write database/roles/app-role db_name=app default_ttl=1h max_ttl=24h
# creation_statements template issues a short-lived role per request