Google Cloud Platform 中的 Project Browser 角色和 Project Viewer 角色有什么区别

int*_*cho 10 google-cloud-platform google-iam

根据控制台弹出窗口,项目浏览器角色具有对项目资源的浏览访问权限,而项目查看器具有对这些资源的读取访问权限。

这是否意味着使用浏览器角色我只能列出存储在项目存储桶中的文件名,但我需要查看器角色来下载这些文件?

int*_*cho 6

根据文档

项目浏览器角色具有“浏览项目层次结构的读取权限,包括文件夹、组织和 Cloud IAM 政策。此角色不包含查看项目中资源的权限。”


Joh*_*ley 6

这是否意味着使用浏览器角色我只能列出存储在项目存储桶中的文件名,但我需要查看器角色来下载这些文件?

浏览器角色roles/browser没有任何访问 Google Cloud Storage 的权限。您无法列出存储桶中的对象。查看者角色roles/viewer无权查看(下载)Google Cloud Storage 对象。

为了更好地理解角色,您需要知道角色包含哪些权限。

如果您担任角色roles/browser并查看权限:

gcloud iam roles describe roles/browser
Run Code Online (Sandbox Code Playgroud)

你会发现这个角色有以下六种权限:

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
Run Code Online (Sandbox Code Playgroud)

请注意,此角色无权访问 Google Cloud Storage。

对比一下如果你查看权限roles/viewer你会发现这个角色有721个权限。我已将此列表限制为仅存储权限:

storage.buckets.list
Run Code Online (Sandbox Code Playgroud)

您将看到此角色仅具有列出存储桶内容的权限。没有权限查看存储桶中对象的内容。

要查看(下载)Google Cloud Storage 对象,您需要获得storage.objects.get权限。这是包含在角色roles/storage.object.viewerroles/storage.objectAdminroles/storage.adminroles/storage.legacyObjectReader

  • 虽然从技术上讲,“查看者角色/查看者没有查看(下载)Google Cloud Storage 对象的权限”是正确的,但这可能会产生误导,因为 Google 会自动向项目查看者授予“roles/storage.legacyBucketReader”和“roles”新创建的存储桶上的 / storage.legacyObjectReader` 角色为项目查看者提供了 `storage.buckets.get`、`storage.objects.list` 和 `storage.objects.get` 权限。因此,虽然他们没有被授予在项目级别查看 GCS 对象的权限,但他们处于存储桶级别。 (5认同)