כברירת מחדל, רק בעלים ועורכים של פרויקטים יכולים ליצור, לעדכן, למחוק או להפעיל משאבים של Cloud Run, ורק בעלים של פרויקטים ואדמינים של Cloud Run יכולים לשנות את כללי המדיניות של ניהול הזהויות והרשאות הגישה (IAM) – לדוגמה, כדי להפוך שירות לציבורי. פרטים נוספים זמינים במאמר תפקידי IAM ב-Cloud Run.
כדי לתת לחשבונות משתמשים או לקבוצות אחרות את היכולת לבצע את הפעולות האלה, משתמשים ב-IAM כדי להקצות תפקידים לחשבונות משתמשים שונים.
אם יצרתם או פרסתם פונקציות באמצעות פקודות gcloud functions או ממשקי ה-API של Cloud Functions מדור 2, ואתם צריכים להשתמש באפשרויות האלה לתאימות לדורות קודמים, קראו את המאמר בקרת גישה באמצעות IAM.
תפקידים מוגדרים מראש ב-Cloud Run
בהשוואה לתפקידים הבסיסיים (בעלים, עריכה וצפייה), התפקידים המוגדרים מראש הבאים כוללים בקרת גישה פרטנית יותר למשאבי Cloud Run:
| תפקיד | תיאור |
|---|---|
אדמין ב-Cloud Run (roles/run.admin) |
יכול ליצור, לעדכן ולמחוק שירותים, משימות ומאגרי עובדים, ויכול לקבל, להציג ולמחוק הפעלות של משימות. יכול להפעיל שירותים ומשימות, ויכול לבטל הפעלות של משימות. יכול לקבל ולהגדיר כללי מדיניות של IAM. יכול להציג, ליישם ולדחות המלצות. נדרשת הגדרה נוספת כדי לפרוס שירותים. |
פיתוח ב-Cloud Run (roles/run.developer) |
יכולים ליצור, לעדכן ולמחוק שירותים, משימות ומאגרי עובדים, ויכולים לקבל, להציג ברשימה ולמחוק הפעלות של משימות. יכולים לקבל מדיניות IAM אבל לא להגדיר אותה. יכולים להציג, ליישם ולסגור המלצות. |
צפייה ב-Cloud Run (roles/run.viewer) |
יכולת להציג שירותים, משימות, הפעלות של משימות ומאגרי עובדים. יכולת לקבל כללי מדיניות של IAM. יכולת להציג המלצות. |
מפעיל Cloud Run (roles/run.invoker) |
יכול להפעיל שירותים ומשימות, יכול לבטל הפעלות של משימות. |
מפתח מקור ב-Cloud Run (roles/run.sourceDeveloper) |
יכולים לפרוס ולנהל משאבים שנפרסו מקוד המקור ב-Cloud Run. |
מפתח ב-Cloud Run (roles/run.builder) |
יכול לבנות פונקציות Cloud Run ושירותים שנפרסו ממקור. |
מפעיל שירות של Cloud Run (roles/run.servicesInvoker) |
יכול להפעיל שירותי Cloud Run. |
מבצע משימות ב-Cloud Run (roles/run.jobsExecutor) |
יכול להריץ ולבטל משימות ב-Cloud Run. |
מבצע משימות ב-Cloud Run עם שינויים (roles/run.jobsExecutorWithOverrides) |
יכולים להריץ ולבטל משימות ב-Cloud Run עם שינויים. |
שליטה בגישה למשאב ספציפי ב-Cloud Run
אתם יכולים לשלוט בגישה לכל שירות, לכל משימה, לכל מאגר של Worker או לכל מכונה באמצעות IAM.
הוספת חשבונות משתמשים
כדי להוסיף חשבונות ראשיים לשירות:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- מסמנים את התיבה לצד השירות שרוצים להוסיף לו חשבונות משתמשים. אל תלחצו על השירות עצמו.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הנפתח Assign roles, בוחרים תפקיד אחד או יותר. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על 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 :
- לוחצים על תיבת הסימון שמימין למשימה שרוצים להוסיף לה חשבונות משתמשים. אל תלחצו על המשרה עצמה.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על 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.
כדי להוסיף חשבונות משתמשים למאגר של מכונות Worker:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- מסמנים את התיבה לצד מאגר ה-workers שרוצים להוסיף לו חשבונות משתמשים. אל תלחצו על מאגר ה-workers עצמו.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה למאגר ה-workers.
- בתפריט הקצאת תפקידים, בוחרים תפקיד אחד או יותר. התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools add-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
WORKER_POOL: שם מאגר ה-Workers. -
PRINCIPAL: סוג חשבון המשתמש (למשלuser:email@domain.com). רשימה של ערכים קבילים ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים שאפשר להזין במקוםROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להוסיף חשבונות משתמשים למכונה:
gcloud
משתמשים בפקודה הבאה:
gcloud beta run instances add-iam-policy-binding INSTANCE_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה. -
PRINCIPAL: סוג חשבון המשתמש (למשלuser:email@domain.com). רשימה של ערכים קבילים ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים שאפשר להזין במקוםROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
הסרת חשבונות ראשיים מתפקיד
כדי להסיר חשבונות משתמשים מתפקיד בשירות:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד השירות שרוצים להסיר ממנו חשבונות משתמשים. אל תלחצו על השירות עצמו.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל פח האשפה delete ליד חשבון המשתמש בתפקיד הרצוי כדי להסיר את התפקיד הזה מחשבון המשתמש.
- בתיבת הדו-שיח לאישור, אתם יכולים להסיר את חשבון המשתמש מכל התפקידים בשירות. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
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 :
- לוחצים על תיבת הסימון שמימין למשימה שרוצים להוסיף לה חשבונות משתמשים. אל תלחצו על המשרה עצמה.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל פח האשפה delete ליד חשבון המשתמש בתפקיד הרצוי כדי להסיר את התפקיד הזה מחשבון המשתמש.
- בתיבת הדו-שיח לאישור, אתם יכולים להסיר את חשבון המשתמש מכל התפקידים במשימה. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
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 :
- מסמנים את התיבה לצד מאגר ה-workers שרוצים להסיר ממנו חשבונות משתמשים. אל תלחצו על מאגר ה-workers עצמו.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל פח האשפה delete ליד חשבון המשתמש בתפקיד הרצוי כדי להסיר את התפקיד הזה מחשבון המשתמש.
- בתיבת הדו-שיח לאישור, אפשר להסיר את חשבון המשתמש הזה מכל התפקידים במאגר ה-Workers. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools remove-iam-policy-binding WORKER_POOL \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
WORKER_POOL: שם מאגר ה-Workers. -
PRINCIPAL: סוג חשבון המשתמש (למשלuser:email@domain.com). רשימה של ערכים קבילים ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים שאפשר להזין במקוםROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
כדי להסיר חשבונות משתמשים מתפקיד במכונה:
gcloud
משתמשים בפקודה הבאה:
gcloud beta run instances remove-iam-policy-binding INSTANCE_NAME \ --member=PRINCIPAL \ --role=ROLE
מחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: שם המכונה. -
PRINCIPAL: סוג חשבון המשתמש (למשלuser:email@domain.com). רשימה של ערכים קבילים ל-PRINCIPALמופיעה במאמר מזהים של חשבונות משתמשים. -
ROLE: התפקיד. רשימת הערכים שאפשר להזין במקוםROLEמופיעה במאמר תפקידי IAM ב-Cloud Run.
הוספה או הסרה של חשבונות משתמשים בכמות גדולה
כדי להוסיף או להסיר שירות בכמות גדולה:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין לשירות שרוצים להוסיף לו חשבונות משתמשים או להסיר ממנו חשבונות משתמשים. אל תלחצו על השירות עצמו.
- בוחרים את השירות שרוצים להוסיף לו חשבונות משתמשים או להסיר ממנו חשבונות משתמשים.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
כדי להוסיף חשבונות משתמשים:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
כדי להסיר חשבונות ראשיים:
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל המחיקה (פח אשפה) בשורה של חשבון המשתמש.
- בתיבת הדו-שיח לאישור, אתם יכולים להסיר את חשבון המשתמש מכל התפקידים בשירות. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
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 :
- לוחצים על תיבת הסימון שמימין למשימה שרוצים להוסיף לה חשבונות משתמשים. אל תלחצו על המשרה עצמה.
- בוחרים את המשימה שרוצים להוסיף לה חשבונות משתמשים או להסיר ממנה חשבונות משתמשים.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
כדי להוסיף חשבונות משתמשים:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה לשירות.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
כדי להסיר חשבונות ראשיים:
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל המחיקה (פח אשפה) בשורה של חשבון המשתמש.
- בתיבת הדו-שיח לאישור, אתם יכולים להסיר את חשבון המשתמש מכל התפקידים במשימה. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
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 :
- לוחצים על תיבת הסימון לצד מאגר ה-workers שרוצים להוסיף לו חשבונות משתמשים או להסיר ממנו חשבונות משתמשים. אל תלחצו על מאגר ה-workers עצמו.
- בוחרים את מאגר העובדים שרוצים להוסיף אליו חשבונות משתמשים או להסיר ממנו חשבונות משתמשים.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
כדי להוסיף חשבונות משתמשים:
- לוחצים על Add principal.
- בשדה New principals, מזינים את הזהות (או הזהויות) שצריכה גישה למאגר ה-workers.
- בתפריט הקצאת תפקידים, בוחרים תפקיד (או תפקידים). התפקידים שבחרתם יופיעו בחלונית עם תיאור קצר של ההרשאות שהם מעניקים.
- לוחצים על Save.
כדי להסיר חשבונות ראשיים:
- במסנן של רשימת התפקידים, מזינים את החשבון הראשי שרוצים להסיר. כל התפקידים שניתנו לחשבון הראשי הזה יוצגו.
- לוחצים על סמל המחיקה (פח אשפה) בשורה של חשבון המשתמש.
- בתיבת הדו-שיח לאישור, אפשר להסיר את חשבון המשתמש מכל התפקידים במאגר ה-Workers. לוחצים על Remove כדי להסיר את החשבון הראשי מהתפקיד.
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.
כדי להוסיף או להסיר כמה משתמשים בבת אחת:
gcloud
יוצרים מדיניות IAM:
cat <<EOF > policy.json { "bindings": [ { "role": ROLE, "members": [ PRINCIPAL ] } ] } EOF
משתמשים בפקודה gcloud beta run instances set-iam-policy:
gcloud beta run instances set-iam-policy INSTANCE_NAME policy.json
רשימת הערכים הקבילים של PRINCIPAL מופיעה במאמר מזהים של חשבונות משתמשים.
רשימת הערכים הקבילים של ROLE מופיעה במאמר תפקידי IAM ב-Cloud Run.
הצגת חשבונות משתמשים
כדי לראות את חשבונות המשתמשים של שירות מסוים:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- מסמנים את התיבה שמימין לשירות שרוצים לראות את חשבונות המשתמשים והתפקידים שלו. אל תלחצו על השירות עצמו.
- בוחרים את השירות שבו רוצים לראות את חשבונות המשתמשים והתפקידים.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצת לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run services get-iam-policy SERVICE_NAME
כדי לראות את חשבונות המשתמשים של משימה:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון שמימין למשימה שרוצים להוסיף לה חשבונות משתמשים. אל תלחצו על המשרה עצמה.
- בוחרים את המשימה שרוצים לראות את חשבונות המשתמשים והתפקידים שלה.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצת לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run jobs get-iam-policy JOB_NAME
כדי לראות את חשבונות המשתמשים של מאגר ה-workers:
המסוף
- נכנסים לדף Cloud Run במסוף Google Cloud :
- לוחצים על תיבת הסימון לצד מאגר ה-Workers שרוצים לראות את החשבונות הראשיים והתפקידים שלו. אל תלחצו על מאגר ה-workers עצמו.
- בוחרים את מאגר ה-Workers שרוצים לראות את חשבונות המשתמשים והתפקידים שלו.
- בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
- תוצג רשימה של תפקידים וחשבונות משתמשים, מקובצת לפי התפקיד שהוקצה.
gcloud
משתמשים בפקודה הבאה:
gcloud run worker-pools get-iam-policy WORKER_POOL
כדי להציג את חשבונות המשתמשים של מכונה:
gcloud
משתמשים בפקודה הבאה:
gcloud beta run instances get-iam-policy INSTANCE_NAME
שליטה בגישה לכל המשאבים של 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" לסוג החבר
allUsers.
התפקידים הנדרשים
כדי להשבית או להפעיל מחדש את בדיקת ה-IAM של הגורם המפעיל בשירות, צריך את ההרשאות הבאות:
run.services.createrun.services.updaterun.services.setIamPolicy
ההרשאות האלה כלולות בתפקיד אדמין ב-Cloud Run (roles/run.admin). במאמר תפקידי IAM ב-Cloud Run מפורטת רשימת התפקידים וההרשאות שמשויכות אליהם.
השבתת בדיקת ה-IAM של Cloud Run Invoker
הדרך המומלצת ליצור שירות ציבורי היא להשבית את בדיקת ה-IAM של Cloud Run Invoker. כברירת מחדל, Cloud Run אוכף את הבדיקה הזו. הפתרון הזה מתאים כשהפרויקט כפוף לאילוץ של שיתוף מוגבל לדומיין במדיניות הארגון.
כדי להשבית את הבדיקה:
המסוף
נכנסים ל-Cloud Run במסוף Google Cloud :
בתפריט הניווט של Cloud Run, לוחצים על Services:
אם אתם מגדירים שירות חדש, לוחצים על Deploy container וממלאים את דף הגדרות השירות הראשוני.
אם אתם מגדירים שירות קיים, לוחצים על השירות ואז על הכרטיסייה Security.
לוחצים על Allow public access.
כדי ליצור שירות חדש, לוחצים על יצירה. לוחצים על View diff & redeploy ואז על Deploy changes בשירות קיים.
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.
הפעלה מחדש של בדיקת ה-IAM של Cloud Run Invoker
כדי להפעיל מחדש את הבדיקה:
המסוף
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
לוחצים על השירות ואז על הכרטיסייה אבטחה.
בוחרים באפשרות Require authentication ובוחרים באפשרות Identity and Access Management (IAM).
לוחצים על View diff & redeploy ואז על Deploy changes.
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" לסוג החבר allUsers.
כדי לאפשר גישה ציבורית לשירות, אתם יכולים להקצות את התפקיד "מפעיל Cloud Run" ב-IAM לסוג החבר allUsers.
כדי להגדיר אימות בשירות Cloud Run, צריכה להיות לכם ההרשאה run.services.setIamPolicy. ההרשאה הזו כלולה בתפקיד "אדמין ב-Cloud Run". רשימת התפקידים המלאה וההרשאות שמשויכות אליהם מופיעה במאמר תפקידי IAM ב-Cloud Run.
המסוף
בשירות קיים של Cloud Run:
נכנסים לדף Services של Cloud Run במסוף Google Cloud :
מסמנים את התיבה שמימין לשירות שרוצים להפוך לגלוי לכולם. אל תלחצו על השירות עצמו.
בחלונית המידע שבפינה הימנית העליונה, לוחצים על הכרטיסייה Permissions. אם חלונית המידע לא מוצגת, יכול להיות שתצטרכו ללחוץ על Show Info Panel ואז על Permissions.
לוחצים על Add principal.
בשדה New principals, מזינים את הערך allUsers.
בתפריט Select a role, בוחרים את התפקיד Cloud Run Invoker.
לוחצים על Save.
תתבקשו לאשר שאתם רוצים להפוך את המשאב הזה לגלוי לכולם. לוחצים על Allow public access כדי להחיל את השינוי על הגדרות ה-IAM של השירות.
אם אתם יוצרים שירות חדש, צרו את השירות ובחרו באפשרות Allow public access בקטע Authentication כדי שהשירות יהיה זמין לכולם. כדי להפוך שירות לפרטי, בוחרים באפשרות Require authentication.
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:
הקישור הזה הוא סמכותי רק לתפקיד הנתון. קישורי IAM אחרים במדיניות ה-IAM של השירות נשמרים.
שימוש בתנאי IAM
אתם יכולים להשתמש בתנאי IAM כדי להגדיר ולאכוף בקרת גישה מותנית למשאבים מסוימים ב-Cloud Run, על סמך מאפיינים. כדי לתת גישה מותנית כשמפעילים שירותים ומאגרי Worker של Cloud Run, אפשר להשתמש במאפייני התנאים (request.host) ו-(request.path).
לדוגמה, כדי לתת גישה מותנית עם המאפיינים 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.
השלבים הבאים
איך מאמתים בצורה מאובטחת מפתחים, שירותים ומשתמשים בשירותים שזה עתה אבטחתם.