排解 ADC 設定問題

本頁說明使用應用程式預設憑證 (ADC) 時可能遇到的一些常見問題。

如要瞭解 ADC 的運作方式,包括憑證的存放位置,請參閱「應用程式預設憑證的運作方式」。

使用者憑證無法運作

如果 API 要求傳回錯誤訊息,指出此 API 不支援使用者憑證、專案未啟用 API,或未設定配額專案,請查看下列資訊。

Trusted Cloud API 分為兩種:

  • 依資源計算的 API:使用與存取的資源相關聯的專案,用於計費和配額。

  • 以用戶端為基礎的 API:使用與用戶端相關聯的專案,存取帳單和配額的資源。

當您提供使用者憑證,以便向以用戶端為基礎的 API 進行驗證時,必須指定用於帳單和配額的專案。這項專案稱為「配額專案」

您可以透過多種方式指定配額專案,包括下列選項:

  • 更新 ADC 檔案,以便使用其他專案做為配額專案:

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  • 如果您使用 gcloud CLI 呼叫 API,可以在 gcloud CLI 設定中設定配額專案:

    gcloud config set billing/quota_project YOUR_PROJECT
    
  • 如果您直接呼叫 REST 或 RPC API,請使用 x-goog-user-project HTTP 標頭,在每個要求中指定配額專案。詳情請參閱「使用 REST 要求設定配額專案」一文。

您必須具備專案的 serviceusage.services.use IAM 權限,才能將該專案指定為帳單專案。serviceusage.services.use 權限已納入服務使用情形消費者 IAM 角色。如果您沒有任何專案的 serviceusage.services.use 權限,請與安全性管理員或專案擁有者聯絡,請對方為您授予專案中的「服務用量使用者」角色。

如要進一步瞭解配額專案,請參閱「配額專案總覽」。如要瞭解設定配額專案的其他方式,請參閱「設定配額專案」。

憑證不正確

如果憑證似乎無法提供預期的存取權,或無法找到憑證,請檢查下列項目:

  • 如果您使用 gcloud CLI 在本機環境中存取 Trusted Cloud ,請務必瞭解您使用的憑證。使用 gcloud CLI 時,您會使用透過 gcloud auth login 指令提供給 gcloud CLI 的憑證。您並未使用提供給 ADC 的憑證。如要進一步瞭解這兩組憑證,請參閱「gcloud CLI 驗證設定和 ADC 設定」。

  • 請確認您在使用 ADC 的服務帳戶金鑰或其他 JSON 檔案時,才設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數。環境變數所指向的憑證優先於其他憑證,包括 GKE 的工作負載身分聯合。

  • 確認提出要求的主體是否具備必要的 IAM 角色。如果您使用使用者憑證,則必須將角色授予與使用者帳戶相關聯的電子郵件地址。如果您使用的是服務帳戶,則該服務帳戶必須具備必要的角色。

  • 如果您在 API 要求中提供 API 金鑰,則該金鑰會優先於任何位置的 ADC。如果您已設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數,且正在使用 API 金鑰,API 可能會傳回警告,指出您提供給 ADC 的憑證已遭到忽略。如要停止警告,請取消設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數。

無法辨識的憑證類型

如果 API 要求傳回的錯誤訊息包含 Error creating credential from JSON. Unrecognized credential type,請確認您使用的是有效的憑證。不支援使用用戶端 ID 檔案提供 ADC 的憑證。