为用户访问权限设置身份验证方法

本文档适用于已为 GKE Identity Service 配置集群的集群管理员。本文档介绍了如何为贵组织的开发者和其他用户设置并管理对这些已配置集群的用户访问权限。

您可以使用两种类型的身份验证方法来设置用户对集群的访问权限:

  • 使用 FQDN 访问权限进行设置(推荐):通过这种方法,用户可以使用集群的 Kubernetes API 服务器的完全限定域名 (FQDN) 直接向 GKE Identity Service 服务器进行身份验证。如需了解详情,请参阅设置 FQDN 访问权限
  • 使用基于文件的访问权限进行设置:使用此方法,您可以生成登录配置文件并将其分发给集群用户。然后,用户可以使用此文件通过 gcloud 身份验证命令登录已配置的集群。如需了解详情,请参阅设置基于文件的访问权限

设置 FQDN 访问权限(推荐)

本部分介绍了如何通过向用户提供服务器用于进行身份验证的网址 (FQDN) 来设置用户登录访问权限。身份验证流程允许用户使用其 IdP 登录,并向用户提供一个令牌,该令牌会添加到其 kubeconfig 文件中,以便用户访问集群。从 1.29 版开始,只有 VMware 和裸机上的本地集群 (Google Distributed Cloud) 才支持此身份验证方法。不支持其他集群类型。如果您需要为使用旧版受支持软件的本地集群或其他集群类型设置身份验证,请按照说明设置基于文件的访问权限

在向用户分享 FQDN 之前,请确保您或您的平台管理员已遵循适当的设置,包括为 FQDN 设置 DNS 并在向身份提供方注册时根据需要提供 FQDN。

与用户共享 FQDN

集群管理员可以与用户共享集群的 Kubernetes API 服务器的 FQDN,而不是共享配置文件。用户可以使用此 FQDN 登录集群。登录的网址格式为 APISERVER-URL,其中网址包含 API 服务器的 FQDN。

APISERVER-URL 的示例格式为 https://apiserver.company.com

配置 Identity Service 选项

使用此设置选项,您可以配置令牌生命周期时长。ClientConfig CR 中的 IdentityServiceOptions 具有 sessionDuration 参数,可用于配置令牌生命周期(以分钟为单位)。sessionDuration 参数的下限为 15 分钟,上限为 1440 分钟(24 小时)。

以下是 ClientConfig CR 中的示例:

spec:
    IdentityServiceOptions:
      sessionDuration: INT

其中 INT 是会话时长(以分钟为单位)。

设置基于文件的访问权限

集群管理员可以生成登录配置文件并将其分发给集群用户,以此替代 FQDN 访问。如果您要为版本或类型不支持 FQDN 访问权限的集群设置身份验证,则可以使用此选项。此文件允许用户使用所选的提供程序从命令行访问集群。此身份验证方法仅适用于 OIDC 和 LDAP 提供方。

生成登录配置

控制台

(仅限舰队级设置

复制显示的 gcloud 命令并运行该命令来生成此文件。

gcloud

如果您使用 gcloud CLI 配置了集群,或者需要再次生成该文件,请运行以下命令来生成该文件:

gcloud anthos create-login-config --kubeconfig=KUBECONFIG

其中,KUBECONFIG 是集群的 kubeconfig 文件的路径。如果 kubeconfig 中有多个上下文,则会使用当前上下文。运行该命令之前,您可能需要将当前上下文重置为正确的集群。

您可以在 Google Cloud CLI 参考指南中查看此命令的完整参考文档的详细信息,包括其他可选参数。

登录配置文件的默认名称为 kubectl-anthos-config.yaml,这是 Google Cloud CLI 使用该文件登录时的名称。如果您想将其更改为非默认名称,请参阅分发登录配置中的相关部分。

如需排查与用户访问权限相关的问题,请参阅排查用户访问权限问题

分发登录配置

以下是分发配置文件的一些方法:

  • 将文件托管在可访问的网址。用户可以在运行 gcloud anthos auth login 时使用 --login-config 标志指定此位置,从而允许 Google Cloud CLI 获取该文件。

    考虑将文件托管在安全主机上。如需详细了解如何使用 PEM 证书进行安全 HTTPS 访问,请参阅 gcloud CLI 的 --login-config-cert 标志。

  • 手动为每个用户提供文件,并提供将文件保存到本地机器的位置信息(Google Cloud CLI 应能在特定于操作系统的默认位置找到该文件)。如果文件具有非默认名称或位置,则在对集群运行命令时,用户必须使用 --login-config 标志来指定配置文件位置。有关用户如何保存文件的说明,请参阅使用 GKE Identity Service 访问集群

  • 使用内部工具将身份验证配置文件推送到每个用户的机器上。Google Cloud CLI 会在以下位置找到该文件,具体取决于用户操作系统:

    Linux

    $HOME/.config/google/anthos/kubectl-anthos-config.yaml

    macOS

    $HOME/Library/Preferences/google/anthos/kubectl-anthos-config.yaml

    Windows

    %APPDATA%\google\anthos\kubectl-anthos-config.yaml