Vault-如何为mysql创建动态机密并仅授予特定数据库的权限
我现在正在运行,它为我的mysql数据库提供了动态秘密。此时,我的数据库角色如下所示: 答复:Vault-如何为mysql创建动态机密并仅授予特定数据库的权限,mysql,automation,hashicorp-vault,Mysql,Automation,Hashicorp Vault,我现在正在运行,它为我的mysql数据库提供了动态秘密。此时,我的数据库角色如下所示: 答复: { "lease_duration" : 0, "data" : { "revocation_statements" : [], "default_ttl" : 3600, "rollback_statements" : [], "m
{
"lease_duration" : 0,
"data" : {
"revocation_statements" : [],
"default_ttl" : 3600,
"rollback_statements" : [],
"max_ttl" : 86400,
"db_name" : "my-mysql-database",
"creation_statements" : [
"CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}'",
"GRANT SELECT ON *.* TO '{{name}}'@'%'"
],
"renew_statements" : []
},
"warnings" : null,
"auth" : null,
"renewable" : false,
"request_id" : "f155ede2-12ce-2ab1-f05e-b0f52acb153a",
"wrap_info" : null,
"lease_id" : ""
}
最重要的是创建_语句,其中新用户被授予对每个数据库的权限。我的目标是发送我需要一个用户的数据库,并只给他该数据库的权限。我还没有看到任何关于如何做到这一点的资源
我的想法可能是检查Vault是否具有特定数据库的角色,如果Vault错误响应该角色不存在,我可以为该数据库创建一个新角色,然后生成新凭据。据我所知,创建语句是静态的,这意味着一旦创建了“Vault\u数据库\u机密\u后端\u角色”,这些语句无法更改 我们遇到了一个类似的问题,我们最终为每个不同的数据库动态创建了新的数据库 因为我们使用terraform,所以我可以为创建语句设置模板。(即:当我创建一个名为“abcd”的新数据库时,相应的
vault\u database\u secret\u backend\u角色的creation\u语句是“生成的”/“呈现的”,因此它只授予访问此(abcd
)数据库的权限。您好,谢谢您的回复:)我最后做了一些非常类似的事情。现在,我正在为每个数据库创建一个新角色。我在客户端和Vault之间有一个代理API,可以在其中检查某个数据库是否已经有角色,或者如果该数据库没有,我将为其创建一个新角色。