Google cloud storage 谷歌云存储没有';t在浏览器中为有权访问bucket的用户显示bucket

Google cloud storage 谷歌云存储没有';t在浏览器中为有权访问bucket的用户显示bucket,google-cloud-storage,Google Cloud Storage,在我们的项目中,我们有一群人,他们应该只能完全访问一个bucket,他们不应该看到其他bucket或其他bucket上的对象。 因此,我更改了bucket的权限,并为该特定bucket(而不是整个项目)添加了用户作为存储管理员 在这种情况下,当他们使用控制台/存储器时,会看到以下消息: 但是当他们打开云Shell并使用Gsutil时,他们可以访问bucket对象(不能访问其他bucket) 这是控制台/存储界面上的一个bug吗?这不是bug,但它是控制台的一个微妙之处。为了从控制台访问buck

在我们的项目中,我们有一群人,他们应该只能完全访问一个bucket,他们不应该看到其他bucket或其他bucket上的对象。 因此,我更改了bucket的权限,并为该特定bucket(而不是整个项目)添加了用户作为存储管理员

在这种情况下,当他们使用控制台/存储器时,会看到以下消息:

但是当他们打开云Shell并使用Gsutil时,他们可以访问bucket对象(不能访问其他bucket)

这是控制台/存储界面上的一个bug吗?

这不是bug,但它是控制台的一个微妙之处。为了从控制台访问bucket,通常使用浏览器导航到它,这是您在屏幕截图中尝试的内容。不过,这是失败的,因为要做到这一点,您需要一个项目,即使您有在bucket中工作的自由

有三种方法可以解决这个问题:

1) 为用户授予包含bucket的项目的查看器权限。这有优点也有缺点。我想说,这可能不值得走这条路(尽管不值得走这条路,因为你的用户会看到其他桶——无论如何——但因为这样做会带来一些你可能不想处理的桶)

2) 直接链接到所需的bucket,从而避免控制台的“列出bucket”部分。bucket的URL格式为:console.cloud.google.com/storage/browser/[bucket\u NAME]。我相信这将工作,没有任何额外的修改您的权限


3) 创建一个仅包含storage.bucket.list权限的角色,并在项目中为受影响的用户使用该角色。

OP确实可以尝试使用此角色。但是,我认为这不应该是权限问题,因为授予该项目的
存储.bucket.list
权限。@Nathan:第一个根本不是正确的解决方案,因为如果我给他们项目的查看器访问权限,他们可以通过其他bucket下载文件(他们不能在这些存储桶上创建文件夹或上载文件),这是我们应该完全避免的,因为存在带有敏感数据的文件!@Yandrak3-如果OP将storage.admin应用于整个项目,那么当放置在单个存储桶上时,情况就是这样(正如我在问题中解释的那样),storage.buckets.list权限无效。我意识到第三个选项与第一个类似,但比第一个更简单。我已更新了上面的答案。第三个自定义角色的选项绝对是我想要的。非常感谢!