是驗證程式庫採用的策略,可根據應用程式環境自動尋找憑證。驗證程式庫會將這些憑證提供給 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 憑證是 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 驗證:
建立 OAuth 用戶端 ID。
使用
--client-id-file旗標,將用戶端 ID 提供給gcloud auth application-default login指令,並使用--scopes旗標 指定範圍。 -
服務帳戶驗證:建立服務帳戶。
模擬服務帳戶:使用
gcloud auth application-default login指令搭配--impersonate-service-account旗標,提供服務帳戶的電子郵件地址,並使用--scopes旗標指定範圍。
附加的服務帳戶
許多 Google Cloud 服務都允許您附加服務帳戶,用來提供存取 Google Cloud API 的憑證。如果 ADC 在 GOOGLE_APPLICATION_CREDENTIALS 環境變數或本機 ADC 憑證的已知位置中,都找不到可用的憑證,就會使用中繼資料伺服器,取得程式碼執行所在服務的憑證。
在 Google Cloud的實際工作環境中尋找憑證時,建議使用附加服務帳戶的憑證。如要使用附加的服務帳戶,請按照下列步驟操作:
- 建立使用者代管的服務帳戶。
- 盡可能將最低權限的 IAM 角色授予該服務帳戶。
- 將服務帳戶附加至執行程式碼的資源。
如需建立服務帳戶的說明,請參閱「建立及管理服務帳戶」。如需附加服務帳戶的相關說明,請參閱「將服務帳戶附加至資源」。如要瞭解服務帳戶所需的 IAM 角色,請參閱「選擇預先定義的角色」。
後續步驟
- 瞭解向 ADC 提供憑證的最佳做法。
- 使用 Cloud 用戶端程式庫進行驗證。
- 瞭解驗證方式。
- 瞭解用戶端程式庫。