应用默认凭据的工作原理

使用集合让一切井井有条 根据您的偏好保存内容并对其进行分类。

本页面介绍了应用默认凭据(ADC)查找凭据的位置。了解 ADC 的工作原理有助于您了解 ADC 正在使用的凭据以及 ADC 查找凭据的方式。

ADC 是 Cloud 客户端库和 Google API 客户端库使用的一种策略,可根据应用环境自动查找凭据并使用这些凭据向 Google Cloud API 进行身份验证。设置 ADC 并使用客户端库时,您的代码可以在开发或生产环境中运行,而无需更改应用向 Google Cloud 服务和 API 进行身份验证的方式。

如需了解向 ADC 提供凭据的最佳方式,请参阅为应用默认凭据提供凭据

搜索顺序

ADC 在以下位置搜索凭据:

  1. GOOGLE_APPLICATION_CREDENTIALS 环境变量
  2. 使用 Google Cloud CLI 设置的用户凭据
  3. 关联的服务帐号(由元数据服务器提供)

GOOGLE_APPLICATION_CREDENTIALS 环境变量

您可以使用 GOOGLE_APPLICATION_CREDENTIALS 环境变量提供凭据 JSON 文件的位置。此 JSON 文件可以是以下类型的文件之一:

  • 用于工作负载身份联合的凭据配置文件

    工作负载身份联合可让您使用外部身份提供方访问 Google Cloud 资源。如需了解详情,请参阅 Identity and Access Management (IAM) 文档中的使用客户端库、gcloud CLI 或 Terraform 进行身份验证

  • 服务帐号密钥

    服务帐号密钥会产生安全风险,因此不建议使用。与其他凭据文件类型不同,被破解的服务帐号密钥可能被恶意用户利用,而无需他们提供任何额外信息。如需了解详情,请参阅使用和管理服务帐号密钥的最佳实践

使用 gcloud CLI 设置的用户凭据

您可以通过运行 gcloud auth application-default login 命令将 ADC 设置为使用您的 Google 帐号凭据。此命令会将包含您的凭据的 JSON 文件存放在文件系统上的熟知位置。该位置取决于您的操作系统:

  • Linux、macOS:$HOME/.config/gcloud/application_default_credentials.json
  • Windows:%APPDATA%\gcloud\application_default_credentials.json

如需详细了解如何使用 gcloud CLI 和 ADC,请参阅 gcloud 凭据的类型

关联的服务帐号

许多 Google Cloud 服务可让您关联服务帐号,该帐号可用于为访问 Google Cloud API 提供凭据。如果 ADC 未找到可在 GOOGLE_APPLICATION_CREDENTIALS 环境变量或 Google 帐号凭据的熟知位置使用的凭据,则会使用元数据服务器获取代码运行的服务的凭据。

如果您的应用在支持进行服务帐号关联的 Google Cloud 资源上运行,则应该使用关联的服务帐号来提供凭据。如需使用关联的服务帐号,请按以下步骤操作:

  1. 创建用户管理的服务帐号。
  2. 尽可能向该服务帐号授予最小权限 IAM 角色。
  3. 将服务帐号与运行代码的资源相关联。

建议将此配置用于在生产环境中运行的应用。

如需有关关联服务帐号的帮助,请参阅将服务帐号关联到资源。如需有关确定服务帐号所需的 IAM 角色的帮助,请参阅选择预定义角色

后续步骤