如何授予多个appengine项目访问同一个云存储桶的权限?

时间:2013-12-22 07:57:01

标签: google-cloud-storage google-cloud-console

Google Cloud控制台允许从项目内创建存储桶并编辑访问控制列表。 我从我的某个应用 app1

创建了一个存储桶 bucket-foo

现在我想在另一个 app2 中使用相同的存储桶。我无法弄清楚如何允许app2访问我在app1下创建的同一个存储桶。

2 个答案:

答案 0 :(得分:7)

您可以将app2的服务帐户添加到存储桶的ACL列表中,以允许应用访问存储桶。

首先,您需要找到应用的服务帐户名称,该名称列在管理控制台的“应用程序设置”页面中,但它也只是<app-id>@appspot.gservicaccount.com

然后通过将app2的服务帐户添加到ACL列表,将该帐户添加到使用gsutil acl ch的bucket-foo的ACL中。

最后它可能是这样的:

gsutil acl ch -u -R app2@appspot.gserviceaccount.com:WRITE gs://bucket-foo

答案 1 :(得分:1)

此Google文档对我有用:https://cloud.google.com/appengine/docs/python/console/datastoreadmin?hl=lv#restoring_data_to_another_app

将数据还原到其他应用

如果您使用Google云端存储备份数据,则可以将备份还原到用于创建备份的应用之外的应用。

将备份数据从一个应用程序还原到另一个应用程序:

  1. 使用Google Cloud Platform Console,找到包含用于备份的存储桶的项目,并将目标应用(要还原到的应用的App Engine默认服务帐户电子邮件)添加到具有“编辑”权限的项目团队。
  2. 在要复制数据的应用程序中进行新备份。上一步中设置的权限不会追溯到现有备份,因此目标应用程序将无法访问这些早期备份。目标应用程序只能访问在获得权限后进行的备份。
  3. (可选)为目标应用禁用数据存储区写入。 (这通常是一个好主意,以避免恢复与写入数据存储区的任何新数据之间的冲突。)
  4. 转到目标应用的管理员页面,然后点击打开数据存储管理。
  5. 在标有“导入备份信息”的按钮旁边的文本框中,以格式/ gs / my_bucket指定包含备份的存储桶。这将导致显示该存储桶中所有备份的列表。或者,为特定备份提供文件句柄;通过选择备份并单击Info,可以从源应用程序获取句柄;文件句柄出现在标签句柄旁边。
  6. 单击“导入备份信息”。
  7. 生成的选择页面显示您指定的存储桶的可用备份,除非您通过其句柄指定了备份。选择所需的备份,然后单击以下选项之一: 如果要将此备份保留在应用程序的可用备份列表中,请添加到备份列表。 如果要从此备份还原但不希望备份显示在应用程序的可用备份列表中,则从备份还原。
  8. 在显示的顾问页面中,注意带有复选框的实体列表。默认情况下,将还原所有实体。取消选中您不想要还原的每个实体旁边的复选框。
  9. 同样在咨询页面中,请注意默认队列及其预配置的性能设置用于还原作业。如果您需要不同的队列性能特征,请将此更改为您已配置不同的另一个队列。
  10. 单击“还原”开始还原。请注意,将显示作业状态页面。
  11. 如果您禁用了写入,请为您的应用程序重新启用数据存储区写入。