GKE Identity Service 简介

GKE Identity Service 是一项身份验证服务,可让您将用于身份验证的现有身份解决方案部署到多个 GKE Enterprise 环境。用户可以使用现有的身份提供方,通过命令行或 Google Cloud 控制台登录和使用 GKE 集群。

如果您已在使用或想要使用 Google ID(而不是 OIDC 或 LDAP 提供商)登录 GKE 集群,请参阅使用 Connect 网关连接到已注册的集群

支持的身份提供商

GKE Identity Service 支持使用以下协议的身份提供商:

  • OpenID Connect (OIDC)。我们针对常用的 OpenID 提供商(包括 Microsoft)提供了具体的设置说明,但您可以使用任何实施 OIDC 的提供商。
  • 轻量级目录访问协议 (LDAP)借助 GKE Identity Service,您可以使用 LDAP 和 Active Directory 或 LDAP 服务器进行身份验证。

支持的集群类型

协议 GKE on VMware GKE on Bare Metal GKE on AWS GKE on Azure EKS 挂接的集群 GKE
OIDC
LDAP
SAML

其他关联集群类型不支持与 GKE Identity Service 搭配使用。

运作方式

GKE Identity Service 允许用户使用其常用的组织用户名和密码登录经过配置的集群。具体的工作原理取决于所使用的身份提供商类型。

OIDC

使用 OIDC 提供商时,GKE Identity Service 本身已注册为身份提供商的客户端应用,然后由集群管理员为每个集群进行设置。

展示基本 AIS 流程的示意图

当用户要通过命令行登录集群时,必须先运行 gcloud anthos auth login 命令,然后输入身份提供商的登录详细信息。这将从提供商检索身份令牌。令牌会添加到其 kubeconfig 文件中,并在使用 kubectl 向集群发出请求时使用。然后,Kubernetes API 服务器使用 GKE Identity Service 验证 ID 令牌并允许(或拒绝)访问集群。GKE Identity Service 还可以选择从身份提供商检索安全群组成员资格信息。

如果需要,集群管理员可以使用 Kubernetes 基于角色的访问权限控制 (RBAC) 添加更精细的访问权限控制。

用户还可以使用 OIDC 通过 Google Cloud 控制台登录。在这种情况下,用户会被定向到身份提供商的界面,提供其登录详细信息,然后被返回到 Google Cloud 控制台,以继续查看和管理集群的资源。

LDAP

使用 LDAP 提供商时,集群管理员为每个集群设置 GKE Identity Service,包括为 GKE Identity Service 提供 LDAP 客户端凭据。

展示 LDAP AIS 流程的示意图

当用户要通过命令行登录集群时,必须先运行 gcloud anthos auth login 命令,然后输入身份提供商的登录详细信息。该请求会发送到 GKE Identity Service,后者查询 LDAP 服务器并在短期令牌 (STS) 中返回用户特性,从而确保用户的 LDAP 凭据无需以明文形式存储在本地。令牌会添加到其 kubeconfig 文件中,并在使用 kubectl 向集群发出请求时使用。然后,Kubernetes API 服务器使用 GKE Identity Service 从令牌中获取用户和群组信息并允许(或拒绝)访问集群。默认情况下,令牌的有效期为一小时,然后用户需要重新登录。

如果需要,集群管理员可以使用 Kubernetes 基于角色的访问权限控制 (RBAC) 添加更精细的访问权限控制。

设置选项

根据集群类型和环境,集群管理员可以在各集群上单独设置 GKE Identity Service,也可以在项目舰队级别设置 Anthos Identity Service。

每个集群设置

您可以为本地(VMware 和 Bare Metal)GKE 集群以及 AWS 和 Azure 上的 GKE 集群逐个设置 GKE Identity Service。如需了解详情,请参阅以下指南:

OIDC 设置

LDAP 设置

SAML 设置

舰队级设置

Google Cloud 中的舰队是集群的逻辑组,可让您在这些集群中启用功能并更新配置。对于受支持的集群类型,您可以为项目舰队中的集群设置 GKE Identity Service。通过舰队级设置,您可以将身份验证配置集中应用至多个集群,这些配置由 Google Cloud 维护。

舰队级设置支持以下集群类型:

舰队级设置支持以下集群类型和环境作为非正式功能:

如需了解设置详情,请参阅以下内容:

后续步骤

  • 如果您是平台管理员集群管理员,并希望将集群配置为使用 GKE Identity Service,请按照上面的相应设置指南进行操作。
  • 如果您是开发者或其他集群用户,并希望使用现有身份访问 GKE 集群,请参阅使用 GKE Identity Service 访问集群