我有一个桶,其内容我想要公开阅读。但是,我不希望用户能够通过从URL中删除键名来列出所有内容。
为简单起见,请假设我通过控制台设置这些权限。
Storage Object Viewer
设置allUsers
可让我访问对象并列出内容。Storage Legacy Object Reader
的{{1}}设置允许我访问对象,但不会列出内容。这对我来说很奇怪,为什么许可是“遗产”许可?这是否意味着它将来会被删除?这对我来说是一个非常重要的功能。
此外,如果不会删除它,我如何确保发布到此存储桶的所有未来内容都会继承该存储桶的权限?
提前谢谢。
答案 0 :(得分:2)
它是'Legacy',因为它与通过Object上的旧READER角色授予的pre-IAM权限完全匹配。
我不能确定这些遗留角色的计划是什么(其中有5个),但如果它们被弃用,肯定需要弃用期和公告。
如果您使用“Legacy”角色感到不舒服(或者在任何情况下都没有完全适合您的用例的策划角色),您始终可以创建具有所需权限集的自定义角色。 https://cloud.google.com/iam/docs/creating-custom-roles
至于'如何确保发布到此存储桶的所有未来内容都继承了存储桶的权限'。存储桶IAM策略始终由存储桶中的所有对象继承。当你有一个角色向存储桶策略中的allUsers授予'storage.objects.get'时,它将应用于存储桶中的所有对象。