以下情况:
https://www.vaultproject.io/docs/secrets/databases/mysql-maria/
当我通过以下方式查询保险柜时,我想显示connection_url
或数据库主机以及用户密码:
vault read database/creds/my-role
答案 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脚本或模板就能解决问题。一切都取决于用例以获得最佳解决方案。