通过启用 IAM 登录的云 sql-代理从云 运行 连接到云 SQL

Connecting to Cloud SQL from Cloud Run via cloud-sql-proxy with IAM login enabled

我想使用服务帐户从云 运行 连接到云 SQL 实例。该连接过去是在 VPC 内创建的,我们只需向我们的 PostgreSQL 客户端提供一个带有 userpassword 的连接字符串。但现在我们希望身份验证由 Google Cloud IAM 管理,服务帐户与 Cloud 运行 服务关联。

在我的机器上,我可以使用 enable_iam_login 参数来使用我自己的服务帐户。 运行 云 SQL 代理的命令如下所示:

./cloud_sql_proxy -dir=/cloudsql -instances=[PROJECT-ID]:[REGION]:[INSTANCE] \
-enable_iam_login -credential_file=${HOME}/.config/gcloud/application_default_credentials.json

问题是我似乎无法找到一种方法来使用 IAM 身份验证方法来 运行 Cloud SQL 来自 Cloud 运行 的代理,我只能提供实例名称。有人遇到过这个问题吗?

遗憾的是,无法配置 Cloud 运行 对 Cloud SQL 代理的使用来为您执行此操作。

如果您使用 Java、Python 或 Go,there are language specific connectors you can use from Cloud Run. 这些都可以选择使用 IAM DB AuthN 作为其中的一部分。

对于在云端使用 NodeJS 的任何人 运行 :

  • 您无法在 Cloud 运行 中启用 -enable_iam_login 选项(参见已接受的答案),这意味着您必须使用连接器。
  • 据我所知,目前没有 NodeJS 连接器。

这意味着您有 2 个选择:

  • 自己写一个连接器(祝你好运)或等待 Google 完成
  • 现在使用内置数据库身份验证。