【问题标题】:Unable to give Google App Engine Service Account access to Google Cloud Storage无法向 Google App Engine 服务帐户授予对 Google Cloud Storage 的访问权限
【发布时间】:2012-12-03 07:23:25
【问题描述】:

我是 Google App Engine (GAE) 的用户。在 GAE 中有一个选项,我们可以将数据存储备份到 Google Cloud Storage (GCS) 存储桶。我已经注册了 GCS,启用了计费并成功创建了一个 Bucket。但是,当我在 GAE Con​​sole - Datastore admin 中尝试备份功能时, 它给了我这样的错误消息:

开始 备份作业状态 启动一些工作/任务时出现问题: 存储桶“myappxxxxxx-cloud-storage”不可访问 结束

我在网上做了一些研究,发现我们需要将 GAE 的服务帐户添加为 GCS 的团队成员,但是我已经这样做了,因为我“邀请用户在此应用程序上进行协作”并输入服务器帐户电子邮件地址,例如 mygaexxxxx@appspot.gserviceaccount.com,我没有收到电子邮件,因为这不应该是一个真实的电子邮件帐户,我没有收到邀请并且状态始终处于待处理状态

那我现在能做什么?

【问题讨论】:

    标签: google-app-engine


    【解决方案1】:

    另一种解决方案是使用 gsutil 命令行方法来编辑访问控制列表 (ACL),如 https://developers.google.com/appengine/docs/python/googlestorage/overview 中所述

    这样做不需要电子邮件邀请,并且该帐户不会显示在控制台中

    【讨论】:

      【解决方案2】:

      您可以通过将服务帐户(以及您的应用程序)添加到API Console 中的团队,一次性授予服务帐户(以及您的应用程序)对所有 Google 服务的访问权限。

      正如您所指出的,您也可以使用 gsutil setacl/getacl 命令来执行此操作。在这种情况下,您授予对特定存储桶的访问权限,而不是项目中的所有存储桶。

      【讨论】:

      • 感谢您的回复,但是我已经尝试了 Google API 控制台中的“团队”项目,但这让我直接回到了 App Engine 控制台的 -> 管理 -> 权限页面......是我收到电子邮件邀请问题的地方。
      • 我猜你当时没有点击正确的链接 - 开发者控制台团队与 GAE 管理员页面不同。
      • 您是指页面上的概览、服务、团队、API 访问、计费、谷歌云存储列表中的“团队”项:code.google.com/apis/console 这会将我重定向到appengine.google.com/permissions?app_id=xxxxxxxxx 页面
      • 我用新的云控制台尝试了这个(将服务帐户添加为团队成员),它工作正常,并允许我将数据存储备份到 GCS。我有点困惑,因为我认为这是新的云控制台自动完成的(我的 GAE 已经与 API 项目相关联),但在我这样做之前备份失败了。
      【解决方案3】:

      解决此问题的另一种间接方法是在 GAE 中编写您自己的邮件处理程序。然后您可以收到发送到您的 GAE 电子邮件地址的电子邮件。

      【讨论】:

        猜你喜欢
        • 2018-12-26
        • 2021-05-01
        • 2021-10-30
        • 1970-01-01
        • 1970-01-01
        • 2021-04-08
        • 2019-04-05
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多