IAM 角色和权限

本文档列出了您在不同项目中使用 Workload Manager 评估以及自动创建 Workload Manager 服务账号以运行评估所需的角色和权限。

Workload Manager 项目

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

您可以使用使用方项目访问 Google Cloud 控制台中的工作负载管理器,以及创建和运行评估。使用 Google Cloud 控制台创建评估时,您需要在工作流的评估范围部分中指定包含要评估的资源的目标项目。

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

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

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

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

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

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

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

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

用于创建服务账号的权限:
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 控制台或 Workload Manager API 评估工作负载。如果您使用 Google Cloud 控制台,Workload 管理器会自动创建所有所需的服务代理。如果您使用 Workload Manager API,则必须手动创建服务代理。

所需的角色

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

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

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

创建服务代理并授予角色

Google Cloud 控制台

如果您使用 Google Cloud 控制台评估工作负载,则 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 进行访问权限控制

后续步骤