פתרון בעיות שקשורות להרשאות

הדף הזה הוא חלק מהמאמר הכנה לשינויים הקרובים בהרשאות. במאמר הזה מוסבר על השגיאות שאתם עשויים לראות ואיך לתקן אותן.

יש שתי סיבות אפשריות לדחיית פעולה, וכדאי להבחין ביניהן:

שני סוגי הבדיקות חלים, ולכן תיקון של אחד מהם לא יתקן את השני.

שגיאות בחשבון שירות מסוג Run-as

חלק מהבדיקות האלה עדיין בתהליך השקה, ולכן יכול להיות שחלק מהשגיאות עדיין לא יוצגו. בהודעות, PRINCIPAL הוא החשבון שנבדק. השם יהיה The caller אם אי אפשר לתת שם לחשבון.

מצב מה יוצג לכם מה לעשות?
אדם, אוטומציה או טריגר מתחילים שילוב אבל לא יכולים לפעול בתור חשבון השירות שלו ההרצה נדחית עם השגיאה הבאה: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
  • קריאה ל-API מחזירה את השגיאה, ולא מופיע כלום ביומני ההפעלה.
  • טריגר של אירוע ב-Cloud Pub/Sub, ב-Eventarc או ב-Integration Connectors מתעד ביצוע שנכשל ביומני הביצוע, והאירוע לא מועבר שוב.
  • משימה של Cloud Scheduler מדווחת על שגיאה PERMISSION_DENIED.
לתת את התפקיד Service Account User למי שמפעיל אותו. במקרה של טריגר, זהו חשבון השירות של הטריגר.
לאינטגרציה שנוצרה ב-15 באוקטובר 2026 או אחריו, עם טריגר שאינו API או Private, אין חשבון שירות להרצת האינטגרציה. הפרסום והבדיקה נכשלים עם השגיאה הבאה: Set a run-as service account. These triggers run with no caller: TRIGGERS. Required for integrations created on or after October 15, 2026 (UTC). הגדרת חשבון שירות מסוג run-as
בהרצה ללא פרטי כניסה של משתמש, אין חשבון שירות להרצה בתור. אם ניהול השילובים מופעל באזור, הפרסום והבדיקה ייכשלו עם השגיאה הבאה, ללא קשר לתאריך היצירה של השילוב: Your project requires a run-as service account. Set one before publish or test. הניהול הוא ההגדרה הפעלת ניהול שמתוארת במאמר בנושא עריכת אזור. באזורים ללא ממשל, המערכת לא תדחה את ההרצות האלה החל מ-15 באוקטובר 2026. עם זאת, הפעולות הבאות צפויות להיכשל בגרסה עתידית:
  • משימות ללא זהות, כמו Connectors,‏ Call REST Endpoint או משימות של פונקציות Cloud Run.
  • ריצות אסינכרוניות, עם השגיאה הבאה: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
הגדרת חשבון שירות מסוג run-as
משימת שילוב שיחות לא יכולה להפעיל את שילוב המשנה שלה המשימה Call Integration (שילוב שיחות) של שילוב השיחות נכשלת, מאחת מהסיבות הבאות:
  • השילוב המשני נקרא באופן אסינכרוני ואין לו חשבון שירות להרצת הפעולה, גם אם לשילוב שקורא לו יש חשבון כזה: Integration NAME needs a run-as service account to run asynchronously via trigger TRIGGER_ID.
  • מי שהפעיל את שילוב השיחות, או חשבון השירות של שילוב השיחות שמוגדר להרצת הפעולות, לא יכול לפעול כחשבון השירות של שילוב המשנה שמוגדר להרצת הפעולות: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to run this integration.
מגדירים חשבון שירות מסוג run-as בשילוב המשני, או קוראים לו באופן סינכרוני. לאחר מכן נותנים לו את התפקיד Service Account User.
מישהו מפרסם או בודק שילוב שמשתמש בפרופיל אימות שחשבון השירות שלו לא מאפשר לו לפעול, או שהרצה מגיעה למשימה שמשתמשת בפרופיל הזה. הפרסום או הבדיקה נכשלים, או שהמשימה נכשלת, ומוצגת השגיאה הבאה: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to use auth config "AUTH_PROFILE_NAME". ההחלטה אם שאר ההרצה תימשך תלויה באופן שבו המשימה מטפלת בשגיאות. Grant Service Account User on the account named in the profile
מישהו יוצר או עורך פרופיל אימות של חשבון שירות או אסימון OIDC בלי הרשאה לפעול בתור חשבון השירות. שמירת הפרופיל נכשלת עם השגיאה הבאה: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to save this auth config. לתת את ההרשאה Service Account User בחשבון שמופיע בפרופיל למי שמנהל אותו
המאשר לא יכול לפעול כחשבון השירות להרצה אי אפשר לאשר או להפעיל מחדש את הריצה, ומופיעה השגיאה הבאה: PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to resume this execution. הריצה מושהית עד שהיא מסתיימת, ולכן יכול להיות שנדמה שהאישורים הפסיקו לפעול נותנים את התפקיד Service Account User לכל מי שעשוי לאשר
מישהו מפרסם או בודק שילוב בלי הרשאה לפעול בתור חשבון השירות שלו PRINCIPAL needs roles/iam.serviceAccountUser on SERVICE_ACCOUNT (or its project) to publish or test this integration. כל מה שכבר פורסם ימשיך לפעול. אם האוטומציה מפרסמת בשבילכם, היא מופיעה בצינור הפריסה ולא במסוף הענקת התפקיד Service Account User לבעלי אפליקציות, לבודקים ולאוטומציה
המשימה מופעלת על ידי האדם שהפעיל אותה, ולאדם הזה אין גישה למשאב. באינטגרציה חדשה, וגם בבדיקה של כל אינטגרציה, החל מ-15 באוקטובר 2026, משימות של JavaScript, של Data Transformer Script ושל Data Mapping יפעלו באופן הזה ההפעלה מתחילה כרגיל, ואז משימה אחת נכשלת ומוצג שם של משאב, למרות שלא חל שינוי בשילוב נותנים לאנשים האלה גישה למשאב, או מעבירים את השילוב לחשבון שירות מסוג run-as שכבר יש לו גישה – בדרך כלל זה הפתרון הטוב יותר, כי הוא מונע מצב שבו הגישה של השילוב משתנה בהתאם למי שמריץ אותו.

לרשימה המלאה של קודי השגיאה של Application Integration, ראו קודי שגיאה.

שגיאות בתפקידי IAM

בנוסף לחשבון השירות להרצת הפעולה, Application Integration מאמת את הרשאות ה-IAM של המשתמש לכל פעולה. אם נתקלתם בשגיאה PERMISSION_DENIED כשניסיתם לבצע אינטראקציה עם שילוב, או אם יומני הביצוע לא נטענים, ודאו שיש לכם תפקיד שמעניק את ההרשאות הנדרשות:

כדי לעשות את זה צריך אחד מהתפקידים האלה
איך רואים ופותחים שילובים roles/integrations.integrationViewer
הצגת יומני הביצוע והפרטים ‫roles/integrations.integrationViewer או roles/integrations.integrationInvoker
הרצת שילוב ‫roles/integrations.integrationInvoker או roles/integrations.integrationEditor
יצירה ועריכה של שילובים roles/integrations.integrationEditor
פרסום שילוב ‫roles/integrations.integrationDeployer או roles/integrations.integrationEditor
אישור או המשך של ריצה מושהית ‫roles/integrations.suspensionResolver או roles/integrations.integrationAdmin
גישה מלאה לכל האינטגרציות roles/integrations.integrationAdmin

כדי להקצות תפקיד, מריצים את הפקודה הבאה:

gcloud projects add-iam-policy-binding PROJECT_ID \
    --member='user:PRINCIPAL' \
    --role='ROLE'

למידע נוסף, קראו את המאמרים הבאים:

המענק לא פתר את השגיאה

  • המענק הועבר לפרויקט הלא נכון. הפעולה הזו צריכה להתבצע בפרויקט שבבעלותו נמצא חשבון השירות, ולא בהכרח בפרויקט שבבעלותו נמצאת האינטגרציה.
  • השינוי עדיין לא נכנס לתוקף. מחכים כמה דקות. ההחלטות בנושא הרשאות נשמרות במטמון לזמן קצר, בנוסף לעיכוב הרגיל בהפצת הרשאות IAM.
  • מעורב חשבון שירות שני. חשבון השירות של ההרצה, חשבון השירות של כל פרופיל אימות וחשבון השירות של ההרצה של כל שילוב משנה הם נפרדים, וכל אחד מהם צריך הרשאה משלו.
  • ההרשאה הוענקה לחשבון משתמש שגוי. במקרה של טריגר אירועים של Cloud Scheduler,‏ Cloud Pub/Sub,‏ Eventarc או Integration Connectors, הגורם הראשי שצריך לקבל את ההרשאה הוא חשבון השירות של הטריגר, ולא אתם. מידע נוסף זמין במאמר בנושא מי צריך את התפקיד 'משתמש בחשבון שירות'.
  • החסימה היא של התפקיד שלכם, ולא של חשבון השירות. התפקיד 'משתמש בחשבון שירות' קובע אם מותר לכם לפעול בתור חשבון השירות שמוגדר להרצת הפעולה. תפקיד IAM נפרד קובע אם מותר לכם לבצע את הפעולה. שגיאות בתפקידי IAM