הענקת הרשאה של משתמש בחשבון שירות לחשבונות שירות מסוג run-as
הדף הזה הוא חלק מהמאמר הכנה לשינויים הקרובים בהרשאות. במאמר מוסבר למי צריך לתת את התפקיד Service Account User (roles/iam.serviceAccountUser) ואיך עושים את זה.
למי נדרש התפקיד 'משתמש בחשבון שירות'
לגורמים הבאים צריכה להיות הרשאת משתמש בחשבון שירות בחשבון השירות שמופיע ברשימה:
| חשבון משתמש | חשבון שירות |
|---|---|
| כל מי שמפרסם או בודק את השילוב, כולל אוטומציה של פריסה | חשבון השירות של השילוב |
| כל מי שמפעיל את השילוב דרך ה-API או דרך מסוף Google Cloud , באופן סינכרוני או אסינכרוני | חשבון השירות של השילוב |
| חשבון השירות שמשמש להפעלת השילוב: כתובת האימייל של חשבון השירות של טריגר Cloud Scheduler, או חשבון השירות של טריגר Cloud Pub/Sub, של טריגר Eventarc או של טריגר אירועים של Integration Connectors. לא נדרש אם החשבון הזה הוא חשבון השירות להרצת הפעולה. | חשבון השירות של השילוב |
| כל מי שמאשר או מפעיל מחדש ריצה מושהית | חשבון השירות של השילוב |
| כל מי שמתחיל שילוב שקורא לשילוב משנה באמצעות המשימה Call Integration. באינטגרציה שמופעלת על ידי טריגר עם חשבון שירות, זהו חשבון השירות של הטריגר. | חשבון השירות של שילוב המשנה, בנוסף לזה של השילוב שקורא לו |
| חשבון השירות של השילוב שקורא, כשהוא קורא לשילוב משני באופן אסינכרוני. לא נדרש אם בשני השילובים נעשה שימוש באותו חשבון שירות. | חשבון השירות של ההרצה בתור שילוב המשנה |
| כל מי שיוצר או עורך פרופיל אימות מסוג חשבון שירות או אסימון OIDC | חשבון השירות שמופיע בפרופיל |
| כל מי שמפרסם או בודק שילוב שמשתמש בפרופיל הזה | חשבון השירות שמופיע בפרופיל |
כל מי שמפעיל שילוב שמגיע למשימה באמצעות הפרופיל הזה. אם מדובר בהרצה אסינכרונית או בהרצה מתוזמנת, זהו חשבון השירות של השילוב להרצה בתור, או סוכן שירות Application Integration, service-PROJECT_NUMBER@gcp-sa-integrations.iam.gserviceaccount.com, אם לשילוב אין חשבון כזה. במקרה כזה, עדיף להגדיר חשבון שירות להרצת הפקודה. |
חשבון השירות שמופיע בפרופיל |
לא צריך את התפקיד 'משתמש בחשבון שירות' כדי לשמור טיוטה. הבדיקות לגבי פרסום, בדיקה ושמירה של פרופילי אימות כבר חלות. הבדיקות לגבי הרצה, אישור, קריאה לשילובי משנה והרצת משימות שמשתמשות בפרופיל אימות יחולו בהמשך ההשקה, לכן כדאי להעניק הרשאות לכל שורה עכשיו כדי שהשילובים ימשיכו לפעול כשהן יחולו.
מתן התפקיד
כדי להקצות את התפקיד למישהו, מריצים את הפקודה הבאה:
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \
--project=SERVICE_ACCOUNT_PROJECT_ID \
--member='user:PRINCIPAL' \
--role='roles/iam.serviceAccountUser'
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ACCOUNT: כתובת האימייל של חשבון השירות מסוג run-as או של החשבון שצוין בפרופיל אימות -
SERVICE_ACCOUNT_PROJECT_ID: מזהה הפרויקט שבבעלותו חשבון השירות -
PRINCIPAL: כתובת האימייל של המשתמש
לסוגים אחרים של חשבונות משתמש, משתמשים בקידומת המתאימה --member:
- קבוצות: משתמשים ב-
group:. מומלץ להשתמש בקבוצות Google במקום בחשבונות משתמשים נפרדים כדי לפשט את ניהול הגישה כשחברי הצוות משתנים. - חשבונות שירות: משתמשים ב-
serviceAccount:לתהליכים אוטומטיים, לאפליקציות ולחשבונות שירות להפעלת טריגרים.
כדי לעשות את אותו הדבר במסוף Google Cloud :
- נכנסים אל IAM & Admin > Service Accounts (חשבונות שירות).
- בוחרים את חשבון השירות.
- לוחצים על הרשאות > מתן גישה.
כדי להעניק את ההרשאה, צריך את ההרשאה roles/iam.serviceAccountAdmin בחשבון השירות. לבעלי הפרויקט יש את ההרשאה הזו. מידע נוסף מופיע במאמר בנושא ניהול הגישה לחשבונות שירות.
המאמרים הבאים
- הגדרת חשבון שירות להרצת שילובים שפועלים ללא התערבות של אדם.
- אם נראה שהרשאה לא פועלת, אפשר לעיין במאמר בנושא פתרון בעיות שקשורות לשגיאות הרשאה.