הגדרת מדיניות של Binary Authorization באמצעות Cloud Run
במדריך למתחילים הזה נסביר איך להגדיר ולבדוק כלל בסיסי במדיניות של Binary Authorization באמצעות Cloud Run.
במדריך הזה נשתמש ב-Binary Authorization כדי לשלוט בפריסה של שירות Cloud Run.
לפני שמתחילים
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init -
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Cloud Run, Artifact Registry, Binary Authorization APIs.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
התקינו את ה-CLI של Google Cloud.
-
אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.
-
כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:
gcloud init
יצירת שירות עם Binary Authorization מופעל
כדי ליצור שירות Cloud Run עם Binary Authorization מופעל:
לוחצים על Create service כדי להציג את הטופס Create service:
בטופס שמוצג, מבצעים את הפעולות הבאות:
- בוחרים ב-Cloud Run כפלטפורמת הפיתוח.
- בוחרים את האזור שבו רוצים למקם את השירות.
- מציינים את השם שרוצים לתת לשירות – לדוגמה,
test-service. לוחצים על הבא כדי להמשיך לדף Configure the service's first revision.
בטופס, מבצעים את הפעולות הבאות:
- בוחרים באפשרות Deploy one revision from an existing container image (פריסת גרסה אחת מקובץ אימג' של קונטיינר קיים).
משתמשים ב-
us-docker.pkg.dev/cloudrun/container/helloבתור קובץ האימג' של הקונטיינר.מרחיבים את הקטע הגדרות מתקדמות.
לוחצים על הכרטיסייה אבטחה.
מסמנים את תיבת הסימון Verify container deployment with Binary Authorization:
כברירת מחדל, מדיניות Binary Authorization מאפשרת פריסה של כל התמונות.
לוחצים על הבא כדי להמשיך לדף הגדרת האופן שבו השירות הזה מופעל:
בוחרים באפשרות אפשר גישה לכולם כדי לפתוח את התוצאה בדפדפן האינטרנט.
לוחצים על יצירה כדי לפרוס את האימג' ב-Cloud Run ומחכים עד שהפריסה תסתיים.
השירות שלכם נפרס. השינויים כפופים לאכיפת המדיניות של Binary Authorization.
עדכון המדיניות של Binary Authorization כדי לאסור את השימוש בכל התמונות
מדיניות Binary Authorization מכילה כלל ברירת מחדל. הכלל הזה קובע את הפריסה של שירות Cloud Run שיצרתם.
כברירת מחדל, הכלל מאפשר פריסה של כל אימג'י הקונטיינרים.
כדי לראות את מדיניות ברירת המחדל:
-
לוחצים על עריכת המדיניות.
בקטע Project Default Rule, שימו לב שהאפשרות Allow All Images מסומנת.
עכשיו משנים את המדיניות לחסימה של פריסת כל התמונות, כך:
נכנסים לדף Binary Authorization במסוף Google Cloud .
לוחצים על עריכת המדיניות.
בקטע כלל ברירת מחדל, בוחרים באפשרות איסור כל התמונות.
לוחצים על שמירת המדיניות.
פריסה מחדש של השירות
כדי לבדוק את המדיניות המעודכנת, פורסים גרסה חדשה.
כדי לפרוס את התמונה:
לוחצים על שם השירות שפרסתם קודם במדריך הזה.
לוחצים על 'עריכה' ופורסים את הגרסה החדשה.
לוחצים על פריסה.
מופיעה הודעת שגיאה דומה לזו:
Service update rejected by Binary Authorization policy: RevisionREVISIONuses unauthorized container image. Container image 'us-docker.pkg.dev/cloudrun/container/hello@SHA' is not authorized by policy. Denied by an ALWAYS_DENY admission rule
איפוס המדיניות כך שכל התמונות יהיו מותרות
כדי לאפס את המדיניות כך שכל התמונות יוצגו:
נכנסים לדף Binary Authorization במסוף Google Cloud .
לוחצים על עריכת המדיניות.
בוחרים באפשרות הצגת כל התמונות.
כדי לשמור את המדיניות, לוחצים על שמירת המדיניות.
עכשיו אפשר לפרוס תמונות.
הסרת המשאבים
כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:
כדי למחוק את השירות שיצרתם ב-Cloud Run:
ברשימת השירותים, מאתרים את השירות שרוצים למחוק ולוחצים על תיבת הסימון שלו כדי לבחור אותו.
לוחצים על Delete. כל הגרסאות של השירות יימחקו.
במאמר השבתת Binary Authorization מוסבר איך להשבית את התכונה.
המאמרים הבאים
אפשר להשתמש ב-breakglass כדי לעקוף את האכיפה של Binary Authorization.
משתמשים ב
built-by-cloud-buildגורם מאמת (attestor) כדי לפרוס רק קובצי אימג' שנוצרו על ידי Cloud Build.מגדירים את מדיניות Binary Authorization באמצעות מסוףGoogle Cloud או כלי שורת הפקודה.
צפייה באירועים של Binary Authorization ב-Cloud Run ביומני הביקורת של Cloud