IAM 主账号

在 Identity and Access Management (IAM) 中,您可以控制主账号的访问权限。主账号代表已向 Google Cloud进行身份验证的一个或多个身份。

在政策中使用主账号

如需在政策中使用主账号,请执行以下操作:

  1. 配置 Google Cloud 可识别的身份。配置身份是指创建 Google Cloud 可识别的身份的过程。您可以为用户和工作负载配置身份。

    如需了解如何配置身份,请参阅以下内容:

  2. 确定您将使用的主账号标识符。主账号标识符是指您在政策中引用主账号的方式。此标识符可以引用单一身份或一组身份。

    您为主账号标识符使用的格式取决于以下因素:

    • 主账号类型
    • 您要将主账号添加到其中的政策类型

    如需查看每种政策中每种主账号类型的主账号标识符格式,请参阅主账号标识符

    了解标识符的格式后,您可以根据主账号的属性(例如主账号的电子邮件地址)确定主账号的唯一标识符。

  3. 在政策中添加主账号的标识符。按照政策的格式,将您的主账号添加到您的政策中。

    如需了解 IAM 中的不同类型的政策,请参阅政策类型

对主账号类型的支持

每种 IAM 政策类型都支持 IAM 支持的一部分主账号类型。如需查看每种政策类型支持的主账号类型,请参阅主账号标识符

主账号类型

下表简要介绍了 IAM 支持的不同主账号类型。如需详细了解如何在政策中使用主账号类型,并查看相关示例,请点击表格中的主账号类型名称。

主账号类型 说明 单个主账号或主账号集 Google 管理的身份或联合身份 政策类型支持
Google 账号 代表与 Google API 和服务进行交互的人员的用户账号。 单个主账号 由 Google 管理

以下政策类型支持 Google 账号:

  • 允许
  • 拒绝

以下政策类型不支持 Google 账号:

  • Principal Access Boundary
服务账号 由机器工作负载(而非真人)使用的账号。 单个主账号 由 Google 管理

以下政策类型支持服务账号:

  • 允许
  • 拒绝

以下政策类型不支持服务账号:

  • Principal Access Boundary
Google 群组 一组已命名的 Google 账号用户(真人或机器用户)。

可包含以下内容的主账号集:

  • Google 账号
  • 服务账号
由 Google 管理

以下政策类型支持 Google 群组:

  • 允许
  • 拒绝

以下政策类型不支持 Google 群组:

  • Principal Access Boundary
网域 代表虚拟群组的 Google Workspace 账号或 Cloud Identity 网域。群组可以包含人类用户和服务账号。

可包含以下主账号类型的主账号集:

  • Google 账号
  • 服务账号
由 Google 管理

以下政策类型支持网域:

  • 允许
  • 拒绝
  • Principal Access Boundary
allAuthenticatedUsers 一个特殊的标识符,表示所有服务账号和互联网上已使用 Google 账号进行身份验证的真人用户。

可包含以下主账号类型的主账号集:

  • Google 账号
  • 服务账号
  • 员工身份
  • 工作负载身份
由 Google 管理

以下政策类型支持部分资源的 allAuthenticatedUsers

  • 允许

以下政策类型不支持 allAuthenticatedUsers

  • 拒绝
  • Principal Access Boundary
allUsers 一个特殊的标识符,表示互联网上的任何用户(无论是否经过身份验证)。

可包含以下主账号类型的主账号集:

  • Google 账号
  • 服务账号
  • 员工身份
  • 工作负载身份
两者

以下政策类型支持 allUsers

  • 允许(针对部分资源)
  • 拒绝

以下政策类型不支持 allUsers

  • Principal Access Boundary
员工身份池中的单个身份 身份由外部 IdP 管理并使用员工身份联合进行联合的人类用户。 单个主账号 是否通过关联的第三方登录

以下政策类型支持员工身份池中的单个身份:

  • 允许
  • 拒绝
  • Principal Access Boundary
员工身份池中的一组主账号 一组人类用户,其身份由外部 IdP 管理并使用员工身份联合进行联合。 包含员工身份的主账号集。 是否通过关联的第三方登录

以下政策类型支持员工身份池中的一组主账号:

  • 允许
  • 拒绝
  • Principal Access Boundary
工作负载身份池中的单个主账号 工作负载(或机器用户)的身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 单个主账号 是否通过关联的第三方登录

以下政策类型支持工作负载身份池中的单个主账号:

  • 允许
  • 拒绝
  • Principal Access Boundary
工作负载身份池中的一组主账号 一组工作负载(或机器用户),其身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 包含工作负载身份的主账号集 是否通过关联的第三方登录

以下政策类型支持工作负载身份池中的一组主账号:

  • 允许
  • 拒绝
  • Principal Access Boundary
一组 Google Kubernetes Engine Pod 在 GKE 上运行并通过 GKE 进行联合的工作负载(或机器用户)。 可包含一个或多个联合工作负载身份的主账号集 是否通过关联的第三方登录

以下政策类型支持 GKE pod:

  • 允许

以下政策类型不支持 GKE Pod:

  • 拒绝
  • Principal Access Boundary
Resource Manager 主账号集 与 Google Cloud 资源(例如项目、文件夹和组织)相关联的一组人类用户或机器用户。

可包含以下主账号类型的主账号集:

  • Google 账号
  • 服务账号
  • 员工身份
  • 工作负载身份
两者

以下政策类型支持 Resource Manager 主账号集:

  • Principal Access Boundary

以下政策类型不支持 Resource Manager 主账号集:

  • 允许
  • 拒绝

以下部分将详细介绍这些主账号类型。

Google 账号

Google 账号代表开发者、管理员或与 Google Cloud 进行交互的任何其他人员,他们使用自己在 Google 创建的账号。任何与 Google 账号(也称为“受管理的用户账号”)关联的电子邮件地址都可以用作主账号。这包括 gmail.com 电子邮件地址和其他网域的电子邮件地址。

以下示例展示了如何在不同类型的政策中识别 Google 账号:

  • 允许政策user:alex@example.com
  • 拒绝政策principal://goog/subject/alex@example.com

如需详细了解主账号标识符格式,请参阅主账号标识符

在允许和拒绝政策中,与 Google 账号或受管理的用户账号相关联的邮箱别名会自动替换为主邮箱。这意味着,当您向邮箱别名授予访问权限时,该政策会显示用户的主邮箱。

如需详细了解如何设置 Google 账号,请参阅 Cloud Identity 或 Google Workspace 账号

服务账号

服务账号是针对应用或计算工作负载(而非单个最终用户)的账号。当运行托管在Google Cloud上的代码时,您需要指定一个服务账号作为应用的身份。您可以根据需要创建任意多个服务账号,以代表应用的不同逻辑组件。

以下示例展示了如何在不同类型的政策中识别服务账号:

  • 允许政策serviceAccount:my-service-account@my-project.iam.gserviceaccount.com
  • 拒绝政策principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@my-project.iam.gserviceaccount.com

如需详细了解主账号标识符格式,请参阅主账号标识符

如需详细了解服务账号,请参阅服务账号概览

Google 群组

Google 群组是 Google 账号的指定集合。每个 Google 群组都有一个关联的唯一电子邮件地址。您可以通过点击任意 Google 群组主页上的关于来找到与 Google 群组关联的电子邮件地址。如需详细了解 Google 群组,请参阅 Google 群组首页。

Google 群组是将访问权限控制应用于一组主账号的一种便捷方式。您可以一次授予和更改整个群组的访问权限控制,而不是一次授予或更改一个主账号的访问权限控制。您还可以向 Google 群组中添加主账号或从中移除主账号,而不是更新允许政策以添加或移除主账号。

Google 群组没有登录凭证,并且您无法使用 Google 群组建立身份来发出访问资源的请求。

以下示例展示了如何在不同类型的政策中识别 Google 群组:

  • 允许政策group:my-group@example.com
  • 拒绝政策principalSet://goog/group/my-group@example.com

如需详细了解主账号标识符格式,请参阅主账号标识符

如需详细了解如何使用群组进行访问权限控制,请参阅使用 Google 群组的最佳做法

网域

网域可以作为 Google Workspace 账号或 Cloud Identity 网域存在。它们从根本上来说是相同的,因为它们都代表了其中包含的所有 Google 账号的虚拟组。唯一的区别在于,Cloud Identity 网域用户无权访问 Google Workspace 应用和功能。

Google Workspace 账号和 Cloud Identity 网域与贵组织的互联网域名相关联,例如 example.com

为新用户(例如 username@example.com)创建 Google 账号时,系统会将该 Google 账号添加到 Google Workspace 账号或 Cloud Identity 网域的虚拟组中。

与 Google 群组一样,网域无法用于建立身份,但它们能够实现便捷的权限管理。

以下示例展示了如何在不同类型的政策中识别网域:

  • 允许政策domain:example.com
  • 拒绝政策principalSet://goog/cloudIdentityCustomerId/C01Abc35
  • Principal Access Boundary Policy//iam.googleapis.com/locations/global/workspace/C01Abc35

如需详细了解主账号标识符格式,请参阅主账号标识符

如需详细了解 Cloud Identity,请参阅 Cloud Identity 简介

在允许和拒绝政策中,辅助域名会自动替换为主域名。这意味着,当您向辅助域名授予访问权限时,政策会显示主域名。

allAuthenticatedUsers

allAuthenticatedUsers 是一个特殊的标识符,表示所有服务账号和互联网上已使用 Google 账号进行身份验证的所有用户。此标识符包括未关联到 Google Workspace 账号或 Cloud Identity 网域的账号,如个人 Gmail 账号。不包括未经身份验证的用户,例如匿名访问者。

此主账号类型不包含由外部身份提供方 (IdP) 管理的联合身份。如果您使用员工身份联合工作负载身份联合,请勿使用 allAuthenticatedUsers。请改为以下之一:

某些资源类型不支持此主账号类型。

allUsers

allUsers 是一个特殊的标识符,表示互联网上的任何用户,包括经过身份验证和未经过身份验证的用户。

某些资源类型不支持此主账号类型。

以下示例展示了 allUsers 标识符在不同类型的政策中的显示方式:

  • 支持的资源类型上的允许政策allUsers
  • 拒绝政策principalSet://goog/public:all

如需详细了解主账号标识符格式,请参阅主账号标识符

员工身份池中的身份

员工身份池是指由外部 IdP 管理并使用员工身份联合进行联合的一组用户身份。您可以通过以下方式引用这些池中的主账号:

  • 员工身份池中的单个身份
  • 指定群组中的所有员工身份
  • 具有特定属性值的所有员工身份
  • 员工身份池中的所有身份

以下示例展示了如何在不同类型的政策中识别联合员工身份池:

  • 允许政策中的单个主账号principal://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/subject/raha@altostrat.com
  • 拒绝政策中的一组主账号principalSet://iam.googleapis.com/locations/global/workforcePools/altostrat-contractors/group/administrators-group@altostrat.com
  • Principal Access Boundary Policy//iam.googleapis.com/locations/global/workforcePools/example-workforce-pool

如需详细了解主账号标识符格式,请参阅主账号标识符

工作负载身份池中的身份

工作负载身份池是指由外部 IdP 管理且使用工作负载身份联合进行联合的一组工作负载身份。您可以通过以下方式引用这些池中的主账号:

  • 工作负载身份池中的单一身份
  • 指定群组中的所有工作负载身份
  • 具有特定属性值的所有工作负载身份
  • 工作负载身份池中的所有身份

以下示例展示了如何在不同类型的政策中识别联合工作负载身份池:

  • 允许政策中的单个主账号principal://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/subject/raha@altostrat.com
  • 拒绝政策中的一组主账号principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/altostrat-contractors/group/administrators-group@altostrat.com
  • Principal Access Boundary Policy//iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/example-workload-pool

如需详细了解主账号标识符格式,请参阅主账号标识符

GKE Pod

在 GKE 上运行的工作负载使用 Workload Identity Federation for GKE 来访问 Google Cloud 服务。如需详细了解 GKE Pod 的主账号标识符,请参阅在 IAM 政策中引用 Kubernetes 资源

以下示例展示了如何在允许政策中识别特定集群中的所有 GKE pod:

principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/123456789012.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/123456789012/locations/global/clusters/example-gke-cluster

如需详细了解主账号标识符格式,请参阅主账号标识符

Resource Manager 主账号集

每个 Resource Manager 资源(项目、文件夹和组织)都与一组主账号相关联。创建主账号访问权限边界政策绑定时,您可以使用 Resource Manager 资源的主账号集来引用与该资源关联的所有主账号。

Resource Manager 资源的主账号集包含以下主账号:

  • 项目主账号集:指定项目中的所有服务账号和工作负载身份池。
  • 文件夹主账号集:指定文件夹中任何项目中的所有服务账号和所有工作负载身份池。
  • 组织主账号集:包含以下身份:

    • 与您的 Google Workspace 客户 ID 相关联的所有网域中的所有身份
    • 贵组织中的所有员工身份池
    • 组织中任何项目中的所有服务账号和工作负载身份池

以下示例展示了如何在项目的Principal Access Boundary Policy中识别项目的主账号集:

//cloudresourcemanager.googleapis.com/projects/example-project

如需详细了解主账号标识符格式,请参阅主账号标识符

后续步骤