G L*_*Lee 6 google-cloud-storage
如何设置存储桶中整个文件夹的访问权限?例; 我在一个存储桶中有2个文件夹(包含许多子文件夹/对象)(让我们将其称为文件夹“ A”和“ B”)和项目团队中的4个成员。所有4个成员都可以对文件夹A进行读取/编辑访问,但是只有2个成员可以访问文件夹“ B”。有没有一种简单的方法可以为每个文件夹设置这些权限?每个文件夹中有成千上万个文件,为每个文件设置权限将非常耗时。谢谢你的帮助。
小智 13
看起来这已经通过IAM Conditions成为可能。
您需要设置 IAM 条件,例如:
resource.name.startsWith('projects/_/buckets/[BUCKET_NAME]/objects/[OBJECT_PREFIX]')
但该条件不能用于许可storage.objects.list。将两个角色添加到组/用户。第一个授予对整个存储桶的列表访问权限,第二个包含上述条件以允许对“文件夹”中的所有对象进行读/写访问。这样,组/用户可以列出存储桶中的所有对象,但只能读取/下载/写入允许的对象。
这里有一些限制,例如不再能够使用gsutil acl ch其他答案中引用的命令。
小智 11
把它留在这里,这样其他人就不会浪费一个下午的时间去撞墙。事实证明,“列表”权限是在 GCS 中的存储桶级别处理的,您无法使用基于对象名称前缀的条件来限制它们。如果这样做,您将无法访问存储桶中的任何资源,因此您必须为成员设置不受限制的“存储对象查看者”角色,并为“存储对象管理”或“存储对象”使用具有指定对象前缀的条件Creator' 来限制(覆盖)写入访问。如果您想将存储桶中的内容保密,则不太理想。
https://cloud.google.com/storage/docs/access-control/iam
“由于 storage.objects.list 权限是在存储桶级别授予的,因此您无法使用 resource.name 条件属性来限制对存储桶中对象子集的对象列表访问。在存储桶中没有 storage.objects.list 权限的用户级别可能会遇到控制台和 gsutil 功能降级的情况。”
它的记录很差,但在gsutil acl ch联机帮助页中搜索“文件夹” :
授予具有指定规范 ID 的用户对 example-bucket 中以 folder/ 开头的所有对象的读取访问权限:
Run Code Online (Sandbox Code Playgroud)gsutil acl ch -r \ -u 84fac329bceSAMPLE777d5d22b8SAMPLE785ac2SAMPLE2dfcf7c4adf34da46:R \ gs://example-bucket/folder/
| 归档时间: |
|
| 查看次数: |
4792 次 |
| 最近记录: |