身份验证概览

本页面介绍了 GKE on AWS 如何处理向 Google Cloud 进行的身份验证以及向集群进行的用户身份验证。

GKE on AWS 如何连接到 AWS

如需详细了解 GKE on AWS 如何使用 AWS IAM 角色连接到 AWS,请参阅 AWS IAM 角色

Authentication

GKE Multi-Cloud API 身份验证

您可以使用 GKE Multi-Cloud API 创建、更新和删除集群和节点池。与其他 Google Cloud API 一样,您可以将此 API 与 REST、Google Cloud CLI 或 Google Cloud 控制台搭配使用。

如需了解详情,请参阅 Google Cloud 身份验证概览GKE Multi-Cloud API 参考文档。

Kubernetes API 身份验证

您可以使用 kubectl 命令行工具执行集群操作,例如部署工作负载和配置负载均衡器。kubectl 工具会连接到集群控制平面上的 Kubernetes API。如需调用此 API,您需要使用已获得授权的凭据进行身份验证。

如需获取凭据,您可以使用以下方法之一:

  • Google Identity,允许用户使用 Google Cloud 身份登录。如果您的用户已有权使用 Google Identity 访问 Google Cloud,请使用此选项。

  • GKE Identity Service,可让用户使用 OpenID Connect (OIDC) 或 AWS IAM 登录。

借助 GKE Identity Service,您可以使用 OktaActive Directory Federation Services (ADFS) 或任何符合 OIDC 的身份提供方等身份提供方。

授权

GKE on AWS 有两种访问权限控制方法:GKE Multi-Cloud API 和基于角色的访问权限控制 (RBAC)。本部分介绍了这些方法之间的区别。

最好采用分层方法来保护集群和工作负载。您可以针对提供给用户及工作负载的访问权限级别应用最小权限原则。您可能需要权衡取舍,以提供适当级别的灵活性和安全性。

GKE Multi-Cloud API 访问权限控制

借助 GKE Multi-Cloud API,集群管理员可以创建、更新和删除集群和节点池。您可以使用 Identity and Access Management (IAM) 管理 API 的权限。如需使用 API,用户必须拥有适当的权限。如需了解每项操作所需的权限,请参阅 API 角色和权限。IAM 可让您定义角色并将其分配给主账号。角色可提供一组权限,当分配给主账号时,它可控制对一个或多个 Google Cloud 资源的访问权限。

在组织、文件夹或项目中创建集群或节点池时,在该组织、文件夹或项目中具有适当权限的用户可以修改这些内容。例如,如果您在 Google Cloud 项目级层为用户提供集群删除权限,则该用户可以删除该项目中的任何集群。如需了解详情,请参阅 Google Cloud 资源层次结构创建 IAM 政策

Kubernetes API 访问权限控制

通过 Kubernetes API,您可以管理 Kubernetes 对象。如需管理 Kubernetes API 的访问权限控制,您可以使用基于角色的访问权限控制 (RBAC)。如需了解详情,请参阅 GKE 文档中的配置基于角色的访问权限控制

管理员访问权限

当您使用 gcloud CLI 创建集群时,默认情况下,GKE Multi-Cloud API 会将您的用户帐号添加为管理员,并创建适当的 RBAC 政策,以授予您对集群的完整管理员权限。如需配置不同的用户,请在创建或更新集群时传递 --admin-users 标志。使用 --admin-users 标志时,必须包含所有可以管理该集群的用户。gcloud CLI 不包含创建集群的用户。

您还可以使用 Google Cloud 控制台添加管理员用户。如需了解详情,请参阅更新集群

如需查看集群访问权限配置,请运行以下命令:

kubectl describe clusterrolebinding gke-multicloud-cluster-admin

如果管理员用户不是 Project Owner,那么除了访问 Kubernetes API 服务器所需的 RBAC 政策之外,您还需要为管理员用户授予特定的 IAM 角色,以使他们能够使用其 Google 身份进行身份验证。如需详细了解如何连接到集群,请参阅连接到集群并进行身份验证

后续步骤