本頁說明應用程式預設憑證 (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資源。詳情請參閱身分與存取權管理 (IAM) 說明文件中的「員工身分聯盟」。
Workload Identity 聯盟的憑證設定檔
有了工作負載身分聯盟,即可透過外部 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 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,並使用 gcloud auth application-default login 指令的
--client-id-file 標記提供該 ID,然後使用
--scopes 標記指定範圍。
附加的服務帳戶
許多 Google Cloud 服務都允許您附加服務帳戶,用來提供存取 Google Cloud API 的憑證。如果 ADC 在 GOOGLE_APPLICATION_CREDENTIALS 環境變數或本機 ADC 憑證的已知位置中,都找不到可用的憑證,就會使用中繼資料伺服器,取得程式碼執行所在服務的憑證。
在 Google Cloud的實際工作環境中尋找憑證時,建議使用附加服務帳戶的憑證。如要使用附加的服務帳戶,請按照下列步驟操作:
- 建立使用者代管的服務帳戶。
- 盡可能將最低權限的 IAM 角色授予該服務帳戶。
- 將服務帳戶附加至執行程式碼的資源。
如需建立服務帳戶的說明,請參閱「建立及管理服務帳戶」。如需附加服務帳戶的相關說明,請參閱「將服務帳戶附加至資源」。如需協助判斷服務帳戶所需的 IAM 角色,請參閱「選擇預先定義的角色」。
後續步驟
- 瞭解向 ADC 提供憑證的最佳做法。
- 使用 Cloud 用戶端程式庫進行驗證。
- 瞭解驗證方式。
- 瞭解用戶端程式庫。