我的目标是将Google存储的读写权限授予计算实例模板,其方式仅授予必要的权限,但我对GCP中被认为是惯用的内容感到困惑鉴于Google存储桶的many access control options。
目前,我正在创建托管实例组和计算实例模板,并分配以下范围:
https://www.googleapis.com/auth/userinfo.email
https://www.googleapis.com/auth/compute.readonly
https://www.googleapis.com/auth/devstorage.read_write
到计算实例的默认服务帐户。这似乎工作正常,但鉴于上面的链接,我想知道是否应该将存储桶上的访问控制列表(ACL)明确设置为private
?但同样的页面也说"只有当你需要对单个对象进行细粒度控制时才使用ACL,"而在这种情况下,我需要一个粗粒度的政策。这让我想知道我是否应该获得IAM权限(?),但我会在哪里分配?
配置此内容的惯用方法是什么?
答案 0 :(得分:3)
事实证明,此处的关键文档是Google云端存储的Identity and Access Management overview。从那里,我学到了以下内容:
GCS Bucket ACL 指定零个或多个“条目”,其中每个条目都向某些范围授予权限,例如Google Cloud用户或项目。 ACL现在被认为是为存储桶分配权限的传统方法,因为它们只允许粗粒度权限READER
,WRITER
和OWNER
。
为所有GCP资源分配权限的首选方法是使用 IAM政策(overview)。 IAM策略附加到整个组织,项目文件夹,特定项目或特定资源,还指定一个或多个“条目”,其中每个条目授予一个或多个角色 成员。
使用IAM策略,您不会直接向成员授予权限。相反,您声明角色具有哪些权限,并为成员授予角色。
最终,希望您在层次结构的适当级别分配IAM策略,因为知道层次结构的较低级别(如单个资源)继承了更高级别的IAM策略声明的权限(如项目级别) )。
基于此,我得出结论:
projectPrivate
的默认Canned ACL。警告:到目前为止,我只是总结了这里的文档,并且对Google Cloud的实践经验非常有限!欢迎对上述任何更正。