應用程式預設憑證的運作方式

本頁說明應用程式預設憑證 (ADC) 會在哪些位置尋找憑證。瞭解 ADC 的運作方式,有助您瞭解 ADC 使用的憑證,以及如何找到這些憑證。

Application Default Credentials (ADC) 是驗證程式庫用來自動依據應用程式環境尋找憑證的策略。驗證程式庫會將這些憑證提供給 Cloud 用戶端程式庫和 Google API 用戶端程式庫。使用 ADC 時,程式碼可以在開發或實際工作環境中執行,無須變更應用程式驗證 Google Cloud 服務和 API 的方式。

如要瞭解如何向 ADC 提供憑證,包括如何產生本機 ADC 檔案,請參閱「設定應用程式預設憑證」。

搜尋順序

ADC 會在下列位置搜尋憑證:

  1. GOOGLE_APPLICATION_CREDENTIALS 環境變數
  2. 使用 gcloud auth application-default login 指令建立的憑證檔案
  3. 中繼資料伺服器傳回的已連結服務帳戶

在 ADC 檢查憑證時,地點的順序與各個地點的相對優點無關。如要瞭解如何將憑證提供給 ADC,請參閱「設定應用程式預設憑證」。

GOOGLE_APPLICATION_CREDENTIALS 環境變數

您可以使用 GOOGLE_APPLICATION_CREDENTIALS 環境變數提供憑證 JSON 檔案的位置。這個 JSON 檔案可以是下列任一類型的檔案:

  • 員工身分聯盟的憑證設定檔

    有了員工身分聯盟,即可透過外部識別資訊提供者 (IdP) 驗證使用者,並授權他們存取 Google Cloud資源。詳情請參閱 Identity and Access Management (IAM) 說明文件中的「員工身分聯盟」一節。

  • Workload Identity 聯盟的憑證設定檔

    您可以使用工作負載身分聯盟,透過外部 IdP 驗證工作負載,並授權工作負載存取Google Cloud 資源。詳情請參閱身分與存取權管理 (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 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的實際工作環境中尋找憑證時,建議使用已連結服務帳戶的憑證。如要使用已連結的服務帳戶,請按照下列步驟操作:

  1. 建立使用者代管的服務帳戶。
  2. 請將最少權限的 IAM 角色授予該服務帳戶。
  3. 將服務帳戶連結至程式碼執行的資源。

如需建立服務帳戶的說明,請參閱「建立及管理服務帳戶」。如需關於附加服務帳戶的說明,請參閱「將服務帳戶附加至資源」。如要瞭解如何判斷服務帳戶所需的 IAM 角色,請參閱「選擇預先定義的角色」。

後續步驟