תמיכה בחשבון שירות חוצה פרויקטים

כל טריגר של Eventarc משויך לחשבון שירות של ניהול זהויות והרשאות גישה (IAM) בזמן יצירת הטריגר. הטריגר משתמש בחשבון השירות כזהות ברירת המחדל שלו.

כברירת מחדל, אי אפשר ליצור חשבון שירות של IAM בפרויקט אחד ולצרף אותו למשאב בפרויקט אחר.Google Cloud אבל יכול להיות שריכזתם את חשבונות השירות של הארגון בפרויקטים נפרדים, וכך קל יותר לנהל אותם. במאמר הזה מוסבר איך לצרף חשבון שירות בפרויקט אחד לטריגר Eventarc בפרויקט אחר.

אם אין לכם הרשאות לבצע את השלבים האלה, בקשו מאדמין לבצע אותם.

Google Cloud

הפעלה של שימוש בחשבונות שירות בין פרויקטים

מבצעים את השלבים הבאים בפרויקט של חשבון השירות.

  1. במסוף Google Cloud , נכנסים לדף מדיניות הארגון.

    מעבר למדיניות הארגון

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

    מידע נוסף זמין במאמר הפעלה של צירוף חשבונות שירות בין פרויקטים.

  3. יוצרים את חשבון השירות ורושמים את השם שלו.

מתן הרשאות לאימות של חשבון שירות

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

  1. מקצים את תפקיד ה-IAM‏ Service Account Token Creator ‏(roles/iam.serviceAccountTokenCreator) לסוכן השירות של Eventarc בפרויקט Google Cloud שמכיל את הטריגר. ההרשאה הזו מאפשרת לסוכן השירות לנהל את הגישה של חשבון השירות בין פרויקטים. סוכן שירות הוא הזהות של שירות Google Cloud מסוים בפרויקט מסוים. מידע נוסף מופיע במאמר בנושא סוכני שירות.

    המסוף

    1. נכנסים לדף Service accounts במסוף Google Cloud .

      כניסה לדף Service accounts

    2. בוחרים את הפרויקט שבבעלותו חשבון השירות שרוצים לצרף לטריגר Eventarc.

    3. לוחצים על כתובת האימייל של חשבון השירות שיצרתם קודם.

    4. לוחצים על הכרטיסייה Principals with access (גורמים עם גישה).

    5. לוחצים על Grant access.

    6. בשדה New principals, מזינים את כתובת האימייל של סוכן השירות של Eventarc:

      service-EVENTARC_PROJECT_NUMBER@gcp-sa-eventarc.iam.gserviceaccount.com

      מחליפים את EVENTARC_PROJECT_NUMBER בGoogle Cloud מספר הפרויקט שמכיל את הטריגר.

    7. לוחצים על הוספת תפקיד נוסף.

    8. ברשימה Select a role, מסננים לפי Service Account Token Creator ובוחרים את התפקיד.

    9. לוחצים על 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
  2. מקצים את תפקיד ה-IAM‏ Service Account User (roles/iam.serviceAccountUser) לכל החשבונות הראשיים שיוצרים טריגרים – לדוגמה, סוכן השירות של Eventarc בפרויקט Google Cloud שכולל את הטריגר. התפקיד המוגדר מראש הזה כולל את ההרשאה iam.serviceAccounts.actAs, שנדרשת כדי לצרף חשבון שירות למשאב.

    המסוף

    מקצים את התפקיד בפרויקט כדי לאפשר לחשבון המשתמש להתחזות לכמה חשבונות שירות:

    1. נכנסים לדף IAM במסוף Google Cloud .

      כניסה לדף IAM

    2. בוחרים את הפרויקט שבבעלותו חשבון השירות.

    3. לוחצים על Grant access.

    4. בשדה New principals, מזינים את כתובת האימייל של החשבון הראשי.

    5. ברשימה Select a role, מסננים לפי Service Account User ובוחרים את התפקיד.

    6. לוחצים על Save.

    לחלופין, אפשר להקצות את התפקיד בחשבון השירות כדי לאפשר לחשבון הראשי להתחזות רק לחשבון שירות ספציפי:

    1. נכנסים לדף Service accounts במסוף Google Cloud .

      כניסה לדף Service accounts

    2. בוחרים את הפרויקט שבבעלותו חשבון השירות.

    3. לוחצים על כתובת האימייל של חשבון השירות שיצרתם קודם.

    4. לוחצים על הכרטיסייה Permissions.

    5. בקטע Principals with access to this service account, לוחצים על Grant access.

    6. בשדה New principals, מזינים את כתובת האימייל של החשבון הראשי.

    7. לוחצים על הוספת תפקיד נוסף.

    8. ברשימה Select a role, מסננים לפי Service Account User ובוחרים את התפקיד.

    9. לוחצים על 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.com
      • group:admins@example.com
      • serviceAccount:test123@example.domain.com
      • domain: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.

  1. צריך להעניק את ההרשאות המתאימות על סמך המשאבים שמופעל Eventarc צריך לגשת אליהם כדי לבצע את העבודה, וספק האירועים ויעד האירועים. מידע נוסף זמין במאמר בנושא כל התפקידים וההרשאות.

  2. יוצרים את הטריגר באמצעות חשבון השירות שמשותף בין הפרויקטים.

המאמרים הבאים