כברירת מחדל, רק בעלי פרויקטים ומשתמשים עם גישת עריכה יכולים ליצור, לעדכן, למחוק או להפעיל משאבי Cloud Run, ורק בעלי פרויקטים ואדמינים של Cloud Run יכולים לשנות את כללי המדיניות של ניהול זהויות והרשאות גישה (IAM) – למשל, כדי להפוך שירות לציבורי. פרטים נוספים זמינים במאמר בנושא תפקידי IAM ב-Cloud Run.
כדי לתת לחשבונות משתמשים או לקבוצות אחרים את היכולת לבצע את הפעולות האלה, צריך להשתמש ב-IAM כדי לתת תפקידים לחשבונות משתמשים שונים.
אם יצרתם או פרסתם פונקציות באמצעות פקודות gcloud functions או ממשקי Cloud Functions v2 API ואתם צריכים להשתמש באפשרויות האלה לצורך תאימות לאחור, כדאי לעיין במאמר בקרת גישה באמצעות IAM.
תפקידים מוגדרים מראש ב-Cloud Run
בהשוואה לתפקידים הבסיסיים (בעלים, עריכה וצפייה), התפקידים המוגדרים מראש הבאים כוללים בקרת גישה פרטנית יותר למשאבי Cloud Run:
| תפקיד | תיאור |
|---|---|
אדמין של Cloud Run (roles/run.admin) |
יכול ליצור, לעדכן ולמחוק שירותים, משימות ומאגרי עובדים, יכול לקבל, לרשום ולמחוק ביצועים של משימות. יכול להפעיל שירותים ומשימות, יכול לבטל ביצועים של משימות. יכול לקבל ולהגדיר מדיניות IAM. יכול להציג, להחיל ולבטל המלצות. נדרש הגדרה נוספת כדי לפרוס שירותים. |
Cloud Run Developer (roles/run.developer) |
יכול ליצור, לעדכן ולמחוק שירותים, משימות ומאגרי עובדים, יכול לקבל, להציג ברשימה ולמחוק ביצועים של משימות. יכול לקבל אבל לא להגדיר מדיניות IAM. יכול להציג, להחיל ולבטל המלצות. |
צפייה ב-Cloud Run (roles/run.viewer) |
יכולים להציג שירותים, משימות, הפעלות של משימות ומאגרי עובדים. יכולים לקבל מדיניות IAM. יכולים להציג המלצות. |
הפעלת Cloud Run (roles/run.invoker) |
יכולים להפעיל שירותים ועבודות, יכולים לבטל ביצוע של עבודות. |
Cloud Run Source Developer (roles/run.sourceDeveloper) |
יכול לפרוס ולנהל משאבים שנפרסו ממקור ב-Cloud Run. |
Cloud Run Builder (roles/run.builder) |
יכולים ליצור פונקציות Cloud Run ושירותים שנפרסים ממקור. |
התפקיד Cloud Run Service Invoker (roles/run.servicesInvoker) |
יכול להפעיל שירותי Cloud Run. |
Cloud Run Jobs Executor (roles/run.jobsExecutor) |
יכול להריץ ולבטל משימות Cloud Run. |
Cloud Run Jobs Executor With Overrides (roles/run.jobsExecutorWithOverrides) |
יכול להריץ ולבטל משימות Cloud Run עם החלפות. |
שליטה בגישה למשאב ספציפי ב-Cloud Run
אפשר לשלוט בגישה על בסיס שירות, משימה או מאגר עובדים באמצעות IAM.
הוספת ישויות
כדי להוסיף ישויות לשירות:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד השירות שרוצים להוסיף לו ישויות. לא לוחצים על השירות עצמו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הנפתח הקצאת תפקידים, בוחרים תפקיד או תפקידים. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
gcloud
משתמשים בפקודה הבאה:
gcloud run services add-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_NAME: שם השירות. -
PRINCIPAL: סוג החשבון הראשי (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים ל-PRINCIPALמופיעה במאמר מזהים של חשבונות ראשיים. -
ROLE: התפקיד. רשימת הערכים הקבילים ל-ROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להוסיף חשבונות ראשיים למשרה:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין למשרה שרוצים להוסיף לה ישויות. לא לוחצים על המשרה עצמה.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לעבודה.
- בתפריט הקצאת תפקידים, בוחרים תפקיד או תפקידים. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs add-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
JOB_NAME: שם המשימה. -
PRINCIPAL: סוג החשבון (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים הקבילים שלROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להוסיף חשבונות ראשיים למאגר עובדים:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד מאגר העובדים שרוצים להוסיף לו ישויות. לא לוחצים על מאגר העובדים עצמו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה למאגר העובדים.
- בתפריט הקצאת תפקידים, בוחרים תפקיד או תפקידים. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools add-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
WORKER_POOL: שם מאגר העובדים. -
PRINCIPAL: סוג החשבון (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים הקבילים שלROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
הסרת חשבונות ראשיים מתפקיד
כדי להסיר חשבונות ראשיים מתפקיד בשירות:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד השירות שרוצים להסיר ממנו את הגורמים המורשים. לא לוחצים על השירות עצמו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה מחיקה לצד החשבון הראשי בתפקיד הרצוי כדי להסיר את התפקיד מהחשבון הראשי.
- בתיבת הדו-שיח לאישור, יש אפשרות להסיר את החשבון הראשי מכל התפקידים בשירות. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
משתמשים בפקודה הבאה:
gcloud run services remove-iam-policy-binding SERVICE_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_NAME: שם השירות. -
PRINCIPAL: סוג החשבון (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים הקבילים שלROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להסיר חשבונות ראשיים מתפקיד במשימה:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין למשרה שרוצים להוסיף לה ישויות. לא לוחצים על המשרה עצמה.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה מחיקה לצד החשבון הראשי בתפקיד הרצוי כדי להסיר את התפקיד מהחשבון הראשי.
- בתיבת הדו-שיח לאישור, יש לכם אפשרות להסיר את חשבון המשתמש מכל התפקידים בעבודה. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs remove-iam-policy-binding JOB_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
JOB_NAME: שם המשימה. -
PRINCIPAL: סוג החשבון (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים הקבילים ל-ROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להסיר חשבונות ראשיים מתפקיד במאגר עובדים:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד מאגר העובדים שרוצים להסיר ממנו את הגורמים המורשים. לא לוחצים על מאגר העובדים עצמו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה מחיקה לצד החשבון הראשי בתפקיד הרצוי כדי להסיר את התפקיד מהחשבון הראשי.
- בתיבת הדו-שיח לאישור, יש אפשרות להסיר את החשבון הראשי מכל התפקידים במאגר העובדים. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools remove-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
WORKER_POOL: שם מאגר העובדים. -
PRINCIPAL: סוג החשבון (לדוגמה,user:email@domain.com). רשימת הערכים הקבילים שלPRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים הקבילים שלROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
הוספה או הסרה של משתמשים בצובר
כדי להוסיף או להסיר שירות לכמה משתמשים בבת אחת:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין לשירות שרוצים להוסיף לו ישויות או להסיר ממנו ישויות. לא לוחצים על השירות עצמו.
- בוחרים את השירות שרוצים להוסיף לו ישויות או להסיר ממנו ישויות.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
אם רוצים להוסיף ישויות:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
אם רוצים להסיר חשבונות ראשיים:
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה delete בשורה של החשבון.
- בתיבת הדו-שיח לאישור, יש אפשרות להסיר את החשבון הראשי מכל התפקידים בשירות. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
יוצרים מדיניות IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
משתמשים בפקודה gcloud run services set-iam-policy:
gcloud run services set-iam-policy SERVICE_NAME policy.json
רשימת הערכים הקבילים עבור PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
רשימת הערכים הקבילים ל-ROLE מופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להוסיף או להסיר מספר משרות בבת אחת:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין למשרה שרוצים להוסיף לה ישויות. לא לוחצים על המשרה עצמה.
- בוחרים את המשרה שרוצים להוסיף לה את הגורמים המורשים או להסיר ממנה את הגורמים המורשים.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
אם רוצים להוסיף ישויות:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
אם רוצים להסיר חשבונות ראשיים:
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה delete בשורה של החשבון.
- בתיבת הדו-שיח לאישור, יש לכם אפשרות להסיר את חשבון המשתמש מכל התפקידים בעבודה. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
יוצרים מדיניות IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
משתמשים בפקודה gcloud run jobs set-iam-policy:
gcloud run jobs set-iam-policy JOB_NAME policy.json
רשימת הערכים הקבילים עבור PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
רשימת הערכים הקבילים ל-ROLE מופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להוסיף או להסיר מספר גדול של עובדים ממאגר עובדים:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד מאגר העובדים שרוצים להוסיף לו ישויות או להסיר ממנו ישויות. לא לוחצים על מאגר העובדים עצמו.
- בוחרים את מאגר העובדים שרוצים להוסיף לו חשבונות משתמש או להסיר ממנו חשבונות משתמש.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
אם רוצים להוסיף ישויות:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה למאגר העובדים.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
אם רוצים להסיר חשבונות ראשיים:
- מזינים את החשבון הראשי שרוצים להסיר במסנן של רשימת התפקידים, שבו מוצגים כל התפקידים שניתנו לחשבון הראשי הזה.
- לוחצים על סמל פח האשפה delete בשורה של החשבון.
- בתיבת הדו-שיח לאישור, יש אפשרות להסיר את החשבון הראשי מכל התפקידים במאגר העובדים. לוחצים על הסרה כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
יוצרים מדיניות IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
משתמשים בפקודה gcloud run worker-pools set-iam-policy:
gcloud run worker-pools set-iam-policy WORKER_POOL policy.json
רשימת הערכים הקבילים עבור PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
רשימת הערכים הקבילים ל-ROLE מופיעה במאמר תפקידי IAM ב-Cloud Run.
הצגת הגורמים הראשיים
כדי לראות את חשבונות המשתמשים בשירות:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין לשירות שרוצים לראות את חשבונות המשתמשים והתפקידים שלו. לא לוחצים על השירות עצמו.
- בוחרים את השירות שרוצים לראות את החשבונות הראשיים והתפקידים שלו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצים לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run services get-iam-policy SERVICE_NAME
כדי לראות את חשבונות המשתמשים של משימה:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין למשרה שרוצים להוסיף לה ישויות. לא לוחצים על המשרה עצמה.
- בוחרים את המשימה שרוצים לראות את החשבונות הראשיים והתפקידים שלה.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצת לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs get-iam-policy JOB_NAME
כדי להציג את החשבונות הראשיים של מאגר עובדים:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד מאגר העובדים שרוצים לראות את העקרונות והתפקידים שלו. לא לוחצים על מאגר העובדים עצמו.
- בוחרים את מאגר העובדים שרוצים לראות את החשבונות הראשיים והתפקידים שלו.
- בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצים לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools get-iam-policy WORKER_POOL
שליטה בגישה לכל המשאבים של Cloud Run בפרויקט
אם רוצים להקצות תפקידים לחשבונות ראשיים בכל השירותים והמשימות בפרויקט, אפשר להשתמש ב-IAM ברמת הפרויקט.
המסוף
נכנסים לדף IAM במסוף Google Cloud :
מוצאים את חשבון המשתמש שרוצים לתת לו תפקיד ברמת הפרויקט.
לוחצים על סמל העריכה העיפרון בצד שמאל של השורה של חשבון המשתמש.
לוחצים על Add another role ובוחרים את התפקיד הנדרש.
לוחצים על Save.
gcloud
משתמשים בפקודה gcloud projects add-iam-policy-binding:
gcloud projects add-iam-policy-binding PROJECT_ID \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: המזהה של הפרויקט ב- Google Cloud. -
PRINCIPAL: החשבון הראשי (לדוגמה,user:email@domain.com). -
ROLE: התפקיד (לדוגמה,roles/run.admin).
אי אפשר להחיל את סוגי החשבונות הראשיים allUsers ו-allAuthenticatedUsers ברמת הפרויקט, אלא צריך להוסיף אותם לכל שירות בנפרד.
הגדרת שירות כציבורי
יש שתי דרכים ליצור שירות ציבורי ב-Cloud Run:
- משביתים את בדיקת ה-IAM של Cloud Run Invoker (מומלץ).
- מקצים את תפקיד ה-IAM Cloud Run Invoker לסוג החבר
allUsers.
התפקידים הנדרשים
כדי להשבית או להפעיל מחדש את בדיקת ה-IAM של מי שמפעיל שירות, צריכות להיות לכם ההרשאות הבאות:
run.services.createrun.services.updaterun.services.setIamPolicy
ההרשאות האלה כלולות בתפקיד Cloud Run Admin (roles/run.admin). רשימה מלאה של התפקידים וההרשאות שמשויכות אליהם מופיעה במאמר תפקידי IAM ב-Cloud Run.
השבתת בדיקת ה-IAM של Cloud Run Invoker
הדרך המומלצת להפוך שירות לציבורי היא להשבית את בדיקת ההרשאות של Cloud Run Invoker ב-IAM. כברירת מחדל, Cloud Run מבצע את הבדיקה הזו. משתמשים בפתרון הזה כשהפרויקט כפוף לאילוץ של שיתוף מוגבל לדומיין במדיניות הארגון.
כדי להשבית את הבדיקה:
המסוף
במסוף Google Cloud , נכנסים לדף Cloud Run:
אם אתם מגדירים שירות חדש, לוחצים על יצירת שירות וממלאים את הדף של הגדרות השירות הראשוניות לפי הצורך.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה אבטחה.
בוחרים באפשרות Allow public access (מתן גישה לכולם).
לוחצים על יצירה או על שמירה.
gcloud
כדי ליצור שירות חדש, משתמשים בפקודה
gcloud run deployעם הדגל--no-invoker-iam-check:gcloud run deploy SERVICE_NAME --no-invoker-iam-check
מחליפים את
SERVICE_NAMEבשם השירות.בשביל שירות קיים, משתמשים בפקודה
gcloud run services updateעם הדגל--no-invoker-iam-check:gcloud run services update SERVICE_NAME --no-invoker-iam-check
מחליפים את SERVICE_NAME בשם השירות.
YAML
כדי להציג ולהוריד את ההגדרות:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את ההערה
run.googleapis.com/invoker-iam-disabled::apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'true' name: SERVICE_NAME
מחליפים את SERVICE_NAME בשם של שירות Cloud Run.
מחליפים את השירות בהגדרות החדשות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = true
template {
containers {
image = "IMAGE_URL"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- REGION: האזור Google Cloud . לדוגמה,
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
כדי לוודא שהבדיקה מושבתת אחרי הפריסה, עוברים לנקודת הקצה של השירות ב-HTTPS.
הפעלה מחדש של בדיקת Cloud Run Invoker IAM
כדי להפעיל מחדש את הבדיקה:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות ואז על אבטחה.
בוחרים באפשרות דרישת אימות ואז באפשרות ניהול זהויות והרשאות גישה (IAM).
לוחצים על Save.
gcloud
מעדכנים את השירות באמצעות הדגל
--invoker-iam-check:gcloud run services update SERVICE_NAME --invoker-iam-check
מחליפים את
SERVICE_NAMEבשם השירות.
YAML
כדי להציג ולהוריד את ההגדרות:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את ההערה
run.googleapis.com/invoker-iam-disabled::apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/invoker-iam-disabled: 'false' name: SERVICE_NAME
מחליפים את
SERVICE_NAMEבשם של שירות Cloud Run.
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:resource "google_cloud_run_v2_service" "default" {
name = "SERVICE"
location = "REGION"
invoker_iam_disabled = false
template {
containers {
image = "IMAGE_URL"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של שירות Cloud Run.
- REGION: האזור Google Cloud . לדוגמה,
europe-west1. - IMAGE_URL: הפניה לקובץ אימג' של קונטיינר, לדוגמה,
us-docker.pkg.dev/cloudrun/container/hello:latest. אם אתם משתמשים ב-Artifact Registry, צריך ליצור מראש את המאגר REPO_NAME. כתובת ה-URL היא בפורמטLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
כדי לוודא שהבדיקה מופעלת מחדש אחרי הפריסה, עוברים לנקודת הקצה של שירות ה-HTTPS.
הגדרת מדיניות הארגון לבדיקת הרשאות IAM להפעלת Cloud Run
אדמינים יכולים להגביל את האפשרות להשבית את בדיקת ה-IAM של הפונקציה שמפעילה את הפונקציה באמצעות האילוץ המנוהל constraints/run.managed.requireInvokerIam.
האילוץ הזה לא נאכף כברירת מחדל.
מקצים את תפקיד ה-IAM של Cloud Run Invoker לסוג החבר allUsers
כדי לאפשר גישה ציבורית לשירות, צריך להקצות את תפקיד IAM של Cloud Run Invoker לסוג החבר allUsers.
כדי להגדיר אימות בשירות Cloud Run, צריכה להיות לכם הרשאת run.services.setIamPolicy. ההרשאה הזו כלולה בתפקיד 'אדמין של Cloud Run'. רשימה מלאה של התפקידים וההרשאות שמשויכות אליהם מופיעה במאמר תפקידי IAM ב-Cloud Run.
המסוף
בשירות Cloud Run קיים:
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
מימין לשירות שרוצים להפוך לציבורי, לוחצים על תיבת הסימון. לא לוחצים על השירות עצמו.
בחלונית המידע בפינה השמאלית העליונה, לוחצים על הכרטיסייה הרשאות. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
לוחצים על Add principal.
בשדה New principals, מזינים את הערך allUsers.
בתפריט Select a role (בחירת תפקיד), בוחרים בתפקיד Cloud Run Invoker (הפעלת Cloud Run).
לוחצים על Save.
תתבקשו לאשר שאתם רוצים להפוך את המשאב הזה לציבורי. לוחצים על Allow public access כדי להחיל את השינוי על הגדרות ה-IAM של השירות.
אם אתם יוצרים שירות חדש, אתם צריכים ליצור את השירות ולבחור באפשרות מתן גישה ציבורית בקטע אימות כדי שהשירות יהיה זמין לציבור. כדי להפוך שירות לפרטי, לוחצים על דרישת אימות.
gcloud
כדי להפוך שירות לנגיש לציבור, משתמשים בפקודה gcloud run services כדי להוסיף את סוג החבר המיוחד allUsers לשירות ולהעניק לו את התפקיד roles/run.invoker:
gcloud run services add-iam-policy-binding [SERVICE_NAME] \ --member="allUsers" \ --role="roles/run.invoker"
כדי שהשירות יהיה נגיש לכולם כשפורסים אותו, מריצים את הפקודה gcloud run deploy:
gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated
YAML
יוצרים קובץ בשם policy.yaml עם התוכן הבא:
bindings:
- members:
- allUsers
role: roles/run.invoker
כדי לאפשר גישה ציבורית ל-SERVICE הקיים, צריך להשתמש ב:
gcloud run services set-iam-policy SERVICE policy.yaml
Terraform
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
מוסיפים את השורות הבאות למשאבgoogle_cloud_run_v2_service בתצורת Terraform:כדי לעדכן את הקישור של IAM בשירות roles/run.invoker, מוסיפים את ההפניה הבאה למשאב של שירות Cloud Run:
הקישור הזה הוא סמכותי רק לתפקיד הנתון. שאר ההתאמות (bindings) של IAM במדיניות IAM של השירות נשמרות.
שימוש בתנאים ב-IAM
אתם יכולים להשתמש בתנאים של IAM כדי להגדיר ולאכוף בקרת גישה מותנית למשאבים מסוימים ב-Cloud Run, על סמך מאפיינים. Cloud Run תומך במאפייני התנאי (request.host) ו-(request.path) כדי להעניק גישה מותנית כשמפעילים שירותים של Cloud Run ומאגרי עובדים.
לדוגמה, כדי להעניק גישה מותנית עם המאפיינים request.host ו-request.path כשמפעילים שירותים של Cloud Run, מוסיפים את השדה condition כשמריצים את הפקודה הבאה:
gcloud run services add-iam-policy-binding SERVICE_NAME \
--member=PRINCIPAL \
--role=ROLE \
--region=REGION \
--condition=[KEY=VALUE,...]
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_NAME: שם השירות (לדוגמה,my-service). -
PRINCIPAL: החשבון הראשי (לדוגמה,user:email@domain.com). -
ROLE: התפקיד (לדוגמה,roles/run.invoker). -
REGION: האזור (לדוגמה,europe-west1). -
KEY=VALUE: תנאי שרוצים לכלול בקישור. הדגל--conditionחייב לכלול את צמדי מפתח/ערךexpressionו-title.
השלבים הבאים
איך מאמתים בצורה מאובטחת מפתחים, שירותים ומשתמשים בשירותים שאובטחו זה עתה.