פתרון בעיות שקשורות להרשאות
הדף הזה הוא חלק מהמאמר הכנה לשינויים הקרובים בהרשאות. במאמר הזה מוסבר על השגיאות שאתם עשויים לראות ואיך לתקן אותן.
יש שתי סיבות אפשריות לדחיית פעולה, וכדאי להבחין ביניהן:
- חשבון השירות שמוגדר להרצת הפעולה – אין לכם הרשאה לפעול בשמו, או שאין לו גישה למה שהמשימה צריכה. שגיאות בחשבון שירות מסוג Run-as
- תפקיד IAM משלכם – אין לכם הרשאה לבצע את הפעולה בכלל. מידע נוסף זמין במאמר שגיאות בתפקידי IAM.
שני סוגי הבדיקות חלים, ולכן תיקון של אחד מהם לא יתקן את השני.
שגיאות בחשבון שירות מסוג Run-as
חלק מהבדיקות האלה עדיין בתהליך השקה, ולכן יכול להיות שחלק מהשגיאות עדיין לא יוצגו. בהודעות, PRINCIPAL הוא החשבון שנבדק. השם יהיה The caller אם אי אפשר לתת שם לחשבון.
| מצב | מה יוצג לכם | מה לעשות? |
|---|---|---|
| אדם, אוטומציה או טריגר מתחילים שילוב אבל לא יכולים לפעול בתור חשבון השירות שלו | ההרצה נדחית עם השגיאה הבאה:
PRINCIPAL needs roles/iam.serviceAccountUser on
SERVICE_ACCOUNT (or its project) to run this integration.
|
לתת את התפקיד 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. עם זאת, הפעולות הבאות צפויות להיכשל בגרסה עתידית:
|
הגדרת חשבון שירות מסוג run-as |
| משימת שילוב שיחות לא יכולה להפעיל את שילוב המשנה שלה | המשימה Call 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, לרשימה המלאה של התפקידים וההרשאות שכל אחד מהם כולל.
- בקרת גישה, כדי להבין איך Application Integration משתמש ב-IAM.
המענק לא פתר את השגיאה
- המענק הועבר לפרויקט הלא נכון. הפעולה הזו צריכה להתבצע בפרויקט שבבעלותו נמצא חשבון השירות, ולא בהכרח בפרויקט שבבעלותו נמצאת האינטגרציה.
- השינוי עדיין לא נכנס לתוקף. מחכים כמה דקות. ההחלטות בנושא הרשאות נשמרות במטמון לזמן קצר, בנוסף לעיכוב הרגיל בהפצת הרשאות IAM.
- מעורב חשבון שירות שני. חשבון השירות של ההרצה, חשבון השירות של כל פרופיל אימות וחשבון השירות של ההרצה של כל שילוב משנה הם נפרדים, וכל אחד מהם צריך הרשאה משלו.
- ההרשאה הוענקה לחשבון משתמש שגוי. במקרה של טריגר אירועים של Cloud Scheduler, Cloud Pub/Sub, Eventarc או Integration Connectors, הגורם הראשי שצריך לקבל את ההרשאה הוא חשבון השירות של הטריגר, ולא אתם. מידע נוסף זמין במאמר בנושא מי צריך את התפקיד 'משתמש בחשבון שירות'.
- החסימה היא של התפקיד שלכם, ולא של חשבון השירות. התפקיד 'משתמש בחשבון שירות' קובע אם מותר לכם לפעול בתור חשבון השירות שמוגדר להרצת הפעולה. תפקיד IAM נפרד קובע אם מותר לכם לבצע את הפעולה. שגיאות בתפקידי IAM