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-role
和 vault 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 脚本或模板就可以了。一切都取决于最佳解决方案的用例。
以下:
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-role
和 vault 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 脚本或模板就可以了。一切都取决于最佳解决方案的用例。