HashiCorp Vault 数据库机密显示连接 URL

HashiCorp Vault Database Secrets display Connection URL

以下:

https://www.vaultproject.io/docs/secrets/databases/mysql-maria/

我想在通过以下方式查询 Vault 时显示 connection_url 或数据库主机以及用户密码:

vault read database/creds/my-role

恐怕目前的数据库插件无法做到这一点。

其他可能的解决方案是使用连接 url 创建 KV 并检索它。为了保持一致性,你可以保持与creds相同的路径,例如

db 凭据 vault read database/creds/my-rolevault read kv/database/creds/my-role

的连接字符串

这意味着您在设置保管库和检索凭据时会有一些开销

另一种选择是 read the database config 来自 API。

这将返回类似

的东西
{
  "data": {
    "allowed_roles": ["readonly"],
    "connection_details": {
      "connection_url": "{{username}}:{{password}}@tcp(127.0.0.1:3306)/",
      "username": "root"
    },
    "plugin_name": "mysql-database-plugin"
  }
}

您可以在其中获取 connection_url 并对其进行正则表达式以获取连接字符串。我认为这需要更多的努力,因为您的客户需要知道如何转换连接字符串(将其与我提到的第一个解决方案进行比较,在您生成数据库引擎配置时生成 KV)

如果你不介意我问,我可以问你为什么需要 connection_url。如果要提供给应用程序进行配置,您可以使用 Vault 模板吗?

https://www.vaultproject.io/docs/agent/template/

正如 user2599522 所说,直接使用 Vault 是不可能的,但是一个简单的 bash 脚本或模板就可以了。一切都取决于最佳解决方案的用例。