כאן מתוארות חלק מהבעיות הנפוצות שאתם עשויים להיתקל בהן במהלך השימוש ב-Application Default Credentials.
אם אתם צריכים מידע נוסף, תוכלו להיעזר בהסבר על השימוש ב-Application Default Credentials, כולל המיקום של פרטי הכניסה.
פרטי הכניסה של המשתמש לא תקינים
אם הבקשה ל-API מחזירה הודעת שגיאה שלפיה ה-API לא תומך בפרטי הכניסה של המשתמש, או שה-API לא מופעל בפרויקט או שלא הוגדר פרויקט לצורכי מכסה, כדאי לעיין במידע הבא.
יש שני סוגים של Cloud de Confiance ממשקי API:
ממשקי API שמבוססים על משאבים: הממשקים האלה משתמשים בפרויקט שמשויך למשאבים שאליהם מתבצעת הגישה, לצורכי חיוב ומכסה.
ממשקי API שמבוססים על לקוחות: הממשקים האלה משתמשים בפרויקט שמשויך ללקוח שבאמצעותו מתבצעת הגישה למשאבים, לצורכי חיוב ומכסה.
כשמספקים פרטי כניסה של משתמש כדי לבצע אימות לממשק API שמבוסס על לקוח, צריך לציין את הפרויקט שבו ישמשו לצורכי חיוב ומכסה. הפרויקט הזה נקרא פרויקט המכסה.
יש כמה דרכים לציין פרויקט למכסה, כולל האפשרויות הבאות:
מעדכנים את קובץ ה-ADC כדי להשתמש בפרויקט אחר כפרויקט המכסה:
gcloud auth application-default set-quota-project YOUR_PROJECT
אם אתם משתמשים ב-CLI של gcloud כדי לבצע קריאה ל-API, אתם יכולים להגדיר את פרויקט המכסה בהגדרות של ה-CLI של gcloud:
gcloud config set billing/quota_project YOUR_PROJECT
כשקוראים ישירות ל-API ל-REST או ל-RPC, השתמשו בכותרת ה-HTTP
x-goog-user-projectבכל בקשה כדי לציין את פרויקט המכסה. לפרטים נוספים תוכלו לקרוא את המאמר הגדרה של פרויקט לצורכי מכסה בבקשת REST.
כדי להשתמש בפרויקט לחיוב צריך ב-IAM את ההרשאה serviceusage.services.use. ההרשאה serviceusage.services.use כלולה בתפקיד 'צרכן השימוש בשירות' ב-IAM. אם אין לכם אף פרויקט שכולל את ההרשאה serviceusage.services.use, תוכלו לבקש מאדמין האבטחה או מהבעלים של הפרויקט להקצות לפרויקט את התפקיד 'צרכן השימוש בשירות'.
מידע נוסף על פרויקטים של מכסות זמין במאמר סקירה כללית על פרויקטים של מכסות. במאמר הגדרת פרויקט לצורכי מכסה מוסברות דרכים נוספות להגדרת פרויקט לצורכי מכסה.
פרטי כניסה שגויים
אם נראה שפרטי הכניסה לא מעניקים לכם את הגישה שאתם מצפים לה, או שהם לא נמצאים, כדאי לבדוק את הדברים הבאים:
אם אתם משתמשים ב-CLI של gcloud כדי לגשת אל Cloud de Confiance בסביבה מקומית, ודאו שאתם מבינים באילו פרטי כניסה אתם משתמשים. כשמשתמשים ב-CLI של gcloud, צריך להשתמש בפרטי הכניסה שסיפקתם ל-CLI של gcloud באמצעות הפקודה
gcloud auth login. אתם לא אמורים להשתמש בפרטי הכניסה שסיפקתם ל-ADC. מידע נוסף על שתי קבוצות פרטי הכניסה האלה זמין במאמר הגדרת אימות ב-CLI של gcloud והגדרת ADC.רק אם משתמשים במפתחות של חשבונות שירות או בקובץ JSON אחר ל-ADC, חשוב לוודא שמשתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSמוגדר. פרטי הכניסה שמוגדרים במשתנה הסביבה מקבלים עדיפות על פני פרטי כניסה אחרים, כולל איחוד זהויות של עומסי עבודה ל-GKE.מוודאים שחשבון המשתמש שמעביר את הבקשה כולל את התפקידים הנדרשים ב-IAM. אם משתמשים בפרטי כניסה של משתמש, צריך להקצות את התפקידים לכתובת האימייל שמשויכת לחשבון המשתמש. אם משתמשים בחשבון שירות, צריך להקצות את התפקידים הנדרשים לחשבון השירות.
אם בקשת ה-API כוללת מפתח API, מפתח ה-API מקבל עדיפות על פני כל ההגדרות ב-ADC. אם משתנה הסביבה
GOOGLE_APPLICATION_CREDENTIALSמוגדר, ואתם משתמשים במפתח API, ממשק ה-API עשוי להחזיר אזהרה על כך שהמערכת מתעלמת מאישורי הכניסה שמוגדרים ב-ADC. כדי להפסיק את האזהרה, תצטרכו לבטל את ההגדרה של משתנה הסביבהGOOGLE_APPLICATION_CREDENTIALS.
הסוג של פרטי הכניסה לא מזוהה
אם לבקשת ה-API מוחזרת הודעת שגיאה שכוללת את הטקסט Error creating credential
from JSON. Unrecognized credential type, צריך לוודא שאתם משתמשים בפרטי כניסה תקינים. אי אפשר להעביר את פרטי הכניסה ל-ADC באמצעות קובצי Client-ID.