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

时间:2020-02-12 10:32:41

标签: mysql hashicorp-vault

以下情况:

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

当我通过以下方式查询保险柜时,我想显示connection_url或数据库主机以及用户密码:

vault read database/creds/my-role

2 个答案:

答案 0 :(得分:1)

恐怕当前的数据库插件无法实现。

其他可能的解决方案是使用连接URL创建一个KV并检索该URL。为了保持一致性,您可以保持与信誉相同的路径,例如

db凭据vault read database/creds/my-role 和带有vault read kv/database/creds/my-role

的连接字符串

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

另一个选择是从API read the database config

这将产生类似的结果

{
  "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的第一个解决方案相比)

答案 1 :(得分:0)

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

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

正如user2599522所说,使用保管库是不可能的,但是简单的bash脚本或模板就能解决问题。一切都取决于用例以获得最佳解决方案。