在我们的项目中,我们有一群人应该可以完全访问只有一个桶,他们不应该看到其他存储桶或其他存储桶上的对象。 因此,我更改了存储桶的权限,并将用户添加为该特定存储桶的存储管理(不是整个项目)。
在这种情况下,当他们使用console / Storage时,他们会看到以下消息:
但是当他们打开云Shell并使用 Gsutil 时,他们可以访问存储桶对象(无法访问其他存储桶)。
这是控制台/存储界面的错误吗?
答案 0 :(得分:0)
这不是错误,但 是控制台的一个微妙之处。为了从控制台访问存储桶,您通常使用浏览器导航到它,这是您在屏幕截图中尝试的内容。但是,这样做会失败,因为要做到这一点,你需要为项目提供 permission to list buckets ,即使你有其他人可以自由地统治工作。
有三种方法可以解决这个问题:
1)为您的用户提供包含存储桶的项目的 Viewer 权限。这有利有弊。我会说这可能不值得走这条路线(虽然没那么多因为你的用户会看到其他的桶 - bucket namespace is publicly viewable但是因为这样做会带来一些additional permission nuances你可能不想处理)。
2)直接链接到所需的存储桶,从而避免控制台的“列表存储桶”部分。存储桶的URL格式为:console.cloud.google.com/storage/browser/ [BUCKET_NAME]。我相信这样做无需对您的权限进行任何其他修改。
3)创建仅包含storage.buckets.list权限的custom role,并在项目中为受影响的用户使用该角色。