使用SQL Server的HashiCorp根数据库凭据轮换

时间:2018-06-11 14:52:08

标签: sql-server hashicorp-vault

我正在尝试在0.10版本的HashiCorp Vault中使用此新功能,该功能允许您旋转提供给数据库秘密引擎的根凭据。使用SQL Server作为我的数据库我不能让它工作。

执行vault write -force database/rotate-root/mssql会抛出此错误:

  

将数据写入数据库/ rotate-root / mssql时出错:发出API请求时出错。

     

网址:PUT http://0.0.0.0:8200/v1/database/rotate-root/mssql   代码:500。错误:

     
      
  • 发生了1次错误:

  •   
  • mssql:无法更改登录'%!s(MISSING)',因为它不存在或您没有权限。

  •   

执行vault read database/config/mssql返回:

Key                                   Value
---                                   -----
allowed_roles                         [* imagine]
connection_details                    map[connection_url:sqlserver://{{username}}:{{password}}@sql:1433 username:vaultrolecreator]
plugin_name                           mssql-database-plugin
root_credentials_rotate_statements    []

不知道你是否应该提供自己的旋转语句。我想做的其他所有工作都很完美,这些测试都是使用Vault根令牌完成的。

原始插件信息是使用以下声明完成的:

vault write database/config/mssql \
  plugin_name="mssql-database-plugin" \
  connection_url="sqlserver://{{username}}:{{password}}@sql:1433" \
  allowed_roles="*, imagine" \
  username="vaultrolecreator" \
  password="UnSafePass"`

2 个答案:

答案 0 :(得分:1)

这似乎是HashiCorp Vault 0.10.2(及更早版本)中的一个错误。正在修改新版本的修复程序:

https://github.com/hashicorp/vault/issues/4745

答案 1 :(得分:0)

您的帐户" vaultrolecreator "可能没有在数据库上执行ALTER LOGINALTER CREDENTIAL语句的权限。根据{{​​3}},执行rotate-root

需要这些权限