פתרון בעיות בהגדרת ADC

כאן מתוארות חלק מהבעיות הנפוצות שאתם עשויים להיתקל בהן במהלך השימוש ב-Application Default Credentials.

אם אתם צריכים מידע נוסף, תוכלו להיעזר בהסבר על השימוש ב-Application Default Credentials, כולל המיקום של פרטי הכניסה.

פרטי הכניסה של המשתמש לא תקינים

אם הבקשה ל-API מחזירה הודעת שגיאה על כך ה-API לא תומך בפרטי הכניסה של משתמש הקצה, או שה-API לא מופעל בפרויקט או שלא הוגדר פרויקט לצורכי מכסה, כדאי לעיין במידע הבא.

ל-Google Cloud יש שני סוגים של ממשקי API:

  • ממשקי API שמבוססים על משאבים: הממשקים האלה משתמשים בפרויקט שמשויך למשאבים שאליהם מתבצעת הגישה, לצורכי חיוב ומכסה.

  • ממשקי API שמבוססים על לקוחות: הממשקים האלה משתמשים בפרויקט שמשויך לחשבון שבאמצעותו מתבצעת הגישה למשאבים, לצורכי חיוב ומכסה.

כשמשתמשים בפרטי כניסה לחשבון Google בממשקי API שמבוססים על לקוחות, אי אפשר להשתמש בפרויקט ברירת המחדל שמשויך לחשבון לצורכי חיוב.

כדי לפתור את הבעיה תוכלו לנסות אחד מהפתרונות הבאים:

  1. לעדכן את ההגדרות של ADC כדי להשתמש בפרויקט אחר לצורכי החיוב:

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  2. כשקוראים ישירות ל-API ל-REST או ל-RPC, תוכלו להשתמש בכותרת ה-HTTP x-goog-user-project בכל בקשה כדי לציין את הפרויקט לחיוב. לפרטים נוספים תוכלו לקרוא את המאמר הגדרה של פרויקט לצורכי מכסה בבקשת REST.

כדי להשתמש בפרויקט לחיוב צריך ב-IAM את ההרשאה serviceusage.services.use. ההרשאה serviceusage.services.use כלולה בתפקיד 'צרכן השימוש בשירות' ב-IAM. אם אין לכם אף פרויקט שכולל את ההרשאה serviceusage.services.use, תוכלו לבקש מאדמין האבטחה או מהבעלים של הפרויקט להקצות לפרויקט את התפקיד 'צרכן השימוש בשירות'.

פרטי הכניסה שגויים

אם נראה שפרטי הכניסה לא מעניקים לכם את הגישה שאתם מצפים לה, או שהם לא נמצאים, כדאי לבדוק את הדברים הבאים:

  • אם אתם משתמשים ב-Google Cloud באמצעות ה-CLI של gcloud בסביבה מקומית, ודאו שאתם מבינים באילו פרטי כניסה אתם משתמשים. כשמשתמשים ב-CLI של gcloud, צריך להשתמש בפרטי הכניסה שסיפקתם ל-CLI של gcloud באמצעות הפקודה gcloud auth login. אתם לא אמורים להשתמש בפרטי הכניסה שסיפקתם ל-ADC. מידע נוסף על שתי קבוצות פרטי הכניסה האלה זמין במאמר פרטי הכניסה ל-gcloud ופרטי הכניסה של ADC.

  • רק אם משתמשים במפתחות של חשבונות שירות או בקובץ JSON אחר ל-ADC, חשוב לוודא שמשתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS מוגדר. פרטי הכניסה שמוגדרים במשתנה הסביבה מקבלים עדיפות על פני פרטי כניסה אחרים, כולל Workload Identity.

  • מוודאים שחשבון המשתמש שמעביר את הבקשה כולל את התפקידים הנדרשים ב-IAM. אם משתמשים בפרטי כניסה של משתמש, צריך להקצות את התפקידים לכתובת האימייל שמשויכת לחשבון Google. אם משתמשים בחשבון שירות, צריך להקצות את התפקידים הנדרשים לחשבון השירות.

  • אם בקשת ה-API כוללת מפתח API, מפתח ה-API מקבל עדיפות על פני כל ההגדרות ב-ADC. אם משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS מוגדר, ואתם משתמשים במפתח API, ממשק ה-API עשוי להחזיר אזהרה על כך שהמערכת מתעלמת מאישורי הכניסה שמוגדרים ב-ADC. כדי להפסיק את האזהרה, תצטרכו לבטל את ההגדרה של משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS.

הסוג של פרטי הכניסה לא מזוהה

אם לבקשת ה-API מוחזרת הודעת שגיאה שכוללת את הטקסט "Error Create Credentials from JSON. Unrecognized credential type", צריך לוודא שאתם משתמשים בפרטי כניסה תקינים. אי אפשר להעביר את פרטי הכניסה ל-ADC באמצעות קובצי Client-ID.