尝试通过 HashiCorp Vault 远程创建新的 MySQL 用户时不支持的操作

尝试通过 HashiCorp Vault 远程创建新的 MySQL 用户时不支持的操作

我已经在 Linux VM 中部署了 HashiCorp Vault,并且希望它连接到我的主机上运行的 MySQL 数据库实例。

在我的数据库(主机 IP 100.101.102.103)中,我专门为此目的创建了一个用户:

CREATE USER 'vaultuser'@'%' IDENTIFIED BY 'vaultpass';
GRANT ALL PRIVILEGES ON amdb.* TO 'vaultuser'@'%' WITH GRANT OPTION;
GRANT CREATE USER ON *.* to 'vaultuser'@'%';
FLUSH PRIVILEGES;

在我的 Vault(VM IP 200.201.202.203)中,我已运行以下步骤:

  1. 启动 Vault - vault server -dev -dev-listen-address="0.0.0.0:8200"。我看到我的根令牌是hvs.ROOTTOKEN
  2. 启用数据库机密引擎 -vault secrets enable database
  3. 使用适当的插件和连接信息配置 Vault -vault write database/config/mydb plugin_name=mysql-database-plugin connection_url="{{username}}:{{password}}@tcp(100.101.102.103:3306)/mydb" allowed_roles="vault-role" username="vaultuser" password="vaultpass"
  4. 强制更换 root 密码 - vault write -force database/rotate-root/mydb。此时,我无法再使用以下方式登录数据库:mysql -uvaultuser -pvaultpass
  5. 配置一个角色,将 Vault 中的名称映射到一组创建语句以创建数据库凭据 -vault write database/roles/vault-role db_name=mydb creation_statements="CREATE USER '{{name}}'@'%' IDENTIFIED BY '{{password}}';GRANT SELECT ON *.* TO '{{name}}'@'%';" default_ttl="1h" max_ttl="24h"

现在,我想远程创建一个新用户。在另一台机器上(假设为 192.168.100.200),我运行curl -X POST -H "X-Vault-Token: hvs.ROOTTOKEN" http://200.201.202.203:8200/v1/database/creds/vault-role。我看到的响应是

{"errors":["1 error occurred:\n\t* unsupported operation\n\n"]}

我不知道我做错了什么。有人能给我指出正确的方向吗?

相关内容