GCloud存储:如何授予权限在控制台中查看存储桶,但仅查看单个存储桶中的文件?

时间:2018-12-07 13:12:13

标签: google-cloud-platform google-cloud-storage

好吧,这让我把头发拔了,我简直不敢相信它是如此复杂...

因此,要达到主题的目的,而又不授予用户对所有存储桶中所有文件的读取访问权限(proj中的其他存储桶都具有敏感数据)

我导航到存储桶->权限,并将用户添加为Storage Object Viewer,希望这样做就足够了(以后如果您有直接链接,这似乎就足够了-也许还有api),但是该用户试图浏览控制台卡在https://console.cloud.google.com/storage/browser?project=xyz(存储桶浏览器页面)上。消息是:“您无权查看此项目中的“存储浏览器”或“存储设置”页面”

如何赋予用户访问列表存储区的权限(并因此通过控制台中的UI路径,而又不授予对所有存储的常规读取访问权限?)没有所谓的“存储浏览器”或类似角色...甚至可以创建自定义角色,但需要什么权限。显然storage.objects.list不是。

2 个答案:

答案 0 :(得分:2)

快速解答:

您需要使用以下自定义角色:

storage.buckets.list

Rant答案: 终于找到了完整的权限参考。 https://cloud.google.com/storage/docs/access-control/iam-permissions

看起来很容易,因为知道有storage.bucket ...权限。但是,使用UI仍然是创建角色的噩梦。模态添加权限很小,只能按角色^^过滤。我不知道具有这些权限的角色,但我知道确切的权限。每页显示10个18xx权限。幸运的是,存储许可的使用期限非常接近尾声,因此添加服务栏+反向排序仅需要2个页面步骤。哇,这就像他们不想让人们理解这一点。

答案 1 :(得分:1)

自 2021 年 1 月起,为了让用户能够访问云存储控制台和特定存储分区,例如查看或上传文件:

  1. 在 Cloud IAM 中创建自定义角色
  • 此自定义角色需要 resourcemanager.projects.getstorage.buckets.list 权限。
  • 第一个权限允许用户实际选择相关项目。
  • 第二个权限允许用户列出您账户中的所有存储桶。遗憾的是,无法仅列出您希望用户看到的存储分区,但由于您可以控制他们对存储分区的访问,因此您的数据仍然是私密且安全的。
  1. 创建 IAM 用户
  • 进入 Cloud IAM。
  • 添加一个 IAM 用户,为他们分配您在第 1 步中创建的新角色。
  1. 为存储桶资源分配权限。
  • 进入您要提供访问权限的存储分区。
  • 进入权限窗格。
  • 为您在第 2 步中创建的 IAM 用户分配权限。分配适合您情况的存储角色(即 Storage Admin,如果他们需要读取对象/写入对象/更新权限/完全配置存储桶的存储桶或 Storage Viewer 用于只读访问)。

您可以使用个人电子邮件地址轻松测试这一点,并查看权限是否正确以及您没有造成数据泄露。

我的用例:我需要让第三方开发人员访问存储我们营销网站资产的存储桶。他不应该访问任何其他存储桶,但应该可以自由添加/删除此营销存储桶中的资产。因此,我分配了开发人员 Storage Object Admin 角色。