如何设置google云存储桶文件夹

时间:2016-07-25 18:54:30

标签: google-cloud-storage

如何为存储桶中的整个文件夹设置访问权限?例;我在单个存储桶中有2个文件夹(包含许多子文件夹/对象)(我们称之为文件夹' A' B')和项目团队中的4个成员。所有4个成员都可以拥有文件夹A的读/编辑权限,但只允许2个成员访问文件夹' B'。有没有一种简单的方法为每个文件夹设置这些权限?每个文件夹中有数百/数千个文件,为每个单独的文件设置权限将非常耗时。谢谢你的帮助。

5 个答案:

答案 0 :(得分:3)

文档记录很差,但搜索"文件夹"在gsutil acl ch manpage

  

向用户授予对以文件夹/开头的example-bucket中所有对象的指定规范ID READ访问权限:

gsutil acl ch -r \
  -u 84fac329bceSAMPLE777d5d22b8SAMPLE785ac2SAMPLE2dfcf7c4adf34da46:R \
  gs://example-bucket/folder/

答案 1 :(得分:2)

通过IAM Conditions,这似乎已经成为可能。

您需要设置IAM条件,例如: resource.name.startsWith('projects/_/buckets/[BUCKET_NAME]/objects/[OBJECT_PREFIX]')

这里有一些限制,例如不再能够使用其他答案中引用的gsutil acl ch命令。

答案 2 :(得分:2)

把这个留在这里,这样其他人就不会浪费一个下午的时间来撞墙了。事实证明,“列表”权限是在 GCS 中的存储桶级别处理的,您无法使用基于对象名称前缀的条件来限制它们。如果这样做,您将无法访问存储桶中的任何资源,因此您必须为成员设置不受限制的“存储对象查看者”角色,并使用具有指定对象前缀的条件作为“存储对象管理员”或“存储对象” Creator' 来限制(覆盖)写访问。如果您试图将存储桶中的内容保密,则不太理想。

https://cloud.google.com/storage/docs/access-control/iam

"由于 storage.objects.list 权限是在存储桶级别授予的,因此您不能使用 resource.name 条件属性来限制对存储桶中对象子集的对象列表访问。没有 storage.objects.list 权限的用户在存储分区级别,控制台和 gsutil 的功能可能会降级。”

答案 3 :(得分:0)

您无法在GCS中执行此操作。 GCS提供对存储桶和对象权限的权限。 “文件夹”不是GCS概念,也没有任何属性或权限。

答案 4 :(得分:0)

谢谢大家,这似乎并不是满足我在GCP中要求的直接解决方案。使用以下提到的脚本在AWS中很容易实现。

UITextField

我正在GCP中寻找类似的实现方式。