כל טריגר של Eventarc משויך לחשבון שירות של ניהול זהויות והרשאות גישה (IAM) בזמן יצירת הטריגר. הטריגר משתמש בחשבון השירות כזהות ברירת המחדל שלו.
כברירת מחדל, אי אפשר ליצור חשבון שירות של IAM בפרויקט אחד ולצרף אותו למשאב בפרויקט אחר.Google Cloud אבל יכול להיות שריכזתם את חשבונות השירות של הארגון בפרויקטים נפרדים, וכך קל יותר לנהל אותם. במאמר הזה מוסבר איך לצרף חשבון שירות בפרויקט אחד לטריגר Eventarc בפרויקט אחר.
אם אין לכם הרשאות לבצע את השלבים האלה, בקשו מאדמין לבצע אותם.
Google Cloudהפעלה של שימוש בחשבונות שירות בין פרויקטים
מבצעים את השלבים הבאים בפרויקט של חשבון השירות.
במסוף Google Cloud , נכנסים לדף מדיניות הארגון.
אם המדיניות השבתת השימוש בחשבון שירות בפרויקטים שונים נאכפת, צריך להשבית אותה.
מידע נוסף זמין במאמר הפעלה של צירוף חשבונות שירות בין פרויקטים.
יוצרים את חשבון השירות ורושמים את השם שלו.
מתן הרשאות לאימות של חשבון שירות
חשבונות משתמשים יכולים להשתמש בחשבונות שירות כדי לבצע אימות במספר דרכים. כל סוג אימות דורש שלחשבון המשתמש יהיו הרשאות IAM ספציפיות בחשבון השירות. מידע נוסף מופיע במאמר תפקידים לאימות חשבון שירות.
מקצים את תפקיד ה-IAM Service Account Token Creator (
roles/iam.serviceAccountTokenCreator) לסוכן השירות של Eventarc בפרויקט Google Cloud שמכיל את הטריגר. ההרשאה הזו מאפשרת לסוכן השירות לנהל את הגישה של חשבון השירות בין פרויקטים. סוכן שירות הוא הזהות של שירות Google Cloud מסוים בפרויקט מסוים. מידע נוסף מופיע במאמר בנושא סוכני שירות.המסוף
נכנסים לדף Service accounts במסוף Google Cloud .
בוחרים את הפרויקט שבבעלותו חשבון השירות שרוצים לצרף לטריגר Eventarc.
לוחצים על כתובת האימייל של חשבון השירות שיצרתם קודם.
לוחצים על הכרטיסייה Principals with access (גורמים עם גישה).
לוחצים על Grant access.
בשדה New principals, מזינים את כתובת האימייל של סוכן השירות של Eventarc:
service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com
מחליפים את
EVENTARC_PROJECT_NUMBERבGoogle Cloud מספר הפרויקט שמכיל את הטריגר.לוחצים על הוספת תפקיד נוסף.
ברשימה Select a role, מסננים לפי Service Account Token Creator ובוחרים את התפקיד.
לוחצים על Save.
gcloud
מריצים את הפקודה
gcloud iam service-accounts add-iam-policy-binding:gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.com \ --member='serviceAccount:service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com' \ --role='roles/iam.serviceAccountTokenCreator'
מחליפים את מה שכתוב בשדות הבאים:
SERVICE_ACCOUNT_NAME: השם של חשבון השירות-
SERVICE_ACCOUNT_PROJECT_ID: Google Cloudמזהה הפרויקט שאליו משויך חשבון השירות -
EVENTARC_PROJECT_NUMBER: מספר הפרויקט שמכיל את הטריגר Google Cloud
מקצים את תפקיד ה-IAM Service Account User (
roles/iam.serviceAccountUser) לכל החשבונות הראשיים שיוצרים טריגרים – לדוגמה, סוכן השירות של Eventarc בפרויקט Google Cloud שכולל את הטריגר. התפקיד המוגדר מראש הזה כולל את ההרשאהiam.serviceAccounts.actAs, שנדרשת כדי לצרף חשבון שירות למשאב.המסוף
מקצים את התפקיד בפרויקט כדי לאפשר לחשבון המשתמש להתחזות לכמה חשבונות שירות:
נכנסים לדף IAM במסוף Google Cloud .
בוחרים את הפרויקט שבבעלותו חשבון השירות.
לוחצים על Grant access.
בשדה New principals, מזינים את כתובת האימייל של החשבון הראשי.
ברשימה Select a role, מסננים לפי Service Account User ובוחרים את התפקיד.
לוחצים על Save.
לחלופין, אפשר להקצות את התפקיד בחשבון השירות כדי לאפשר לחשבון הראשי להתחזות רק לחשבון שירות ספציפי:
נכנסים לדף Service accounts במסוף Google Cloud .
בוחרים את הפרויקט שבבעלותו חשבון השירות.
לוחצים על כתובת האימייל של חשבון השירות שיצרתם קודם.
לוחצים על הכרטיסייה Permissions.
בקטע Principals with access to this service account, לוחצים על Grant access.
בשדה New principals, מזינים את כתובת האימייל של החשבון הראשי.
לוחצים על הוספת תפקיד נוסף.
ברשימה Select a role, מסננים לפי Service Account User ובוחרים את התפקיד.
לוחצים על Save.
gcloud
מריצים את הפקודה
gcloud projects add-iam-policy-bindingומקצים את התפקיד בפרויקט כדי לאפשר לחשבון הראשי להתחזות לכמה חשבונות שירות:gcloud projects add-iam-policy-binding SERVICE_ACCOUNT_PROJECT_ID \ --member=PRINCIPAL \ --role='roles/iam.serviceAccountUser'
לחלופין, מריצים את הפקודה
gcloud iam service-accounts add-iam-policy-bindingומקצים את התפקיד בחשבון השירות כדי לאפשר לישות הראשית להתחזות רק לחשבון שירות ספציפי:gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_RESOURCE_NAME \ --member=PRINCIPAL \ --role='roles/iam.serviceAccountUser'
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_ACCOUNT_PROJECT_ID: Google Cloudמזהה הפרויקט שאליו משויך חשבון השירות -
PRINCIPAL: מזהה של יוצר הטריגר בפורמטuser|group|serviceAccount:emailאוdomain:domain. לדוגמה:user:test-user@gmail.comgroup:admins@example.comserviceAccount:test123@example.domain.comdomain:example.domain.comמ'
SERVICE_ACCOUNT_RESOURCE_NAME: השם המלא של המשאב של חשבון השירות. לדוגמה:projects/SERVICE_ACCOUNT_PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_NAME@SERVICE_ACCOUNT_PROJECT_ID.iam.gserviceaccount.comכאשר:
-
SERVICE_ACCOUNT_PROJECT_IDהוא מזהה הפרויקטGoogle Cloud שבבעלותו חשבון השירות -
SERVICE_ACCOUNT_NAMEהוא השם של חשבון השירות
-
הענקת הרשאות לתמיכה בהפניית אירועים
לפני שיוצרים טריגר Eventarc, צריך להעניק הרשאות IAM אחרות כדי לתמוך בניתוב אירועים באמצעות Eventarc.
צריך להעניק את ההרשאות המתאימות על סמך המשאבים שמופעל Eventarc צריך לגשת אליהם כדי לבצע את העבודה, וספק האירועים ויעד האירועים. מידע נוסף זמין במאמר בנושא כל התפקידים וההרשאות.
יוצרים את הטריגר באמצעות חשבון השירות שמשותף בין הפרויקטים.