Google Cloud Storage 对 ACL/IAM 和旧权限感到困惑

Bha*_*tel 5 permissions roles deprecated google-cloud-storage google-cloud-platform

我有一个存储桶,我希望其内容可供公众阅读。但是,我不希望用户能够通过从 URL 中删除键名来列出所有内容。

为了简单起见,请假设我是通过控制台设置这些权限的。

  1. 设置Storage Object Viewer允许allUsers我访问对象并列出内容。
  2. 设置Storage Legacy Object Reader允许allusers我访问对象但不列出内容。

这对我来说似乎很奇怪,为什么该权限是“旧版”权限?这是否意味着将来它将被删除?这对我来说是一个非常重要的功能。

另外,如果不删除,如何确保以后发布到该存储桶的所有内容都继承该存储桶的权限?

先感谢您。

小智 6

它是“旧版”,因为它与通过对象上的旧版 READER 角色授予的 pre-IAM 权限完全匹配。

我不能肯定地说这些遗留角色的计划是什么(其中有 5 个),但如果它们被弃用,那么肯定需要有一个弃用期和一个公告。

如果您对使用“旧版”角色感到不舒服(或者在没有完全适合您的用例的策划角色的任何情况下),您始终可以创建一个具有您所需的权限集的自定义角色。 https://cloud.google.com/iam/docs/creating-custom-roles

至于“如何确保以后发布到该存储桶的所有内容都继承该存储桶的权限”。存储桶 IAM 策略始终由存储桶中的所有对象继承。由于您拥有将“storage.objects.get”授予存储桶策略上的 allUsers 的角色,因此它将应用于存储桶中的所有对象。