Workload Identity 概览

工作负载身份让您可以为集群中的每个应用分配不同的精细身份和授权。在 GKE on AWS 中运行的应用若要访问 AWS 和 Google Cloud 服务,建议使用工作负载身份。

所有 GKE 集群都启用了工作负载身份。

Kubernetes 服务账号

Workload Identity 实施了身份联合,或将信任或角色委托给外部提供商。每个集群都有内置的 OpenID Connect (OIDC) 提供商。Pod 在集群中运行时,会使用 Kubernetes 服务账号运行。可以使用绑定服务账号令牌卷将 Pod 配置为使用其 Kubernetes 服务账号的短期凭据获取令牌。

Open ID Connect 提供商

每个集群可以充当 OpenID Connect (OIDC) 提供商。通过此提供商,您可以使用 OIDC 向支持身份联合的服务提供 Kubernetes 服务账号凭据。

此提供商的颁发者 URI 还充当 OIDC 发现端点。服务可以使用此发现端点获取 JSON Web 密钥集 (JWKS),从而提供公钥信息,以便验证 Kubernetes 服务账号凭据。

Google Cloud IAM 身份池和提供商

Google Cloud IAM 支持使用 OIDC 的身份联合。所有 GKE 集群都配置为工作负载身份池 PROJECT_ID.svc.id.goog 中的身份提供方。

如需获取工作负载身份池和提供商的名称,请参阅将工作负载身份与 Google Cloud 结合使用

AWS IAM 身份提供方

AWS IAM 使用 OIDC 支持身份联合。如需使用工作负载的服务账号身份访问 AWS,您需要在 AWS IAM 上创建 OIDC 提供商。默认情况下,GKE on AWS 没有配置 AWS IAM 身份提供方。

工作负载身份的替代方案

您还可以通过其他方法在 GKE on AWS 中访问服务。由于存在复杂性,我们不推荐使用以下方法。

  1. 导出凭据并将其存储为 Kubernetes Secret。在这种情况下,您必须在 AWS IAM 和集群中手动轮替存储的凭据。此外,如果攻击者窃取凭据,则可以利用这些凭据。

  2. 将凭据关联到节点池的底层实例。在这种情况下,同一节点上运行的所有工作负载会共享这些凭据,因此获得的一组权限比工作负载可能需要的更多。如需阻止访问实例的权限,GKE 集群会阻止从 Pod 访问实例元数据服务。

后续步骤