工作负载的身份

Google Cloud 提供服务账号来充当生产环境中的工作负载的身份。您需要为服务账号授予访问权限,然后让工作负载使用该服务账号作为其身份,而不是直接为工作负载授予访问权限。

您可以通过多种方式将服务账号配置为工作负载的身份。您可以使用的方法取决于工作负载的运行位置。

Google Cloud 上的工作负载

如果您是在 Google Cloud 上运行工作负载,则可以使用以下方法为您的工作负载配置身份:

  • 关联的服务账号
  • 托管式工作负载身份(仅适用于在 Compute Engine 上运行的工作负载)
  • Workload Identity(仅适用于在 Google Kubernetes Engine 上运行的工作负载)
  • 服务账号密钥

关联的服务账号

对于某些 Google Cloud 资源,您可以指定用户管理的服务账号,供资源用作其默认身份。此过程称为“将服务账号附加到资源”或“将服务账号与资源关联”

当资源上运行的代码访问 Google Cloud 服务和资源时,它会使用关联到资源的服务账号作为其身份。例如,如果您将服务账号关联到某个 Compute Engine 实例,并且该实例上的应用使用客户端库来调用 Google Cloud API,则这些应用会自动使用关联的服务账号来进行身份验证和授权。

在大多数情况下,您必须在创建资源时将服务账号附加到该资源。创建资源后,您无法更改将哪个服务账号附加到该资源。Compute Engine 实例是此规则的一个例外情况;您可以根据需要更改附加到实例的服务账号。

如需了解详情,请参阅将服务账号关联到资源

托管式工作负载身份

通过托管式工作负载身份,您可以将经过严格证明的身份绑定到 Compute Engine 工作负载。您可以使用托管式工作负载身份通过 mTLS 向其他工作负载验证您的工作负载,但不能用于向 Google Cloud API 进行身份验证。

如需详细了解托管式工作负载身份,请参阅托管式工作负载身份概览

如需详细了解如何将托管式工作负载身份与 Compute Engine 工作负载搭配使用,请参阅通过 mTLS 向其他工作负载进行身份验证

GKE Workload Identity

对于在 GKE 上运行的工作负载,Workload Identity 允许 GKE 集群中的 Kubernetes 服务账号充当 IAM 服务账号。访问 Google Cloud API 时,使用已配置好的 Kubernetes 服务账号的 Pod 会自动使用相应的 IAM 服务账号作为其身份。借助 Workload Identity,您可以为集群中的每个应用分配不同的精细身份和授权。

如需详细了解 GKE Workload Identity,请参阅适用于 GKE 的工作负载身份联合

服务账号密钥

有了服务账号密钥后,工作负载便能够使用该服务账号来证明其身份,并且可以使用该服务账号的身份来进行授权。 如果服务账号密钥未正确管理,则会带来安全风险。您应该尽可能选择更安全的服务账号密钥替代方案。如果必须使用服务账号密钥进行身份验证,您将负责私钥的安全性以及管理服务账号密钥的最佳实践中所述的其他操作。如果系统阻止您创建服务账号密钥,您的组织可能会停用服务账号密钥创建功能。如需了解详情,请参阅管理默认安全的组织资源

外部工作负载

如果您是在 Google Cloud 之外运行工作负载,则可以使用以下方法来为您的工作负载配置身份:

  • 工作负载身份联合
  • 服务账号密钥

工作负载身份联合

借助工作负载身份联合,您可以使用来自 AWS 和 Azure Active Directory 等外部身份提供方的凭据生成短期有效的凭据,工作负载可以使用这些凭据临时模拟服务账号。然后,工作负载可以使用相应的服务账号作为其身份来访问 Google Cloud 资源。

工作负载身份联合是为外部工作负载配置身份的首选方式。

如需详细了解工作负载身份联合,请参阅工作负载身份联合

服务账号密钥

有了服务账号密钥后,工作负载便能够使用该服务账号来证明其身份,并且可以使用该服务账号的身份来进行授权。 如果服务账号密钥未正确管理,则会带来安全风险。您应该尽可能选择更安全的服务账号密钥替代方案。如果必须使用服务账号密钥进行身份验证,您将负责私钥的安全性以及管理服务账号密钥的最佳实践中所述的其他操作。如果系统阻止您创建服务账号密钥,您的组织可能会停用服务账号密钥创建功能。如需了解详情,请参阅管理默认安全的组织资源

本地开发

如果您是在本地环境中开展开发工作,则可以将工作负载配置为使用用户凭据来进行身份验证和授权。如需了解详情,请参阅身份验证文档中的本地开发环境部分。

后续步骤