排解 ADC 設定問題

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

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

使用者憑證無法運作

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

Cloud de Confiance 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 權限,才能將專案指定為帳單專案。服務使用情形消費者 IAM 角色包含 serviceusage.services.use 權限。如果您沒有任何專案的 serviceusage.services.use 權限,請與安全管理員或專案擁有者聯絡,由對方授予您專案的「Service Usage Consumer」角色。

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

憑證不正確

如果憑證無法提供預期存取權,或系統找不到憑證,請檢查下列事項:

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

  • 請確認您在為 ADC 使用服務帳戶金鑰或其他 JSON 檔案時,才設定 GOOGLE_APPLICATION_CREDENTIALS 環境變數。環境變數所指向的憑證優先於其他憑證,包括 Workload Identity Federation for GKE。

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

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

無法辨識的憑證類型

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