本頁說明使用應用程式預設憑證 (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 的憑證。