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

Google Cloud Storage confused about ACL/IAM and legacy permissions

我有一个存储桶,我希望公开其内容。但是,我不希望用户能够通过从 URL.

中删除键名来列出所有内容

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

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

这对我来说很奇怪,为什么权限是 "Legacy" 权限?这是否意味着它将在未来被删除?这对我来说是一个非常重要的功能。

另外,如果不删除,如何保证以后发布到这个bucket的所有内容都继承bucket的权限?

提前致谢。

它是 'Legacy',因为它与通过遗留 READER 角色授予对象的 IAM 之前的权限完全匹配。

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

如果您对使用 'Legacy' 角色感到不自在(或者在没有完全适合您的用例的精选角色的任何情况下),您始终可以创建一个具有您需要的权限集的自定义角色. https://cloud.google.com/iam/docs/creating-custom-roles

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

我不仅想到 “存储遗留对象 Reader”,还想到 “存储遗留桶所有者”"Storage Legacy Bucket Reader""Storage Legacy Bucket Writer""Storage Legacy Object Owner" 已被弃用,因为它们有 “Legacy”一词

但据我研究,即使现在 “2022 年 4 月”,也就是 你问这个问题大约 5 年后 。我认为它们是一种稳定的角色,不容易立即弃用。

如果您担心它们迟早会被弃用,您可以在 this instruction "Creating a custom role".

之后创建一个自定义角色