【问题标题】:Connecting Google Container Registry to Cloud SQL将 Google Container Registry 连接到 Cloud SQL
【发布时间】:2017-09-06 22:40:04
【问题描述】:

我们将 Google App Engine 和 Cloud SQL 用于 django 网络应用。我们想在构建期间运行迁移;但是,GAE 使用 Container Registry 来构建应用程序,并且 Container Registry 未经过身份验证来访问 Cloud SQL。因此,正如预期的那样,迁移由于连接被拒绝而失败。

如何授权 Container Registry 访问 Cloud SQL?

【问题讨论】:

    标签: google-app-engine google-cloud-sql google-kubernetes-engine google-container-registry


    【解决方案1】:

    当你说:

    GAE 使用 Container Registry 构建应用,而 Container Registry 未通过身份验证访问 Cloud SQL。

    我假设你的意思是:

    GAE 使用 Container Builder 构建应用,Container Builder 服务帐号未通过身份验证访问 Cloud SQL。

    假设这是您需要的,本文档说明了如何使用 IAM 向服务帐户授予额外权限:https://cloud.google.com/container-builder/docs/how-to/service-account-permissions

    如果您实际上是在问一个不同的问题,请澄清,包括一个说明您遇到的问题的示例。

    【讨论】:

    • 嘿大卫,谢谢你的回答。文档有点混乱。它说 API 将自动创建一个服务帐户 - 它没有。但是,我们已经有一个 <project ID>.iam.gserviceaccount.com 服务帐户处理部署,它具有权限 Owner,这是次优的,但是我们收到其他角色的权限被拒绝错误。此服务帐号尽管拥有项目范围的所有权权限,但仍被拒绝访问 Cloud SQL。是否需要 Cloud Builder 服务帐号?
    • 实际上,大卫,我确实找到了服务帐户并设法更改了添加 Cloud SQL Client 的权限,但我仍然收到相同的连接被拒绝错误
    • 我希望 Cloud SQL 客户端就足够了。请确认您已将此添加到您的 Cloud Builder 服务帐户,该帐户在此处的 IAM 控制台中名为 @cloudbuild.gserviceaccount.com:pantheon.corp.google.com/iam-admin/iam/project 如果这确实是正确的,我唯一的其他建议是 (1)暂时将我添加为您项目的查看者,以便我确认并 (2) 联系 Cloud SQL 以查看他们是否可以提供帮助。对于 #1,我们的联系电子邮件地址是 gcr-contact@google.com,请在您的电子邮件中包含指向此问题的链接。
    • 谢谢大卫 - 非常感谢可用性。我们通过将 Cloud SQL 客户端的权限更改为项目编辑器解决了这个问题