本页面介绍如何控制对 Workload Manager 资源的访问权限。
Workload Manager 使用 Identity and Access Management (IAM) 来 控制对资源的访问权限。IAM 是一种工具,用于管理资源的精细授权 for your Google Cloud 。换句话说,IAM 可让您控制谁可以对哪些资源执行哪些操作。
如需使用 IAM 为用户授予对资源的访问权限,您可以向用户授予特定角色。 IAM 角色可让主账号拥有对 Workload Manager 资源执行任务的权限。
如需详细了解 IAM 及其功能,请参阅 IAM 文档。
管理对 Workload Manager 资源的访问权限
使用 IAM 管理访问权限的最常见方式是使用 允许政策。允许政策 会列出哪些主账号有权访问资源,以及他们可以对 资源执行哪些操作。
以下部分介绍了如何使用 控制台和 Google Cloud CLI 通过允许政策授予和撤消单个角色。 Google Cloud 您还可以同时授予和撤消多个 角色。如需了解详情,请参阅 IAM 文档中的管理对项目、文件夹和 组织的访问权限。
这些部分重点介绍如何在项目级层授予和撤消访问权限,这会控制用户对项目和项目内所有资源的访问权限。
您还可以使用附加到不同 Google Cloud 资源的 允许政策,在资源层次结构的其它级层管理访问权限。如需了解详情,请参阅 IAM 文档中的使用资源层次结构进行访问权限控制。
并非所有资源都支持允许政策。如需了解哪些资源可以附加允许政策 ,请参阅 IAM 文档中支持 允许政策的资源。
如需了解您可以使用 IAM 控制访问权限的其他政策(例如 拒绝政策),请参阅 IAM 政策类型在 IAM 文档中。
授予单个 IAM 角色
如需向主账号授予单个角色,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,前往 IAM 页面。
- 选择一个项目、文件夹或组织。
- 选择要向其授予角色的主账号:
- 从下拉列表中选择要授予的角色。出于最佳安全 做法考虑,请选择一个仅包含您的 主账号所需权限的角色。
- 可选:为角色添加条件。
- 点击保存。将向主账号授予资源上的角色。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟来完成初始化。
-
add-iam-policy-binding命令使您可以快速向主账号授予角色。在使用下面的命令数据之前,请先进行以下替换:
-
RESOURCE_TYPE:要管理访问权限的资源类型。请使用projects、resource-manager folders或organizations。 -
RESOURCE_ID:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project。文件夹和组织 ID 是数字,例如123456789012。 -
PRINCIPAL:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID。 例如user:my-user@example.com或principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。如需查看PRINCIPAL可以采用的值的完整列表,请参阅主账号标识符。对于主账号类型
user,标识符中的域名必须是 Google Workspace 网域或 Cloud Identity 网域。如需了解如何设置 Cloud Identity 网域,请参阅 Cloud Identity 概览。 -
ROLE_NAME:要授予的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER - 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER - 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解完整的预定义角色的列表,请参阅了解角色。
- 预定义角色:
-
CONDITION:要添加到角色绑定的条件。如果您不想添加条件,请使用值None。如需详细了解条件,请参阅条件概览。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME \ --condition=CONDITION
Windows (PowerShell)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ` --member=PRINCIPAL --role=ROLE_NAME ` --condition=CONDITION
Windows (cmd.exe)
gcloud RESOURCE_TYPE add-iam-policy-binding RESOURCE_ID ^ --member=PRINCIPAL --role=ROLE_NAME ^ --condition=CONDITION
响应包含更新后的 IAM 允许政策。
-
撤消单个 IAM 角色
如需撤消主账号的单个角色,请执行以下操作:
控制台
- 在 Google Cloud 控制台中,前往 IAM 页面。
- 选择一个项目、文件夹或组织。
- 找到包含要撤消其访问权限的主账号的行。然后, 点击 修改主账号在该行中。
- 点击要撤消的角色对应的删除 按钮 ,然后点击保存。
gcloud
-
在 Google Cloud 控制台中,激活 Cloud Shell。
Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟来完成初始化。
-
如需撤消用户的角色,请运行
remove-iam-policy-binding命令:gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \ --member=PRINCIPAL --role=ROLE_NAME
请提供以下值:
-
RESOURCE_TYPE:要管理其访问权限的资源类型。请使用projects、resource-manager folders或organizations。 -
RESOURCE_ID:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如my-project。 文件夹和组织 ID 是数字,例如123456789012。 -
PRINCIPAL:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID。 例如user:my-user@example.com或principalSet://iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com。对于主账号类型
user,标识符中的域名必须是 Google Workspace 网域或 Cloud Identity 网域。如需了解如何设置 Cloud Identity 网域,请参阅 Cloud Identity 概览。 -
ROLE_NAME:要撤消的角色的名称。请采用以下某种格式:- 预定义角色:
roles/SERVICE.IDENTIFIER - 项目级自定义角色:
projects/PROJECT_ID/roles/IDENTIFIER - 组织级自定义角色:
organizations/ORG_ID/roles/IDENTIFIER
如需了解完整的预定义角色的列表,请参阅了解角色。
- 预定义角色:
例如,如需撤消服务帐号
example-service-account@example-project.iam.gserviceaccount.com在项目example-project中的 Project Creator 角色,请运行以下命令:gcloud projects remove-iam-policy-binding example-project \ --member=serviceAccount:example-service-account@example-project.iam.gserviceaccount.com \ --role=roles/resourcemanager.projectCreator
-
为帮助避免撤消任何必要的角色,您可以 启用 更改风险 建议。如果您尝试 撤消 确定为 重要角色的项目级层角色,更改风险建议会生成警告。 Google Cloud
设置访问条件
借助 IAM Conditions,您可以仅在满足某些指定条件时才向主账号授予 访问权限,从而使政策更加精细。条件基于 与主账号、资源和请求相关的属性。例如,您可以仅在主账号从特定位置或在特定时间访问资源时才授予其访问权限。
允许政策中的条件基于以下类型的属性:
- 资源属性:包括资源的服务、类型或名称 的资源。这些属性通常用于更改角色绑定授予的访问权限的范围。
- 请求属性:包括请求的详细信息,例如 发出请求的主账号的时间或访问权限级别。借助这些 属性,您可以创建条件来评估请求的详细信息,例如其访问权限级别、日期和时间、目标 IP 地址和端口或预期网址路径。
如需详细了解 Workload Manager 支持的条件属性,请参阅 IAM 文档中的 IAM Conditions 的属性参考。
您无法直接在 Workload Manager 资源上授予有条件访问权限。但是,您可以通过在容器资源(例如项目、文件夹或组织)上向主账号授予角色,并向这些角色绑定添加条件,来向 Workload Manager 资源类型授予有条件访问权限。添加到容器资源的允许政策的条件由该容器资源中包含的资源继承。如需详细了解继承的条件,请参阅 IAM 文档中的对继承的条件的支持。
如需了解如何向角色绑定添加条件,请参阅 管理条件角色绑定 在 IAM 文档中。
后续步骤
- 如需详细了解如何使用 IAM 进行访问权限控制,请参阅 IAM 概览。
- 如需查看 Workload Manager 的可用角色和权限,请参阅 Workload Manager 角色和权限。
- 了解 Workload Manager 服务代理。
- 了解如何向 Workload Manager 进行身份验证。