Cloud Storage 的 Cloud IAM 角色

预定义角色

下表介绍了与 Cloud Storage 相关联的 Cloud Identity and Access Management (Cloud IAM) 角色,并列出了每个角色中包含的权限。除非另有说明,否则这些角色既可以应用于整个项目,也可以应用于特定的存储分区。

角色 说明 权限
Storage Object Creator (roles/storage.objectCreator) 允许用户创建对象,不提供查看、删除或覆盖对象的权限。 resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.create
Storage Object Viewer (roles/storage.objectViewer) 授予查看对象及其元数据(不包括 ACL)的权限。

还可以列出存储分区中的对象。

resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.get
storage.objects.list
Storage Object Admin (roles/storage.objectAdmin) 授予对象的完全控制权,包括列出、创建、查看和删除对象。 resourcemanager.projects.get
resourcemanager.projects.list
storage.objects.*
Storage HMAC Key Admin (roles/storage.hmacKeyAdmin) 对项目中 HMAC 密钥的完全控制权。此角色只能应用于项目。 storage.hmacKeys.*
Storage Admin (roles/storage.admin) 授予对存储分区和对象的完全控制权。

将该角色应用于单个存储分区时,仅可以控制指定的存储分区以及该存储分区中的对象。

firebase.projects.get
resourcemanager.projects.get
resourcemanager.projects.list
storage.buckets.*
storage.objects.*

原初角色

原初角色指在引入 Cloud IAM 之前就已存在的角色。这些角色具有独特的特征:

  • 您只能针对整个项目授予原初角色,不能针对项目中的各存储分区。与您为项目授予的其他角色一样,原初角色适用于项目中的所有存储分区和对象。

  • 原初角色包含本部分中未介绍的其他 Google Cloud 服务的额外权限。请参阅原初角色,了解原初角色授予的权限的一般性论述。

  • 某些情况下,您可以群组形式使用初始角色,这会导致具有初始角色的任何成员获得某些资源的额外访问权限。

    • 授予存储分区角色时,您可以群组形式使用原初角色。

    • 在对象上设置 ACL 时,您可以群组形式使用原初角色。

    这种行为通常会导致具有原初角色的成员获得额外的访问权限,如需了解这方面的探讨,请参阅可修改的行为

固有权限

下表介绍始终与各原初角色关联的 Cloud Storage 权限。

角色 说明 Cloud Storage 权限
Viewer (roles/viewer) 授予列出项目中存储分区的权限;授予列出时查看存储分区元数据(不包括 ACL)的权限;以及授予列出和获取项目中的 HMAC 密钥的权限。 storage.buckets.list
storage.hmacKeys.get
storage.hmacKeys.list
Editor (roles/editor) 授予创建、列出和删除项目中的存储分区的权限;授予列出时查看存储分区元数据(不包括 ACL)的权限;以及授予控制项目中的 HMAC 密钥的权限。 storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*
Owner (roles/owner)

授予创建、列出和删除项目中的存储分区的权限;授予列出时查看存储分区元数据(不包括 ACL)的权限;以及授予控制项目中的 HMAC 密钥的权限。

在 Google Cloud 中,具有此角色的成员通常可以执行管理任务,例如,更改成员在项目中的角色或更改结算功能。

storage.buckets.create
storage.buckets.delete
storage.buckets.list
storage.hmacKeys.*

可修改的行为

获授原初角色的成员除了与原初角色关联的固有权限之外,通常还具有额外的访问权限。这是因为原初角色本身就具有存储分区和对象的访问权限。下表介绍通常与各原初角色关联的额外 Cloud Storage 访问权限。您可以修改或删除授予原初角色的该额外访问权限。

角色 拥有该角色的成员所获得的额外访问权限
Viewer (roles/viewer)
  • 针对项目中的各存储分区,授予了 roles/storage.legacyBucketReader 角色。
  • 针对项目中的各存储分区,授予了默认对象访问控制列表中的 READER 权限。
  • 针对项目中创建时启用了统一存储分区级访问权限的存储分区,授予了 roles/storage.legacyObjectReader 角色。
Editor (roles/editor)
  • 针对项目中的各存储分区,授予了 roles/storage.legacyBucketOwner 角色。
  • 针对项目中的各存储分区,授予了默认对象访问控制列表中的 OWNER 权限。
  • 针对项目中创建时启用了统一存储分区级访问权限的存储分区,授予了 roles/storage.legacyObjectOwner 角色。
Owner (roles/owner)
  • 针对项目中的各存储分区,授予了 roles/storage.legacyBucketOwner 角色。
  • 针对项目中的各存储分区,授予了默认对象访问控制列表中的 OWNER 权限。
  • 针对项目中创建时启用了统一存储分区级访问权限的存储分区,授予了 roles/storage.legacyObjectOwner 角色。

预定义的旧版角色

下表列出了与访问控制列表 (ACL) 权限具有同等效果的 Cloud IAM 角色。您只能针对各存储分区而不能针对项目授予旧版角色

角色 说明 权限
Storage Legacy Object Reader (roles/storage.legacyObjectReader) 授予查看对象及其元数据(不包括 ACL)的权限。 storage.objects.get
Storage Legacy Object Owner (roles/storage.legacyObjectOwner) 授予查看和修改对象及其元数据(包括 ACL)的权限。 storage.objects.get
storage.objects.update
storage.objects.setIamPolicy
storage.objects.getIamPolicy
Storage Legacy Bucket Reader (roles/storage.legacyBucketReader) 授予列出存储分区的内容并读取存储分区元数据(不包括 Cloud IAM 政策)的权限。此外,还授予在列出对象时读取对象元数据(不包括 Cloud IAM 政策)的权限。

对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 Cloud IAM 与 ACL 的关系

storage.buckets.get
storage.objects.list
Storage Legacy Bucket Writer (roles/storage.legacyBucketWriter) 授予创建、覆盖和删除对象的权限;授予列出存储分区中的对象的权限;授予列出时读取对象元数据(不包括 Cloud IAM 政策)的权限;授予读取存储分区元数据(不包括 Cloud IAM 政策)的权限。

对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 Cloud IAM 与 ACL 的关系

storage.buckets.get
storage.objects.list
storage.objects.create
storage.objects.delete
Storage Legacy Bucket Owner (roles/storage.legacyBucketOwner) 授予创建、覆盖和删除对象的权限;授予列出存储分区中的对象的权限;授予列出时读取对象元数据(不包括 Cloud IAM 政策)的权限;授予读取存储分区元数据(包括 Cloud IAM 政策)的权限。

对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 Cloud IAM 与 ACL 的关系

storage.buckets.get
storage.buckets.update
storage.buckets.setIamPolicy
storage.buckets.getIamPolicy
storage.objects.list
storage.objects.create
storage.objects.delete

自定义角色

您可能想要定义自己的角色(包含您指定的一组权限)。为此,Cloud IAM 提供了自定义角色

后续步骤