0

我正在按照 google ( https://github.com/GoogleCloudPlatform/cloudsql-proxy/blob/master/Kubernetes.md ) 的指南在 Kubernetes 集群中设置 Cloud SQL 代理。

文档说:

You need a service-account token with "Project Editor" privileges

我很困惑,因为我的应用程序(Composer)在 Kubernetes 上运行,而我试图连接的 Cloud SQL 数据库存在于不同的项目中。我是否只需要两个项目的“项目编辑器”权限?我认为我们的系统管理员不会希望将我的项目编辑权限授予包含我要连接的 SQL 数据库的项目。

我问是因为我遇到了连接问题:

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading initial communication packet', system error: 0
googleapi: Error 403: The client is not authorized to make this request., notAuthorized

我假设连接错误是由于我使用的服务帐户令牌造成的,因为我严格遵循指南中的所有其他内容

我已经使用两个服务帐户令牌进行了测试。

  1. 具有 Kubernetes 所在项目的项目编辑器的服务帐户。

  2. 服务帐户我们的系统管理员向我发送了连接到云 SQL 数据库的权限。

4

1 回答 1

0

要使用 Cloud SQL 代理,您的凭证应具有以下 IAM 角色之一:

  • Cloud SQL Client(首选)
  • Cloud SQL Editor
  • Cloud SQL Admin

或者,您可以手动分配以下 IAM 权限:

  • cloudsql.instances.connect
  • cloudsql.instances.get

您的凭据需要对两个帐户都具有这些权限 - 具有数据库的帐户和具有您正在使用的凭据的帐户。

于 2019-07-12T02:04:10.997 回答