本页面介绍了应用默认凭据(ADC)查找凭据的位置。了解 ADC 的工作原理有助于您了解 ADC 正在使用的凭据以及 ADC 查找凭据的方式。
Application Default Credentials (ADC) 是身份验证库使用的一种策略,可根据应用环境自动查找凭据。身份验证库会将这些凭据提供给 Cloud 客户端库和 Google API 客户端库。使用 ADC 时,您的代码可以在开发或生产环境中运行,而无需更改应用向 Google Cloud 服务和 API 进行身份验证的方式。
如需了解如何向 ADC 提供凭据(包括如何生成本地 ADC 文件),请参阅设置应用默认凭据。
搜索顺序
ADC 在以下位置搜索凭据:
GOOGLE_APPLICATION_CREDENTIALS
环境变量- 使用
gcloud auth application-default login
命令创建的凭据文件 - 元数据服务器返回的关联服务账号
ADC 检查凭据的位置顺序与每个位置的相对优势无关。如需有关了解向 ADC 提供凭据的最佳方式的帮助,请参阅设置应用默认凭据。
GOOGLE_APPLICATION_CREDENTIALS 环境变量
您可以使用 GOOGLE_APPLICATION_CREDENTIALS
环境变量提供凭据 JSON 文件的位置。此 JSON 文件可以是以下类型的文件之一:
用于员工身份联合的凭据配置文件
借助员工身份联合,您可以使用外部身份提供方 (IdP) 对用户进行身份验证和授权,以便访问 Google Cloud资源。如需了解详情,请参阅 Identity and Access Management (IAM) 文档中的员工身份联合。
用于工作负载身份联合的凭据配置文件
借助工作负载身份联合,您可以使用外部 IDP 对工作负载进行身份验证和授权,以便访问Google Cloud 资源。如需了解详情,请参阅 Identity and Access Management (IAM) 文档中的使用客户端库、gcloud CLI 或 Terraform 进行身份验证。
服务账号密钥
服务账号密钥会产生安全风险,因此不建议使用。与其他凭据文件类型不同,被破解的服务账号密钥可能被恶意用户利用,而无需他们提供任何额外信息。如需了解详情,请参阅使用和管理服务账号密钥的最佳实践。
使用 gcloud auth application-default login
命令创建的凭据文件
您可以通过运行 gcloud auth application-default login
命令向 ADC 提供凭据。此命令会创建一个 JSON 文件,其中包含您提供的凭据(来自您的用户账号或通过冒充服务账号提供),并将其放置在文件系统上的熟知位置。该位置取决于您的操作系统:
- Linux、macOS:
$HOME/.config/gcloud/application_default_credentials.json
- Windows:
%APPDATA%\gcloud\application_default_credentials.json
您使用 gcloud CLI 提供给 ADC 的凭据与您的 gcloud 凭据不同,gcloud 凭据是 gcloud CLI 用于向 Google Cloud进行身份验证的凭据。如需详细了解这两组凭据,请参阅 gcloud CLI 身份验证配置和 ADC 配置 。
默认情况下,如果访问令牌是从使用用户凭据创建的本地 ADC 文件生成的,则访问令牌会包含云范围 https://www.googleapis.com/auth/cloud-platform
。如需明确指定范围,请将 –-scopes
标志与 gcloud auth application-default login
命令结合使用。
如需为 Google Cloud外部的服务(例如 Google 云端硬盘)添加范围,请创建 OAuth 客户端 ID,然后使用
–-client-id-file
标志将其提供给 gcloud auth application-default login
命令,并使用
-–scopes
标志指定范围。
关联的服务账号
许多 Google Cloud 服务可让您关联服务账号,该账号可用于为访问 Google Cloud API 提供凭据。如果 ADC 未找到可在 GOOGLE_APPLICATION_CREDENTIALS
环境变量或本地 ADC 凭据的熟知位置使用的凭据,则会使用元数据服务器获取代码运行的服务的凭据。
如需查找 Google Cloud上生产环境中的凭据,首选方法是使用关联的服务账号中的凭据。如需使用关联的服务账号,请按照以下步骤操作:
- 创建用户管理的服务账号。
- 尽可能向该服务账号授予最小权限 IAM 角色。
- 将服务账号与运行代码的资源相关联。
如需有关创建服务账号的帮助,请参阅创建和管理服务账号。 如需有关关联服务账号的帮助,请参阅将服务账号关联到资源。如需有关确定服务账号所需的 IAM 角色的帮助,请参阅选择预定义角色。
后续步骤
- 了解向 ADC 提供凭据的最佳方式。
- 使用 Cloud 客户端库进行身份验证。
- 探索身份验证方法。
- 了解客户端库。