【发布时间】:2019-02-20 03:56:58
【问题描述】:
根据控制台弹出窗口,项目浏览者角色具有对项目资源的浏览权限,而项目查看者对这些资源具有读取权限。
这是否意味着使用浏览器角色我只能列出存储在项目存储桶中的文件名,但我需要查看器角色才能下载这些文件?
【问题讨论】:
标签: google-cloud-platform google-iam
根据控制台弹出窗口,项目浏览者角色具有对项目资源的浏览权限,而项目查看者对这些资源具有读取权限。
这是否意味着使用浏览器角色我只能列出存储在项目存储桶中的文件名,但我需要查看器角色才能下载这些文件?
【问题讨论】:
标签: google-cloud-platform google-iam
这是否意味着使用浏览器角色我只能列出 存储在项目存储桶中的文件名,但我需要查看者角色 下载那些文件?
浏览器角色roles/browser 没有访问 Google Cloud Storage 的任何权限。您无法列出存储桶中的对象。查看者角色roles/viewer 无权查看(下载)Google Cloud Storage 对象。
为了更好地理解角色,您需要知道角色包含哪些权限。
如果您担任roles/browser 角色并查看权限:
gcloud iam roles describe roles/browser
你会发现这个角色有以下六种权限:
description: Access to browse GCP resources.
etag: AA==
includedPermissions:
- resourcemanager.folders.get
- resourcemanager.folders.list
- resourcemanager.organizations.get
- resourcemanager.projects.get
- resourcemanager.projects.getIamPolicy
- resourcemanager.projects.list
name: roles/browser
stage: GA
title: Browser
请注意,此角色无权访问 Google Cloud Storage。
相比之下,如果您查看roles/viewer 的权限,您会发现该角色有 721 个权限。我已将此列表限制为仅存储权限:
storage.buckets.list
您将看到此角色仅具有列出存储桶内容的权限。未授予查看存储桶中对象内容的权限。
要查看(下载)Google Cloud Storage 对象,您需要storage.objects.get 权限。这包含在角色roles/storage.object.viewer、roles/storage.objectAdmin、roles/storage.admin 和roles/storage.legacyObjectReader 中。
【讨论】:
roles/ storage.legacyObjectReader 新创建的存储桶上的角色,为项目查看者提供 storage.buckets.get、storage.objects.list 和 storage.objects.get 权限。因此,虽然他们没有被授予在项目级别查看 GCS 对象的权限,但他们处于存储桶级别。
Project Viewer 之类的角色是遗留的,第一个操作应该是删除该角色并分配提供最少特权的角色。这些遗留角色在 IAM 之前就已经存在。它们的用途是为那些不知道由谁实施 IAM 的人解决技术支持问题。
role/viewer 角色,则他们无法查看存储桶中对象的内容,但在实践中,GCP 如何创建存储桶并非如此,因为它默认授予storage.legacyObjectReader 桶上的角色到 Project Viewers。最终,这不仅仅是角色中的权限。
根据docs
项目浏览器角色具有“浏览项目层次结构的读取权限,包括文件夹、组织和 Cloud IAM 政策。此角色不包括查看项目中资源的权限。”
【讨论】: