使用 GKE Identity Service 管理身份

GKE on AWS 支持通过 GKE Identity Service 使用 OpenID Connect (OIDC)AWS IAM 作为与集群的 Kubernetes API 服务器进行交互的身份验证机制。GKE Identity Service 是一项身份验证服务,可让您将用于身份验证的现有身份解决方案部署到多个环境。用户可以使用现有的身份提供方,通过命令行或 Google Cloud 控制台登录和使用 GKE 集群。

如需简要了解 GKE Identity Service 的工作原理,请参阅 GKE Identity Service 简介

如果您已在使用或想要使用 Google 身份登录 GKE 集群,我们建议您使用 gcloud containers aws clusters get-credentials 命令进行身份验证。如需了解详情,请参阅连接到您的集群并进行身份验证

OpenID Connect 身份验证

准备工作

  1. 如需使用 OIDC 身份验证,用户必须能够连接到集群的控制平面。请参阅连接到您的集群的控制平面

  2. 如需通过 Google Cloud Console 进行身份验证,您必须向项目舰队注册要配置的每个集群。对于 GKE on AWS,创建节点池后,系统会自动执行此操作。

  3. 如需允许用户通过 Google Cloud Console 进行身份验证,请确保要配置的所有集群均已向项目舰队注册。对于 GKE on AWS,创建节点池后,系统会自动执行此操作。

设置过程和选项

  1. 按照为 GKE Identity Service 配置提供方中的说明,向您的 OIDC 提供方将 GKE Identity Service 注册为客户端。

  2. 选择以下集群配置选项之一:

  3. 按照为 GKE Identity Service 设置用户访问权限中的说明,设置用户对集群的访问权限,包括基于角色的访问控制 (RBAC)。

访问集群

在集群上设置 GKE Identity Service 后,用户可以使用命令行或 Google Cloud 控制台登录集群。

AWS IAM 身份验证

GKE on AWS 上的 AWS IAM 支持使用 GKE Identity Service

准备工作

如需使用 AWS IAM 身份验证,用户必须能够连接到集群的控制平面。请参阅连接到您的集群的控制平面

设置过程和选项

如需将集群配置为允许使用 AWS IAM 对特定 AWS 区域进行身份验证,请执行以下操作:

  1. 修改集群上的 ClientConfig 资源:

    kubectl --kubeconfig=KUBECONFIG_PATH edit ClientConfigs default -n kube-public
    

    KUBECONFIG_PATH 替换为集群的 kubeconfig 文件的路径,例如 $HOME/.kube/config

    文本编辑器会加载集群的 ClientConfig 资源。如下所示添加 spec.authentication.aws 对象。请勿修改已写入的任何默认数据。

    apiVersion: authentication.gke.io/v2alpha1
    kind: ClientConfig
    metadata:
      name: default
      namespace: kube-public
    spec:
      authentication:
      - name: NAME
        aws:
          region: AWS_REGION
    

    替换以下内容:

    • NAME:此身份验证方法的任意名称,例如“aws-iam”。
    • AWS_REGION:在其中检索用户信息的 AWS 区域。该区域需要与用户的 AWS CLI 中配置的区域匹配。
  2. 如需使集群用户能够使用 AWS IAM,请按照为 GKE Identity Service 设置用户访问权限执行操作。

访问集群

在集群上设置 GKE Identity Service 后,用户可以使用命令行或 Google Cloud 控制台登录集群。

如需了解如何使用您的 AWS IAM 身份登录已注册的集群,请参阅使用 GKE Identity Service 访问集群