预定义角色
下表介绍了与 Cloud Storage 相关联的 Identity and Access Management (IAM) 角色,并列出了每个角色中包含的权限。除非另有说明,否则这些角色既可以应用于项目、存储桶,也可以应用于托管文件夹。
如需了解如何控制对存储桶的访问权限,请参阅使用 IAM 权限。如需了解如何控制对托管文件夹的访问权限,请参阅对托管文件夹使用 IAM。
角色 | 说明 | 权限 |
---|---|---|
Storage Object Creator
(roles/storage.objectCreator ) |
允许用户创建对象、文件夹和受管理的文件夹。 不提供查看、删除或替换对象的权限。 不提供在对象更新请求中获取对象访问控制列表 (ACL) 或设置对象 ACL 的权限。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.objects.create storage.folders.create storage.managedFolders.create storage.multipartUploads.create storage.multipartUploads.abort storage.multipartUploads.listParts |
Storage Object Viewer
(roles/storage.objectViewer ) |
授予查看对象及其元数据(不包括 ACL)的权限。 还可以列出存储桶中的对象、文件夹和托管文件夹。 |
resourcemanager.projects.get 2resourcemanager.projects.list 2storage.folders.get storage.folders.list storage.managedFolders.get storage.managedFolders.list storage.objects.get storage.objects.list |
Storage Object User
(roles/storage.objectUser ) |
授予创建、查看、列出、更新和删除对象、文件夹和托管文件夹及其元数据的权限。不提供获取或设置 ACL 或 IAM 政策的权限。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.folders.* storage.managedFolders.create storage.managedFolders.delete storage.managedFolders.list storage.managedFolders.get storage.multipartUploads.* storage.objects.create storage.objects.delete storage.objects.get storage.objects.list storage.objects.restore storage.objects.update |
Storage Object Admin
(roles/storage.objectAdmin ) |
授予对对象和文件夹的完全控制权,包括列出、创建、查看、重命名和删除对象和文件夹以及设置对象 ACL。此外,还授予创建、删除、获取和列出托管文件夹的权限。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.folders.* storage.managedFolders.create storage.managedFolders.delete storage.managedFolders.get storage.managedFolders.list storage.objects.* storage.multipartUploads.* |
Storage Folder Admin
(roles/storage.folderAdmin ) |
授予对象、文件夹和托管文件夹的完全控制权,包括列出、创建、查看、删除和管理 IAM 权限。 | orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.folders.* storage.managedFolders.* storage.multipartUploads.* storage.objects.* |
Storage HMAC Key Admin
(roles/storage.hmacKeyAdmin ) |
对项目中 HMAC 密钥的完全控制权。此角色只能应用于项目。 | orgpolicy.policy.get 1storage.hmacKeys.* |
Storage Admin (roles/storage.admin ) |
授予对存储桶、文件夹、托管文件夹和对象的完全控制权,包括获取和设置对象 ACL 或 IAM 政策。 将该角色应用于单个存储桶时,仅可以控制指定的存储桶以及该存储桶中的托管文件夹和对象。 |
firebase.projects.get orgpolicy.policy.get 1resourcemanager.projects.get 2resourcemanager.projects.list 2storage.buckets.* storage.folders.* storage.managedFolders.* storage.objects.* storage.multipartUploads.* |
Storage Insights Admin (roles/storageinsights.admin ) |
授予对存储空间分析库存报告和配置的完全控制权限。 | cloudresourcemanager.projects.get cloudresourcemanager.projects.list 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 |
Storage Insights Collector Service (roles/storage.insightsCollectorService ) |
授予对资产清单报告中对象元数据的读取权限。 | resourcemanager.projects.get resourcemanager.projects.list storage.buckets.getObjectInsights storage.buckets.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.* |
可修改的行为
由于便利值,被授予基本角色的主账号通常拥有对项目的存储桶和对象的额外访问权限。创建存储桶后,系统会为便利值授予某些存储桶级层访问权限,但您稍后可以修改存储桶 IAM 政策和对象 ACL 来移除或更改访问权限。
创建启用了统一存储桶级访问权限的存储桶时,系统会通过便利值授予以下访问权限:
被授予
roles/viewer
的主账号获得存储桶的roles/storage.legacyBucketReader
和roles/storage.legacyObjectReader
角色。被授予
roles/editor
的主账号获得存储桶的roles/storage.legacyBucketOwner
和roles/storage.legacyObjectOwner
角色。被授予
roles/owner
的主账号获得存储桶的roles/storage.legacyBucketOwner
和roles/storage.legacyObjectOwner
角色。
创建未启用统一存储桶级访问权限的存储桶时,系统会通过便利值授予以下访问权限:
被授予
roles/viewer
的主账号拥有存储桶的roles/storage.legacyBucketReader
角色。被授予
roles/editor
的主账号拥有存储桶的roles/storage.legacyBucketOwner
角色。被授予
roles/owner
的主账号拥有存储桶的roles/storage.legacyBucketOwner
角色。此外,存储桶具有默认对象访问控制列表 (ACL)。此默认 ACL 通常应用于存储桶中的新对象,并且通常授予对便利值的其他访问权限。
预定义的旧版角色
下表列出了与访问控制列表 (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.setRetention storage.objects.overrideUnlockedRetention 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.managedFolders.get storage.managedFolders.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.objects.restore storage.objects.setRetention storage.managedFolders.create storage.managedFolders.delete storage.managedFolders.get storage.managedFolders.list storage.multipartUploads.* |
Storage Legacy Bucket Owner
(roles/storage.legacyBucketOwner ) |
授予创建、替换、列出和删除对象和托管文件夹的权限;创建具有保留配置的对象的权限;创建、删除和列出标记绑定的权限;在列出时读取对象元数据(不包括 IAM 政策)的权限;在列出时读取托管文件夹元数据(包括 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.enableObjectRetention storage.buckets.restore storage.buckets.setIamPolicy storage.buckets.getIamPolicy storage.managedFolders.* storage.objects.list storage.objects.create storage.objects.delete storage.objects.restore storage.objects.setRetention storage.multipartUploads.* |
自定义角色
您可能希望定义自己的角色,其中包含您指定的组权限组。为此,IAM 提供了自定义角色。
后续步骤
使用 IAM 权限来控制对存储分区和对象的访问。
查看适用于 Cloud Storage 的 IAM 参考文档,例如哪些 IAM 权限允许用户使用各种工具和 API 执行操作。
如需了解其他 Google Cloud 角色,请参阅了解角色。