尝试使用 mysql 秘密引擎插件设置安装在 GCP 上的 Vault 时出错

问题描述 投票:0回答:2

我已使用 terraform 模板 在 GCP 上安装了 Vault。 我已登录到 Vault 站点 *:8200 并从我的控制台和 Vault 控制台成功创建了测试秘密引擎和秘密。

数据库秘密引擎也成功创建。但不幸的是我无法设置 mysql-database-plugin 插件。

我尝试了多种方法来设置数据库秘密引擎:

export VAULT_TOKEN=xxxxxxxxxxxxxxxxxxx
export VAULT_ADDR=https://xx.xx.xx.xx:8200

vault write -tls-skip-verify database/config/xx plugin_name=mysql-database-plugin connection_url="{{username}}:{{password}}@tcp(xx.xx.xx.xx:3306)/" allowed_roles="vault-mysql-role" username="xx" password="xx"

但我得到:

将数据写入数据库/config/xx 时出错:超出上下文截止时间

还从 Vault 控制台尝试过:

vault write database/config/mmc plugin_name=mysql-database-plugin connection_url="{{username}}:{{password}}@tcp(xx.xx.xx.xx:3306)/" allowed_roles="vault-mysql-role" username="xx" password="xx"

我遇到的错误:

写入数据库/config/mmc 时出错。 网址:未定义 代码:未定义

还尝试了API:

curl -k --header "X-Vault-Token: xxxxxxxxxxx" --request POST --data @payload.json https://xx.xx.xx.xx:8200/v1/database/config/mysql

作为payload.json:

{
  "plugin_name": "mysql-database-plugin",
  "allowed_roles": "readonly",
  "connection_url": "{{username}}:{{password}}@tcp(xx.xx.xx.xx:3306)/xx",
  "max_open_connections": 5,
  "max_connection_lifetime": "5s",
  "username": "xx",
  "password": "xx"
}

但我得到:

{“errors”:[“创建数据库对象时出错:验证连接时出错:拨打 tcp xx.xx.xx.xx:3306:连接:连接超时”]}

有人知道出了什么问题吗? 预先感谢。

mysql database plugins google-cloud-platform hashicorp-vault
2个回答
1
投票

已解决,这是 Google Cloud Platform (GCP) 问题。 Cloud SQL 实例已使用公共 IP 设置,但 Vault 已使用私有 IP(堡垒主机模式)设置,为了将 Compute Engine 私有 IP 连接到 Cloud SQL,有两个选项: 1) 设置Vault使用公共IP 2) 设置 Cloud SQL 以使用私有 IP 和自定义 vpc 网络,与 Vault 使用的相同。出于安全考虑选择了这一点。


-1
投票

您能否协助您了解如何使用 cloudsql 对保管库进行身份验证? 我遇到了同样的问题,但无法按照您提到的解决方案解决它。如果我在这里遗漏了什么,请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.