IAM 角色和权限

本文档列出了您需要在不同项目中拥有的角色和权限,以便使用 Workload Manager 评估功能,并自动创建 Workload Manager 服务账号来运行评估。

Workload Manager 项目

Workload Manager 评估会扫描多个项目(称为目标项目)中的资源,但评估结果仅存储在一个项目(称为使用方项目)中。

您可以使用消费者项目在Google Cloud 控制台中访问 Workload Manager,并创建和运行评估。使用 Google Cloud 控制台创建评估时,您可以在工作流程的评估范围部分中指定包含要评估的资源的目标项目。

如果要评估的资源位于您创建 Workload Manager 评估的同一项目中,则相应的使用方项目也会被视为目标项目之一。

创建和运行评估所需的权限摘要

下表总结了消费者项目和目标项目中的用户使用 Workload Manager 创建和运行评估所需的权限。如需获得所需权限,请让管理员向您授予包含所需权限的角色或创建自定义角色。

操作 使用方项目 目标项目
启用 Workload Manager API 权限:
serviceusage.services.enable

包含相应权限的预定义角色:
roles/serviceusage.serviceUsageAdmin
创建评估 创建服务账号的权限:
resourcemanager.projects.setIamPolicy

包含相应权限的预定义角色:
roles/resourcemanager.projectIamAdmin

仅在创建第一个评估时为必需。

授予创建评估权限的预定义角色:
roles/workloadmanager.evaluationAdmin

授予创建提醒通知的权限的预定义角色:
roles/monitoring.metricWriter

如需使用自定义规则创建评估,您还需要以下权限:

可授予读取 Cloud Asset Inventory 数据权限的预定义角色:
roles/cloudasset.owner

授予读取存储在 Cloud Storage 存储桶中的规则的权限的预定义角色:
roles/storage.objectViewer

授予将评估结果写入 BigQuery 数据集的权限的预定义角色:
roles/bigquery.admin

创建服务账号的权限:
resourcemanager.projects.setIamPolicy

包含相应权限的预定义角色:
roles/resourcemanager.projectIamAdmin

仅在创建第一个评估时为必需。

运行评估 权限:
workloadmanager.evaluations.run

包含相应权限的预定义角色:
roles/workloadmanager.evaluationAdmin

查看评估结果 权限:
workloadmanager.results.list

包含相应权限的预定义角色:
roles/workloadmanager.evaluationAdmin

roles/workloadmanager.evaluationViewer

Workload Manager 服务代理

Workload Manager 使用服务代理来控制资源与关联项目之间的访问和通信。

您可以使用 Google Cloud console 或 Workload Manager API 来评估工作负载。如果您使用 Google Cloud console,Workload Manager 会自动创建所有必需的服务代理。如果您使用 Workload Manager API,则必须手动创建服务代理。

所需的角色

如需获得创建服务代理所需的权限,请让您的管理员为您授予范围内的每个目标项目的 Project IAM Admin (roles/resourcemanager.projectIamAdmin) IAM 角色。 如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限

此预定义角色包含创建服务代理所需的 resourcemanager.projects.setIamPolicy 权限。

您也可以使用自定义角色或其他预定义角色来获取此权限。

创建服务代理并授予角色

Google Cloud 控制台

如果您使用 Google Cloud console 评估工作负载,Workload Manager 会在消费者项目中自动创建服务代理。

此服务代理的电子邮件地址为 service-PROJECT_NUMBER@gcp-sa-workloadmanager.iam.gserviceaccount.com,称为“Workload Manager 服务账号”。

Workload Manager 服务代理需要具有以下角色才能运行评估。如果系统提示,请向服务代理授予这些角色。

  • Workload Manager Service Agent (roles/workloadmanager.serviceAgent):目标项目中必需的角色。
  • Workload Manager Worker (roles/workloadmanager.worker):仅当您为评估设置了频率时,才需要在消费者项目中添加此角色。

Workload Manager API

如果您使用 Workload Manager API 评估工作负载,则必须在创建评估之前,在消费方项目中手动创建 Workload Manager 服务代理。 如需创建服务代理,请使用 gcloud beta services identity create 命令

  gcloud beta services identity create --service=workloadmanager.googleapis.com  \
      --project=PROJECT_NUMBER

PROJECT_NUMBER 替换为要在其中创建服务代理的使用方项目的数字 ID。

创建服务代理后,您必须向该服务代理授予以下角色:

  • Workload Manager Service Agent (roles/workloadmanager.serviceAgent):目标项目中必需的角色。
  • Workload Manager Worker (roles/workloadmanager.worker):仅当您为评估设置了频率时,才需要在消费者项目中添加此角色。

如需了解详情,请参阅向服务代理授予角色

其他 Workload Manager 角色

用户需要额外的 Workload Manager 角色才能进一步控制对 Workload Manager 评估和资源的访问权限。

如需了解详情,请参阅 Workload Manager:使用 IAM 进行访问权限控制

后续步骤