在 Identity and Access Management (IAM) 中,您可以控制主账号的访问权限。主账号代表已向 Google Cloud进行身份验证的一个或多个身份。
在政策中使用主账号
如需在政策中使用主账号,请执行以下操作:
配置 Google Cloud 可识别的身份。配置身份是指创建 Google Cloud 可识别的身份的过程。您可以为用户和工作负载配置身份。
如需了解如何配置身份,请参阅以下内容:
确定您将使用的主账号标识符。主账号标识符是指您在政策中引用主账号的方式。此标识符可以引用单一身份或一组身份。
您为主账号标识符使用的格式取决于以下因素:
- 主账号类型
- 您要将主账号添加到其中的政策类型
如需查看每种政策中每种主账号类型的主账号标识符格式,请参阅主账号标识符。
了解标识符的格式后,您可以根据主账号的属性(例如主账号的电子邮件地址)确定主账号的唯一标识符。
在政策中添加主账号的标识符。按照政策的格式,将您的主账号添加到您的政策中。
如需了解 IAM 中的不同类型的政策,请参阅政策类型。
对主账号类型的支持
每种 IAM 政策类型都支持 IAM 支持的一部分主账号类型。如需查看每种政策类型支持的主账号类型,请参阅主账号标识符。
主账号类型
下表简要介绍了 IAM 支持的不同主账号类型。如需详细了解如何在政策中使用主账号类型,并查看相关示例,请点击表格中的主账号类型名称。
主账号类型 | 说明 | 单个主账号或主账号集 | Google 管理的身份或联合身份 | 政策类型支持 |
---|---|---|---|---|
Google 账号 | 代表与 Google API 和服务进行交互的人员的用户账号。 | 单个主账号 | 由 Google 管理 |
以下政策类型支持 Google 账号:
以下政策类型不支持 Google 账号:
|
服务账号 | 由机器工作负载(而非真人)使用的账号。 | 单个主账号 | 由 Google 管理 |
以下政策类型支持服务账号:
以下政策类型不支持服务账号:
|
Google 群组 | 一组已命名的 Google 账号用户(真人或机器用户)。 |
可包含以下内容的主账号集:
|
由 Google 管理 |
以下政策类型支持 Google 群组:
以下政策类型不支持 Google 群组:
|
网域 | 代表虚拟群组的 Google Workspace 账号或 Cloud Identity 网域。群组可以包含人类用户和服务账号。 |
可包含以下主账号类型的主账号集:
|
由 Google 管理 |
以下政策类型支持网域:
|
allAuthenticatedUsers |
一个特殊的标识符,表示所有服务账号和互联网上已使用 Google 账号进行身份验证的真人用户。 |
可包含以下主账号类型的主账号集:
|
由 Google 管理 |
以下政策类型支持部分资源的
以下政策类型不支持
|
allUsers |
一个特殊的标识符,表示互联网上的任何用户(无论是否经过身份验证)。 |
可包含以下主账号类型的主账号集:
|
两者 |
以下政策类型支持
以下政策类型不支持
|
员工身份池中的单个身份 | 身份由外部 IdP 管理并使用员工身份联合进行联合的人类用户。 | 单个主账号 | 是否通过关联的第三方登录 |
以下政策类型支持员工身份池中的单个身份:
|
员工身份池中的一组主账号 | 一组人类用户,其身份由外部 IdP 管理并使用员工身份联合进行联合。 | 包含员工身份的主账号集。 | 是否通过关联的第三方登录 |
以下政策类型支持员工身份池中的一组主账号:
|
工作负载身份池中的单个主账号 | 工作负载(或机器用户)的身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 | 单个主账号 | 是否通过关联的第三方登录 |
以下政策类型支持工作负载身份池中的单个主账号:
|
工作负载身份池中的一组主账号 | 一组工作负载(或机器用户),其身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 | 包含工作负载身份的主账号集 | 是否通过关联的第三方登录 |
以下政策类型支持工作负载身份池中的一组主账号:
|
一组 Google Kubernetes Engine Pod | 在 GKE 上运行并通过 GKE 进行联合的工作负载(或机器用户)。 | 可包含一个或多个联合工作负载身份的主账号集 | 是否通过关联的第三方登录 |
以下政策类型支持 GKE pod:
以下政策类型不支持 GKE Pod:
|
Resource Manager 主账号集 | 与 Google Cloud 资源(例如项目、文件夹和组织)相关联的一组人类用户或机器用户。 |
可包含以下主账号类型的主账号集:
|
两者 |
以下政策类型支持 Resource Manager 主账号集:
以下政策类型不支持 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
。请改为以下之一:
- 要包含来自所有 IdP 的用户,请使用
allUsers
。 - 要包含来自特定外部 IdP 的用户,请使用员工身份池中的所有身份或工作负载身份池中的所有身份的标识符。
某些资源类型不支持此主账号类型。
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
如需详细了解主账号标识符格式,请参阅主账号标识符。