במדריך הזה מוסבר איך להגדיר את Binary Authorization כדי לאכוף פריסה מבוססת-מדיניות של שירותים ועבודות ב-Cloud Run.
לפני שמתחילים
מגדירים את Cloud Run ומפעילים את ממשקי ה-API, באופן הבא:
- נכנסים לחשבון 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 בשירות קיים. כדי להפעיל את האכיפה אחרי ההפעלה, יכול להיות שתצטרכו לפרוס עדכון או לשנות את התנועה בשירות.
אפשר להפעיל את האכיפה של Binary Authorization בשירות קיים באמצעות מסוף Google Cloud או Google Cloud CLI:
המסוף
נכנסים לדף Cloud Run במסוף Google Cloud .
לוחצים על השירות.
לוחצים על הכרטיסייה אבטחה.
כדי להפעיל את האכיפה של Binary Authorization בשירות, לוחצים על הפעלה.
אופציונלי: כדי להגדיר את המדיניות של Binary Authorization, לוחצים על Configure Policy (הגדרת מדיניות).
gcloud
מפעילים את Binary Authorization בשירות ומבצעים פריסה:
gcloud run services update SERVICE_NAME --binary-authorization=default
מחליפים את SERVICE_NAME בשם של השירות.
YAML
אם אתם יוצרים שירות חדש, דלגו על השלב הזה. אם אתם מעדכנים שירות קיים, אתם צריכים להוריד את הגדרות ה-YAML שלו:
gcloud run services describe SERVICE --format export > service.yaml
מעדכנים את ההערה
run.googleapis.com/binary-authorization:באופן הבא:apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: run.googleapis.com/binary-authorization: POLICY name: SERVICE spec: template:
מחליפים את מה שכתוב בשדות הבאים:
- SERVICE: השם של Cloud Run
- POLICY: מוגדר לערך
default
מחליפים את השירות בהגדרות החדשות באמצעות הפקודה הבאה:
gcloud run services replace service.yaml
הפעלת Binary Authorization במשימת Cloud Run קיימת
אפשר להפעיל את האכיפה של Binary Authorization במשימה קיימת באמצעות מסוףGoogle Cloud או Google Cloud CLI:
המסוף
נכנסים לדף Cloud Run jobs במסוף Google Cloud .
לוחצים על המשרה כדי לפתוח את פרטי המשרה.
לוחצים על הכרטיסייה Configuration.
בקטע Binary Authorization (אישור בינארי), בוחרים מדיניות מרשימת המדיניות.
לוחצים על אישור כדי להפעיל את האכיפה של Binary Authorization בעבודה.
אופציונלי: כדי להגדיר את מדיניות Binary Authorization, לוחצים על Configure Policy (הגדרת מדיניות).
gcloud
מפעילים את Binary Authorization בעבודה:
gcloud run jobs update JOB_NAME --binary-authorization=POLICY
מחליפים את מה שכתוב בשדות הבאים:
-
JOB_NAME: השם של המשימה. -
POLICY: המדיניות שרוצים להחיל. משתמשים בערךdefaultכדי להשתמש במדיניות ברירת המחדל.
מומלץ להגדיר מדיניות ארגון כדי לדרוש Binary Authorization ב-Cloud Run. מפתחי Cloud Run יכולים להשבית את Binary Authorization אם המדיניות לא מוגדרת.
צפייה במדיניות
כדי להציג את המדיניות, לוחצים על הצגת המדיניות.
מידע נוסף זמין במאמר בנושא הגדרת מדיניות Binary Authorization.
שגיאה בפריסת שירות או משרה
אם הפריסה של השירות או העבודה נכשלת בגלל הפרה של מדיניות Binary Authorization, יכול להיות שתופיע שגיאה כמו זו שבהמשך:
Revision REVISION_NAME uses an unauthorized container image. Container image IMAGE_NAME is not authorized by policy.
השגיאה כוללת גם מידע על הסיבה להפרת המדיניות על ידי התמונה. במקרה כזה, אפשר להשתמש ב-breakglass כדי לעקוף את אכיפת המדיניות ולפרוס את התמונה.
הפעלת Binary Authorization בשירות חדש
אפשר להפעיל את Binary Authorization בשירות חדש באמצעות מסוף Google Cloud או Google Cloud CLI:
המסוף
עוברים לדף Cloud Run:
לוחצים על יצירת שירות.
בטופס Create service :
- בוחרים ב-Cloud Run כפלטפורמת הפיתוח.
- בוחרים את האזור שבו רוצים למקם את השירות.
- מזינים את שם השירות.
- לוחצים על הבא כדי להמשיך לדף הגדרת הגרסה הראשונה של השירות.
- בוחרים באפשרות Deploy one revision from an existing container image (פריסת גרסה אחת מקובץ אימג' של קונטיינר קיים).
- מזינים או בוחרים את התמונה לפריסה.
- מרחיבים את הקטע הגדרות מתקדמות.
- לוחצים על הכרטיסייה אבטחה.
מסמנים את תיבת הסימון Verify container deployment with Binary Authorization (אימות פריסת קונטיינר באמצעות Binary Authorization).
אופציונלי: לוחצים על Configure policy (הגדרת מדיניות) כדי להגדיר את מדיניות Binary Authorization. מידע נוסף על הגדרת מדיניות זמין במאמר הגדרת מדיניות.
פורסים את השירות.
gcloud
מפעילים את Binary Authorization בשירות ומבצעים פריסה:
gcloud run deploy SERVICE_NAME --image=IMAGE_URL --binary-authorization=default --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_NAME: שם לשירות. -
IMAGE_URL: התמונה שרוצים לפרוס. -
REGION: האזור שבו רוצים לפרוס את השירות.
הפעלת Binary Authorization בעבודה חדשה
אפשר להפעיל Binary Authorization בעבודה חדשה באחת מהדרכים הבאות:
המסוף
נכנסים לדף Cloud Run jobs:
לוחצים על Create Job (יצירת משימה) כדי להציג את הטופס Create job (יצירת משימה).
- בטופס, מציינים את קובץ אימג' של קונטיינר שמכיל את קוד המשימה או בוחרים מתוך רשימת קונטיינרים שנפרסו בעבר.
- שם המשימה נוצר אוטומטית מקובץ האימג' בקונטיינר. אפשר לערוך או לשנות את שם המשרה לפי הצורך. אי אפשר לשנות את שם המשרה אחרי שיוצרים אותה.
- בוחרים את האזור שבו רוצים שהמשרה תמוקם.
- מציינים את מספר המשימות שרוצים להפעיל בעבודה. כדי שהעבודה תצליח, כל המשימות צריכות להצליח. כברירת מחדל, המשימות מבוצעות במקביל.
לוחצים על Container, Variables & Secrets, Connections, Security כדי להגדיר מאפיינים נוספים של העבודה.
לוחצים על הכרטיסייה הגדרות. בקטע Resources (משאבים), מגדירים את האפשרויות הבאות:
- בתפריט זיכרון, מציינים את כמות הזיכרון הנדרשת. ברירת המחדל היא המינימום הנדרש, 512MiB.
- בתפריט CPU, מציינים את כמות המעבד הנדרשת. ברירת המחדל היא המינימום הנדרש, מעבד אחד.
בקטע Task capacity (קיבולת המשימות):
בשדה Task timeout (זמן קצוב לתפוגה של משימה), מציינים את משך הזמן המקסימלי בשניות שהמשימה יכולה לפעול, עד 168 שעות (7 ימים). כל משימה צריכה להסתיים בתוך הזמן שצוין. ברירת המחדל היא 10 דקות.
בקטע מספר הניסיונות החוזרים לכל משימה שנכשלה, מציינים את מספר הניסיונות החוזרים במקרה של כשלים במשימות. ברירת המחדל היא 3 ניסיונות חוזרים.
בקטע מקביליות:
- ברוב המקרים אפשר לבחור באפשרות הפעלת כמה שיותר משימות בו-זמנית.
- אם אתם צריכים להגדיר מגבלה נמוכה יותר בגלל מגבלות על הרחבת המשאבים שהעבודה שלכם ניגשת אליהם, אתם צריכים לבחור באפשרות הגבלת המספר המקסימלי של משימות מקבילות ולהזין את מספר המשימות המקבילות בשדה מגבלת מקביליות בהתאמה אישית.
כשמסיימים להגדיר את העבודה, לוחצים על יצירה כדי ליצור את העבודה ב-Cloud Run.
הוראות להרצת העבודה מופיעות במאמרים בנושא הרצת עבודות או הרצת עבודות לפי לוח זמנים.
gcloud
יוצרים משימה חדשה עם Binary Authorization מופעל:
gcloud run jobs create JOB_NAME \ --image IMAGE_URL OPTIONS \ --binary-authorization=POLICY \ --region=REGION
מחליפים את מה שכתוב בשדות הבאים:
-
JOB_NAME: השם של המשימה שרוצים ליצור. אפשר להשמיט את הפרמטר הזה, אבל אם תשמיטו אותו תתבקשו לציין את שם המשרה. -
POLICY: המדיניות שרוצים להחיל. משתמשים בערךdefaultכדי להשתמש במדיניות ברירת המחדל. - IMAGE_URL: הפניה לקובץ אימג' בקונטיינר, לדוגמה
us-docker.pkg.dev/cloudrun/container/job:latest. -
REGION: האזור שבו תופעל המשימה. -
OPTIONS: כל אחת מהאפשרויות הזמינות שמתוארות בדף יצירת המשימות ב-Cloud Run.
-
מחכים עד ליצירת המשימה. בסיום התהליך בהצלחה, תוצג הודעה במסוף.
כדי להריץ את העבודה, אפשר לעיין במאמר בנושא הרצת עבודות או הרצת עבודות לפי לוח זמנים.
כשיוצרים משימה חדשה, סוכן השירות של Cloud Run צריך להיות מסוגל לגשת לקונטיינר, וזה המצב כברירת מחדל.
YAML
יוצרים קובץ
job.yamlחדש עם התוכן הזה:apiVersion: run.googleapis.com/v1 kind: Job metadata: name: JOB annotations: run.googleapis.com/binary-authorization: POLICY spec: template: spec: containers: - image: IMAGE
מחליפים את מה שכתוב בשדות הבאים:
- JOB: השם של המשימה ב-Cloud Run
- IMAGE: כתובת ה-URL של קובץ אימג' של קונטיינר
- POLICY: מוגדר לערך
default
מפעילים את הג'וב החדש באמצעות הפקודה הבאה:
gcloud run jobs replace job.yaml
המאמרים הבאים
- משתמשים ב
built-by-cloud-buildגורם מאמת (attestor) כדי לפרוס רק קובצי אימג' שנוצרו על ידי Cloud Build. - מגדירים את מדיניות Binary Authorization באמצעות Google Cloud המסוף או כלי שורת הפקודה.
- משתמשים באימותים כדי לפרוס רק קובצי אימג' חתומים של קונטיינרים.
- בסרטון הזה מוסבר איך להשתמש ב-Binary Authorization ב-Cloud Run כדי שרק גרסאות build שאושרו יפרסו.