איתור שילובים שנדרש עבורם חשבון שירות מסוג run-as
הדף הזה הוא חלק מהמאמר הכנה לשינויים הקרובים בהרשאות. הוא עוזר לכם למצוא את השילובים שצריך להגדיר להם חשבון שירות עם הרשאת הפעלה לפני שהשינויים ייכנסו לתוקף.
איך קובעים אם צריך שילוב
צריך חשבון שירות מסוג run-as רק כשאין פרטי כניסה של אף אחד שזמינים לכל הריצה. זה קורה בשני מצבים בלבד:
| איך השילוב פועל | האם יש אישורים של מישהו? | האם צריך חשבון שירות להרצת הפעולה? |
|---|---|---|
| באופן סינכרוני – מישהו מתחיל את הפעולה ומחכה לתוצאה | כן, לכל משך הריצה | לא |
| באופן אסינכרוני – המשימה מתווספת לתור ומסתיימת מאוחר יותר | רק ברגע ההפעלה | כן |
| ללא השגחה – התרחיש מופעל על ידי לוח זמנים או אירוע | לא, אף פעם לא מדברים עם נציג | כן |
זיהוי השילובים המושפעים
קודם כל, האם הוא פועל אי פעם בלי אדם? היא תפעל אם אחד מהתנאים הבאים מתקיים:
- יש לו טריגר שאינו API או טריגר Private, למשל טריגר Schedule, Cloud Scheduler, Cloud Pub/Sub, Salesforce, Integration Connectors event או Eventarc.
- משהו מתזמן אותו דרך ה-API עם
scheduleIntegrations. - שילוב אחר קורא לו כשילוב משנה אסינכרוני, באמצעות המשימה Call Integration. גם אם לשילוב שקורא יש חשבון שירות, לשילוב המשנה צריך להיות חשבון שירות משלו להרצת פעולות.
- הוא משתמש במשימה Suspend או Approval, שבה ריצה יכולה להמתין ואז לפוג מעצמה.
שנית, האם חשבון השירות להרצת הפונקציה ריק? כדי להציג רשימה של כל הגרסאות שפורסמו באזור מסוים לצד חשבון השירות שמוגדר להרצת הגרסה, מריצים את הפקודה הבאה:
curl -s -G -H "Authorization: Bearer $(gcloud auth print-access-token)" \
--data-urlencode "filter=state=ACTIVE" \
--data-urlencode "pageSize=1000" \
"https://REGION-integrations.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/integrations/-/versions" \
| jq -r '.integrationVersions[]
| [ .name, (.runAsServiceAccount // "NONE") ]
| @tsv'
מחליפים את מה שכתוב בשדות הבאים:
-
REGION: האזור של השילוב. רשימת האזורים הנתמכים מופיעה במאמר מיקומים. -
PROJECT_ID: מזהה הפרויקט ב-Google Cloud
- שורות עם הערך
NONEדורשות פעולה רק אם גם החלק הראשון רלוונטי להן. - כדי לבדוק שילוב יחיד, פותחים אותו בעורך השילובים ולוחצים על (הגדרות השילוב) בסרגל הכלים של העורך. בשדה חשבון שירות מוצג חשבון השירות של ההרשאה להפעלה, והוא ריק אם לשילוב אין חשבון שירות כזה.
המאמרים הבאים
- נותנים את התפקיד Service Account User בחשבונות השירות שמשמשים להרצת פעולות בשם חשבון אחר שכבר נמצאים בשימוש.
- מגדירים חשבון שירות מסוג run-as בכל שילוב שמצאתם.