הגדרת מדיניות של Binary Authorization באמצעות Cloud Run

במדריך למתחילים הזה נסביר איך להגדיר ולבדוק כלל בסיסי במדיניות של Binary Authorization באמצעות Cloud Run.

במדריך הזה נשתמש ב-Binary Authorization כדי לשלוט בפריסה של שירות Cloud Run.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

  6. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  7. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  8. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

  12. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  13. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init

יצירת שירות עם Binary Authorization מופעל

כדי ליצור שירות Cloud Run עם Binary Authorization מופעל:

  1. כניסה ל-Cloud Run

  2. לוחצים על Create service כדי להציג את הטופס Create service:

    תמונה

    בטופס שמוצג, מבצעים את הפעולות הבאות:

    1. בוחרים ב-Cloud Run כפלטפורמת הפיתוח.
    2. בוחרים את האזור שבו רוצים למקם את השירות.
    3. מציינים את השם שרוצים לתת לשירות – לדוגמה, test-service.
    4. לוחצים על הבא כדי להמשיך לדף Configure the service's first revision.

      בטופס, מבצעים את הפעולות הבאות:

      1. בוחרים באפשרות Deploy one revision from an existing container image (פריסת גרסה אחת מקובץ אימג' של קונטיינר קיים).
      2. משתמשים ב-us-docker.pkg.dev/cloudrun/container/hello בתור קובץ האימג' של הקונטיינר.

      3. מרחיבים את הקטע הגדרות מתקדמות.

      4. לוחצים על הכרטיסייה אבטחה.

      5. מסמנים את תיבת הסימון Verify container deployment with Binary Authorization:

        תמונה

        כברירת מחדל, מדיניות Binary Authorization מאפשרת פריסה של כל התמונות.

      6. לוחצים על הבא כדי להמשיך לדף הגדרת האופן שבו השירות הזה מופעל:

        תמונה

      7. בוחרים באפשרות אפשר גישה לכולם כדי לפתוח את התוצאה בדפדפן האינטרנט.

      8. לוחצים על יצירה כדי לפרוס את האימג' ב-Cloud Run ומחכים עד שהפריסה תסתיים.

      השירות שלכם נפרס. השינויים כפופים לאכיפת המדיניות של Binary Authorization.

עדכון המדיניות של Binary Authorization כדי לאסור את השימוש בכל התמונות

מדיניות Binary Authorization מכילה כלל ברירת מחדל. הכלל הזה קובע את הפריסה של שירות Cloud Run שיצרתם.

כברירת מחדל, הכלל מאפשר פריסה של כל אימג'י הקונטיינרים.

כדי לראות את מדיניות ברירת המחדל:

  1. מעבר אל Binary Authorization

    צילום מסך של הכרטיסייה 'מדיניות' שבו מוצג כלל ברירת המחדל

  2. לוחצים על עריכת המדיניות.

  3. בקטע Project Default Rule, שימו לב שהאפשרות Allow All Images מסומנת.

    צילום מסך של האפשרות לבחור סוג כלל שמוגדר כברירת מחדל

עכשיו משנים את המדיניות לחסימה של פריסת כל התמונות, כך:

  1. נכנסים לדף Binary Authorization במסוף Google Cloud .

    מעבר אל Binary Authorization

  2. לוחצים על עריכת המדיניות.

  3. בקטע כלל ברירת מחדל, בוחרים באפשרות איסור כל התמונות.

    צילום מסך של האפשרות לבחור סוג כלל שמוגדר כברירת מחדל

  4. לוחצים על שמירת המדיניות.

פריסה מחדש של השירות

כדי לבדוק את המדיניות המעודכנת, פורסים גרסה חדשה.

כדי לפרוס את התמונה:

  1. כניסה ל-Cloud Run

  2. לוחצים על שם השירות שפרסתם קודם במדריך הזה.

  3. לוחצים על 'עריכה' ופורסים את הגרסה החדשה.

  4. לוחצים על פריסה.

מופיעה הודעת שגיאה דומה לזו:

Service update rejected by Binary Authorization policy: Revision
REVISION uses 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

איפוס המדיניות כך שכל התמונות יהיו מותרות

כדי לאפס את המדיניות כך שכל התמונות יוצגו:

  1. נכנסים לדף Binary Authorization במסוף Google Cloud .

    מעבר אל Binary Authorization

  2. לוחצים על עריכת המדיניות.

  3. בוחרים באפשרות הצגת כל התמונות.

  4. כדי לשמור את המדיניות, לוחצים על שמירת המדיניות.

עכשיו אפשר לפרוס תמונות.

הסרת המשאבים

כדי לא לצבור חיובים לחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, פועלים לפי השלבים הבאים:

כדי למחוק את השירות שיצרתם ב-Cloud Run:

  1. כניסה ל-Cloud Run

  2. ברשימת השירותים, מאתרים את השירות שרוצים למחוק ולוחצים על תיבת הסימון שלו כדי לבחור אותו.

  3. לוחצים על Delete. כל הגרסאות של השירות יימחקו.

במאמר השבתת Binary Authorization מוסבר איך להשבית את התכונה.

המאמרים הבאים