使用 IAM 进行访问权限控制

本页面介绍如何控制对 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 角色

如需向主账号授予单个角色,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 选择一个项目、文件夹或组织。
  3. 选择要向其授予角色的主账号:
    • 如需向主账号授予资源的其他角色,请找到包含主账号的行,点击该行中的 修改主账号 ,然后点击 添加其他角色

      如需向服务代理授予角色, 请选中包括 Google-提供的角色授权复选框 以查看其电子邮件地址。

    • 如需向尚未拥有资源的任何现有角色的主账号授予角色,请点击 授予访问权限,然后输入主账号标识符,例如my-user@example.com//iam.googleapis.com/locations/global/workforcePools/example-pool/group/example-group@example.com
  4. 从下拉列表中选择要授予的角色。出于最佳安全 做法考虑,请选择一个仅包含您的 主账号所需权限的角色。
  5. 可选:为角色添加条件
  6. 点击保存。将向主账号授予资源上的角色。

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟来完成初始化。

  2. add-iam-policy-binding 命令使您可以快速向主账号授予角色。

    在使用下面的命令数据之前,请先进行以下替换:

    • RESOURCE_TYPE:要管理访问权限的资源类型。请使用 projectsresource-manager foldersorganizations

    • RESOURCE_ID:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如 my-project。文件夹和组织 ID 是数字,例如 123456789012

    • PRINCIPAL:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID。 例如 user:my-user@example.comprincipalSet://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 角色

如需撤消主账号的单个角色,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,前往 IAM 页面。

    转到 IAM

  2. 选择一个项目、文件夹或组织。
  3. 找到包含要撤消其访问权限的主账号的行。然后, 点击 修改主账号在该行中。
  4. 点击要撤消的角色对应的删除 按钮 ,然后点击保存

gcloud

  1. 在 Google Cloud 控制台中,激活 Cloud Shell。

    激活 Cloud Shell

    Cloud Shell 会话随即会在控制台的底部启动,并显示命令行提示符。 Google Cloud Cloud Shell 是一个已安装 Google Cloud CLI 且已为当前项目设置值的 Shell 环境。该会话可能需要几秒钟来完成初始化。

  2. 如需撤消用户的角色,请运行 remove-iam-policy-binding 命令:

    gcloud RESOURCE_TYPE remove-iam-policy-binding RESOURCE_ID \
        --member=PRINCIPAL --role=ROLE_NAME

    请提供以下值:

    • RESOURCE_TYPE:要管理其访问权限的资源类型。请使用 projectsresource-manager foldersorganizations

    • RESOURCE_ID:您的 Google Cloud 项目、文件夹或组织 ID。项目 ID 为字母数字,例如 my-project。 文件夹和组织 ID 是数字,例如 123456789012

    • PRINCIPAL:主账号(或成员)的标识符,通常其格式如下:PRINCIPAL_TYPE:ID。 例如 user:my-user@example.comprincipalSet://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 文档中。

后续步骤