预定义角色
下表介绍了与 Cloud Storage 相关联的 Identity and Access Management (IAM) 角色,并列出了每个角色中包含的权限。除非另有说明,否则这些角色既可以应用于整个项目,也可以应用于特定的存储分区。
如需了解如何控制对存储桶和对象的访问权限,请参阅使用 IAM 权限。
角色 | 说明 | 权限 |
---|---|---|
Storage Object Creator
(roles/storage.objectCreator ) |
允许用户创建对象,不提供查看、删除或替换对象的权限。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.objects.create storage.multipartUploads.create storage.multipartUploads.abort storage.multipartUploads.listParts |
Storage Object Viewer
(roles/storage.objectViewer ) |
授予查看对象及其元数据(不包括 ACL)的权限。 还可以列出存储分区中的对象。 |
resourcemanager.projects.get 2resourcemanager.projects.list 2storage.objects.get storage.objects.list |
Storage Object Admin
(roles/storage.objectAdmin ) |
授予对象的完全控制权,包括列出、创建、查看和删除对象。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.objects.* storage.multipartUploads.* |
Storage HMAC Key Admin
(roles/storage.hmacKeyAdmin ) |
对项目中 HMAC 密钥的完全控制权。此角色只能应用于项目。 | orgpolicy.policy.get 1storage.hmacKeys.* |
Storage Admin (roles/storage.admin ) |
授予对存储分区和对象的完全控制权。 将该角色应用于单个存储分区时,仅可以控制指定的存储分区以及该存储分区中的对象。 |
firebase.projects.get orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.buckets.* storage.objects.* storage.multipartUploads.* |
Storage Insights Admin (roles/storageinsights.admin ) |
授予对存储空间分析库存报告和配置的完全控制权限。 |
storageinsights.reportConfigs.create storageinsights.reportConfigs.* storageinsights.reportDetails.* |
Storage Insights Viewer (roles/storageinsights.viewer ) |
授予对存储空间分析商库存报告和配置的只读权限。 | cloudresourcemanager.projects.get cloudresourcemanager.projects.list storageinsights.reportConfigs.list storageinsights.reportConfigs.get storageinsights.reportDetails.list storageinsights.reportDetails.get |
1 orgpolicy.policy.get
权限允许主帐号了解项目需遵守的组织政策限制条件。
此权限当前仅在项目级或更高级层授予角色时有效。
2 如需详细了解 resourcemanager.projects.*
权限,请参阅使用 IAM 对项目进行访问权限控制。
基本角色
基本角色指在引入 IAM 之前就已存在的角色。这些角色具有独特的特征:
您只能针对整个项目授予基本角色,不能针对项目中的各存储分区。与您为项目授予的其他角色一样,基本角色适用于项目中的所有存储分区和对象。
基本角色包含本部分中未介绍的其他 Google Cloud 服务的额外权限。请参阅基本角色,了解基本角色授予的权限的一般性论述。
每个基本角色都有一个便利值,您可以通过这些角色使用基本角色,将其视为组。以这种方式使用时,任何具有基本角色的主帐号都将被视为组的成员。根据便利值所具有的访问权限,组中的每个人都将获得额外的资源访问权限。
在为存储分区授予角色时,可以使用便利值。
在对象上设置 ACL 时,可以使用便利值。
基本角色本身并不具有名称所授予的 Cloud Storage 资源的所有访问权限。相反,它们本身使用预期值提供一部分预期访问权限,其余部分为预期访问权限。由于与任何其他 IAM 主帐号一样,用户可以手动添加或移除便利值,因此可以撤消主帐号可能期望具有的访问权限。
便利值通常会导致具有基本角色的主帐号获得额外的访问权限,如需了解这方面的探讨,请参阅可修改的行为。
固有权限
下表介绍始终与各基本角色关联的 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.buckets.createTagBinding storage.buckets.deleteTagBinding storage.buckets.listEffectiveTags storage.buckets.listTagBindings storage.hmacKeys.* |
可修改的行为
下表介绍了由于便利值而导致通常与每个基本角色关联的其他 Cloud Storage 访问权限。在创建存储分区时会授予其他访问权限,但是您以后可以修改存储分区 IAM 政策和对象 ACL 来移除或更改它。
角色 | 因便利值而额外获得的访问权限 |
---|---|
Viewer (roles/viewer ) |
|
Editor (roles/editor ) |
|
Owner (roles/owner ) |
|
预定义的旧版角色
下表列出了与访问控制列表 (ACL) 权限具有同等效果的 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 ) |
授予列出存储分区的内容并读取存储分区元数据(不包括 IAM 政策)的权限。此外,还授予在列出对象时读取对象元数据(不包括 IAM 政策)的权限。 对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 IAM 与 ACL 的关系。 |
storage.buckets.get storage.objects.list storage.multipartUploads.list |
Storage Legacy Bucket Writer
(roles/storage.legacyBucketWriter ) |
授予创建、替换和删除对象的权限;授予列出存储分区中的对象的权限;授予列出时读取对象元数据(不包括 IAM 政策)的权限;授予读取存储分区元数据(不包括 IAM 政策)的权限。 对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 IAM 与 ACL 的关系。 |
storage.buckets.get storage.objects.list storage.objects.create storage.objects.delete storage.multipartUploads.* |
Storage Legacy Bucket Owner
(roles/storage.legacyBucketOwner ) |
授予创建、替换和删除对象的权限;授予列出存储桶中的对象的权限;授予创建、删除和列出标记绑定的权限;授予列出时读取对象元数据(不包括 IAM 政策)的权限;授予读取和修改存储桶元数据(包括 IAM 政策)的权限。 对于此角色的使用也反映在存储分区的 ACL 中。如需了解详情,请参阅 IAM 与 ACL 的关系。 |
storage.buckets.get storage.buckets.createTagBinding storage.buckets.deleteTagBinding storage.buckets.listEffectiveTags storage.buckets.listTagBindings storage.buckets.update storage.buckets.setIamPolicy storage.buckets.getIamPolicy storage.objects.list storage.objects.create storage.objects.delete storage.multipartUploads.* |
自定义角色
您可能想要定义自己的角色(包含您指定的一组权限)。为此,IAM 提供了自定义角色。
后续步骤
使用 IAM 权限来控制对存储分区和对象的访问。
了解哪些 IAM 权限允许用户使用 Cloud Console、gsutil、JSON API、XML API 来执行操作。
如需了解其他 Google Cloud 角色,请参阅了解角色。