Google Cloud 为工作负载提供以下类型的身份:
借助工作负载身份联合和适用于 GKE 的工作负载身份联合,您的工作负载可以使用通过外部身份提供方 (IdP) 进行身份验证的联合身份来访问大多数 Google Cloud 服务。Google Cloud 将身份作为主账号进行身份验证后,主账号可以使用您授予的 IAM 角色访问资源。
您可以将工作负载身份联合与 Google Cloud 上的工作负载或在 AWS、Azure、GitHub 和 GitLab 等平台上运行的外部工作负载搭配使用。
您可以将适用于 GKE 的工作负载身份联合与在 GKE 集群中运行的工作负载搭配使用,以向其授予访问 Google Cloud 资源的权限。
Google Cloud 服务账号可充当生产环境中工作负载的身份。您需要为服务账号授予访问权限,然后让工作负载使用该服务账号作为其身份,而不是直接为工作负载授予访问权限。
通过托管式工作负载身份(预览版),您可以将经过严格证明的身份绑定到 Compute Engine 工作负载。您可以使用托管式工作负载身份通过 双向 TLS (mTLS) 向其他工作负载验证您的工作负载,但不能用于向 Google Cloud API 进行身份验证。
您可以为工作负载使用的身份类型以及配置方式取决于工作负载的运行位置。
Google Cloud 上的工作负载
如果您是在 Google Cloud 上运行工作负载,则可以使用以下方法为您的工作负载配置身份:
- 关联的服务账号
- 适用于 GKE 的工作负载身份联合(仅适用于在 Google Kubernetes Engine 上运行的工作负载)
- 托管式工作负载身份(仅适用于在 Compute Engine 上运行的工作负载)
- 服务账号密钥
关联的服务账号
对于某些 Google Cloud 资源,您可以指定用户管理的服务账号,供资源用作其默认身份。此过程称为“将服务账号附加到资源”或“将服务账号与资源关联”。当资源上运行的代码访问 Google Cloud 服务和资源时,它会使用关联到资源的服务账号作为其身份。例如,如果您将服务账号关联到某个 Compute Engine 实例,并且该实例上的应用使用客户端库来调用 Google Cloud API,则这些应用会自动使用关联的服务账号来进行身份验证和授权。
在大多数情况下,您必须在创建资源时将服务账号附加到该资源。创建资源后,您无法更改将哪个服务账号附加到该资源。Compute Engine 实例是此规则的一个例外情况;您可以根据需要更改附加到实例的服务账号。
如需了解详情,请参阅将服务账号关联到资源。
Workload Identity Federation for GKE
对于在 GKE 上运行的工作负载,借助适用于 GKE 的工作负载身份联合,您可以为集群中的每个应用授予精细的 IAM 角色。借助适用于 GKE 的工作负载身份联合,GKE 集群中的 Kubernetes 服务账号可以直接(通过使用员工身份联合)或间接(通过使用 IAM 服务账号模拟)访问 Google Cloud 资源。
通过使用直接资源访问权限,您可以直接在 Google Cloud 服务的资源上向 Kubernetes 服务账号身份授予 IAM 角色。大多数 Google Cloud API 都支持直接访问资源。不过,使用身份联合时,某些 API 方法可能会受到限制。如需查看这些限制的列表,请参阅支持的产品和限制。
作为替代方案,工作负载还可以使用服务账号模拟,其中已配置的 Kubernetes 服务账号会绑定到 IAM 服务账号,该服务账号在访问 Google Cloud API 时充当身份。
如需详细了解适用于 GKE 的工作负载身份联合,请参阅适用于 GKE 的工作负载身份联合。
托管式工作负载身份
通过托管式工作负载身份,您可以将经过严格证明的身份绑定到 Compute Engine 工作负载。您可以使用托管式工作负载身份通过 mTLS 向其他工作负载验证您的工作负载,但不能用于向 Google Cloud API 进行身份验证。
如需详细了解托管式工作负载身份,请参阅托管式工作负载身份概览。
如需详细了解如何将托管式工作负载身份与 Compute Engine 工作负载搭配使用,请参阅通过 mTLS 向其他工作负载进行身份验证。
外部工作负载
如果您是在 Google Cloud 之外运行工作负载,则可以使用以下方法来为您的工作负载配置身份:
- 工作负载身份联合
- 服务账号密钥
工作负载身份联合
借助工作负载身份联合,您可以使用来自 AWS 和 Azure Active Directory 等外部身份提供方的凭据生成短期有效的凭据,工作负载可以使用这些凭据临时模拟服务账号。然后,工作负载可以使用相应的服务账号作为其身份来访问 Google Cloud 资源。
工作负载身份联合是为外部工作负载配置身份的首选方式。
如需详细了解工作负载身份联合,请参阅工作负载身份联合。
服务账号密钥
有了服务账号密钥后,工作负载便能够使用该服务账号来证明其身份,并且可以使用该服务账号的身份来进行授权。
本地开发
如果您是在本地环境中开展开发工作,则可以将工作负载配置为使用用户凭据或服务账号来进行身份验证和授权。如需了解详情,请参阅身份验证文档中的本地开发环境部分。
后续步骤
- 了解如何使用服务账号设置身份验证。
- 了解如何为本地开发环境设置身份验证。
- 了解如何向服务账号授予对资源的访问权限。