ב-Workflows נעשה שימוש בניהול זהויות והרשאות גישה (IAM) כדי לקבוע אילו פעולות יכולים לבצע משתמשים מאומתים וחשבונות שירות.
לפני שמתחילים לאמת את הגישה למשאבי Workflows ולתת לה הרשאה, חשוב להבין את המושגים הבסיסיים של IAM.
בדף הזה מפורטות ההרשאות שנדרשות כדי לגשת למשאבי Workflows, כולל היכולת להפעיל ביצועים של זרימות עבודה.
במאמר איך נותנים להרשאות של זרימת עבודה גישה למשאבים של Google Cloud מוסבר איך נותנים לזרימות עבודה הרשאות גישה לשירותים אחרים.
בקרת גישה
לא משנה איך מטמיעים את האימות, חשוב להבין את בקרת הגישה ואת התפקידים הזמינים ב-Workflows. תפקיד הוא אוסף של הרשאות שמעניקות גישה למשאבים ב- Google Cloud. כשמפתחים אפליקציה לייצור, צריך להקצות לחשבון השירות רק את התפקידים שהוא צריך כדי ליצור אינטראקציה עם ממשקי ה-API, התכונות או המשאבים הרלוונטיים של Google Cloud .
מידע נוסף על התפקידים הזמינים ב-Workflows זמין במאמר תפקידים והרשאות ב-Workflows.
הפעלת תהליכי עבודה
חשבון שירות הוא גם זהות וגם משאב שמקבל מדיניות IAM. לכן אפשר להקצות תפקידים לחשבון השירות, ואז לאפשר לחשבונות משתמשים אחרים להתחזות לחשבון השירות על ידי הקצאת תפקיד בחשבון השירות או באחד ממשאבי ההורה של חשבון השירות.
לדוגמה, אתם יכולים להעניק לחשבון שירות את התפקיד workflows.invoker כדי שלחשבון תהיה הרשאה להפעיל את זרימת העבודה. אחר כך תוכלו לאפשר לחשבון משתמש להתחזות לחשבון השירות שלכם או לפעול בשמו.
שימו לב: חשבון השירות של תהליך העבודה לא צריך את התפקיד workflows.invoker, אלא אם תהליך העבודה מפעיל את עצמו או תהליכי עבודה אחרים.
מידע נוסף על התחזות לחשבון שירות זמין במאמר התחזות לחשבון שירות.
כדי להעניק לחשבון השירות של השירות שקורא ל-Workflows את התפקיד 'מפעיל Workflows' (roles/workflows.invoker), כך שלשירות תהיה הרשאה להפעיל זרימות עבודה ולנהל את ההפעלות, צריך לבצע את הפעולות הבאות:
המסוף
במסוף Google Cloud , נכנסים לדף Service Accounts:
Go to Service Accountsבוחרים פרויקט ולוחצים על Create service account.
כותבים שם בשדה Service account name, למשל
sa-name.לוחצים על Create and continue.
ברשימה Select a role בוחרים באפשרות Workflows > Workflows Invoker.
לוחצים על סיום.
gcloud
פותחים טרמינל.
מזינים את הפקודה הבאה:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \ --role roles/workflows.invoker
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
SERVICE_ACCOUNT_NAME: השם של חשבון השירות.
-