在 Identity and Access Management (IAM) 中,您可以控制主账号的访问权限。主账号代表已向 Cloud de Confiance进行身份验证的一个或多个身份。
在政策中使用主账号
如需在政策中使用主账号,请执行以下操作:
配置 Cloud de Confiance 可识别的身份。配置身份是指创建 Cloud de Confiance 可识别的身份的过程。您可以为用户和工作负载配置身份。
如需了解如何配置身份,请参阅以下内容:
确定您将使用的主账号标识符。主账号标识符是指您在政策中引用主账号的方式。此标识符可以引用单一身份或一组身份。
您为主账号标识符使用的格式取决于以下因素:
- 主账号类型
- 您要将主账号添加到其中的政策类型
如需查看每种政策中每种主账号类型的主账号标识符格式,请参阅主账号标识符。
了解标识符的格式后,您可以根据主账号的属性(例如主账号的电子邮件地址)确定主账号的唯一标识符。
在政策中添加主账号的标识符。按照政策的格式,将您的主账号添加到您的政策中。
如需了解 IAM 中的不同类型的政策,请参阅政策类型。
对主账号类型的支持
每种 IAM 政策类型都支持 IAM 支持的一部分主账号类型。如需查看每种政策类型支持的主账号类型,请参阅主账号标识符。
主账号类型
下表简要介绍了 IAM 支持的不同主账号类型。如需详细了解如何在政策中使用主账号类型,并查看相关示例,请点击表格中的主账号类型名称。
| 主账号类型 | 说明 | 单个主账号或主账号集 | Google 管理的身份或联合身份 | 政策类型支持 |
|---|---|---|---|---|
| 服务账号 | 由机器工作负载(而非真人)使用的账号。 | 单个主账号 | 由 Google 管理 |
以下政策类型支持服务账号:
|
| 一组服务账号 | 项目、文件夹或组织中的所有服务账号。 | 包含服务账号的主账号集。 | 由 Google 管理 |
以下政策类型支持一组服务账号:
|
| 一组服务代理 | 与项目、文件夹或组织关联的所有 Google 代管式服务账号(服务代理)。 | 包含服务代理的主账号集。 | 由 Google 管理 |
以下政策类型支持一组服务代理:
以下政策类型不支持设置服务代理:
|
allAuthenticatedUsers |
一个特殊的标识符,表示所有服务账号和互联网上已使用 Google 账号进行身份验证的真人用户。 |
可包含以下主账号类型的主账号集:
|
由 Google 管理 |
以下政策类型支持部分资源的
以下政策类型不支持
|
allUsers |
一个特殊的标识符,表示互联网上的任何用户(无论是否经过身份验证)。 |
可包含以下主账号类型的主账号集:
|
两者 |
以下政策类型支持
|
| 员工身份池中的单个身份 | 身份由外部 IdP 管理并使用员工身份联合进行联合的人类用户。 | 单个主账号 | 是否通过关联的第三方登录 |
以下政策类型支持员工身份池中的单个身份:
|
| 员工身份池中的一组主账号 | 一组人类用户,其身份由外部 IdP 管理并使用员工身份联合进行联合。 | 包含员工身份的主账号集。 | 是否通过关联的第三方登录 |
以下政策类型支持员工身份池中的一组主账号:
|
| 工作负载身份池中的单个主账号 | 工作负载(或机器用户)的身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 | 单个主账号 | 是否通过关联的第三方登录 |
以下政策类型支持工作负载身份池中的单个主账号:
|
| 工作负载身份池中的一组主账号 | 一组工作负载(或机器用户),其身份由外部 IdP 管理,并使用工作负载身份联合进行联合。 | 包含工作负载身份的主账号集 | 是否通过关联的第三方登录 |
以下政策类型支持工作负载身份池中的一组主账号:
|
| 一组 Google Kubernetes Engine Pod | 在 GKE 上运行并通过 GKE 进行联合的工作负载(或机器用户)。 | 可包含一个或多个联合工作负载身份的主账号集 | 是否通过关联的第三方登录 |
以下政策类型支持 GKE pod:
以下政策类型不支持 GKE Pod:
|
以下部分将详细介绍这些主账号类型。
服务账号
服务账号是针对应用或计算工作负载(而非单个最终用户)的账号。服务账号可分为用户管理的服务账号和 Google 代管式服务账号(称为服务代理):
当运行托管在 Cloud de Confiance上的代码时,您需要指定一个服务账号作为应用的身份。您可以根据需要创建任意多个用户代管式服务账号,以代表应用的不同逻辑组件。
某些 Cloud de Confiance 服务需要访问您的资源才能代表您执行操作。为了满足这一需求,Google 会创建和管理服务代理。
您可以通过以下方式引用服务账号和服务代理:
- 单个服务账号
- 项目中的所有服务账号
- 与项目关联的所有服务代理。
- 文件夹中所有项目中的所有服务账号
- 与文件夹及其后代相关联的所有服务代理
- 组织中所有项目中的所有服务账号
- 与组织及其后代相关联的所有服务代理
以下示例展示了如何在不同类型的政策中识别单个服务账号:
- 允许政策中的服务账号:
serviceAccount:my-service-account@my-project.s3ns.iam.gserviceaccount.com - 拒绝政策中的服务账号:
principal://iam.googleapis.com/projects/-/serviceAccounts/my-service-account@my-project.s3ns.iam.gserviceaccount.com
以下示例展示了如何在不同类型的政策中识别项目、文件夹或组织的所有服务账号:
- 允许政策中某个项目的所有服务账号:
principalSet://cloudresourcemanager.googleapis.com/projects/123456789012/type/ServiceAccount - 拒绝政策中与文件夹关联的所有服务代理:
principalSet://cloudresourcemanager.googleapis.com/folders/123456789012/type/ServiceAgent
如需详细了解主账号标识符格式,请参阅主账号标识符。
如需详细了解服务账号,请参阅以下页面:
allAuthenticatedUsers
值 allAuthenticatedUsers 是一个特殊的标识符,表示所有服务账号。
此主账号类型不包含由外部身份提供方 (IdP) 管理的联合身份。如需添加联合身份,请使用以下选项之一:
- 要包含来自所有 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
如需详细了解主账号标识符格式,请参阅主账号标识符。
工作负载身份池中的身份
工作负载身份池是指由外部 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
如需详细了解主账号标识符格式,请参阅主账号标识符。
GKE Pod
在 GKE 上运行的工作负载使用 Workload Identity Federation for GKE 来访问 Cloud de Confiance 服务。如需详细了解 GKE Pod 的主账号标识符,请参阅在 IAM 政策中引用 Kubernetes 资源。
以下示例展示了如何在允许政策中识别特定集群中的所有 GKE pod:
principalSet://iam.googleapis.com/projects/123456789012/locations/global/workloadIdentityPools/123456789012.s3ns.svc.id.goog/kubernetes.cluster/https://container.googleapis.com/v1/projects/123456789012/locations/global/clusters/example-gke-cluster
如需详细了解主账号标识符格式,请参阅主账号标识符。