Google cloud storage 保护Google存储桶的惯用方法

Google cloud storage 保护Google存储桶的惯用方法,google-cloud-storage,google-compute-engine,Google Cloud Storage,Google Compute Engine,我的目标是以只授予必要权限的方式将Google存储桶上的读写权限授予计算实例模板,但我不清楚GCP中针对Google存储桶的定义是什么 目前,我正在创建托管实例组和计算实例模板,并分配以下范围: https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/compute.readonly https://www.googleapis.com/auth/devstorage.read_write

我的目标是以只授予必要权限的方式将Google存储桶上的读写权限授予计算实例模板,但我不清楚GCP中针对Google存储桶的定义是什么

目前,我正在创建托管实例组和计算实例模板,并分配以下范围:

  • 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许可(?),但我应该在哪里分配它


配置这个的惯用方法是什么?

这里的关键文档是针对Google云存储的。从那里,我学到了以下几点:

  • GCS BucketACL指定零个或多个“条目”,其中每个条目向某些范围授予权限,例如Google云用户或项目。ACL现在被认为是一种为bucket分配权限的传统方法,因为它们只允许粗粒度的权限
    读卡器
    写卡器
    所有者

  • 为所有GCP资源分配权限的首选方法是使用IAM策略。IAM策略附加到整个组织、项目文件夹、特定项目或特定资源,并指定一个或多个“条目”,其中每个条目将角色授予一个或多个成员

  • 使用IAM策略,您不会直接向成员授予权限。相反,您可以声明角色具有哪些权限,并向成员授予角色

最终,希望您在层次结构的适当级别上分配IAM策略,因为您知道层次结构的较低级别(如单个资源)继承了IAM策略在较高级别(如项目级别)上声明的权限

基于此,我得出以下结论:

  • 您应该通过在层次结构的正确级别分配IAM策略,尝试将权限分配给GCS Bucket
  • 但是,要限制每个对象的权限,必须使用ACL
  • 新创建Bucket时,除非您另有指定,否则它将被定义为默认的
    projectPrivate
  • 到目前为止,Terraform还没有对IAM策略的成熟支持,该资源代表了保护存储桶的传统方法的接口

警告:我只是总结一下这里的文档,到目前为止,我对谷歌云的实践经验非常有限!欢迎对以上内容进行任何更正。

IAM通常是您的首选。该文档提到“在大多数情况下,您应该使用IAM权限而不是ACL”。实际上,我正在使用Teraform调用Google API。Terraform文档意味着ACL是一个不错的选择,但甚至可以将IAM策略分配给Google存储桶吗?在这种情况下,这似乎是直观的吗?