פריסה רק של תמונות שנוצרו על ידי Cloud Build

בדף הזה מוסבר איך להגדיר את Binary Authorization כדי לאפשר פריסה רק של קובצי אימג' בקונטיינרים שנבנו על ידי Cloud Build, וכך לאבטח את שרשרת האספקה של התוכנה.

כדי להגדיר את אמצעי הבקרה הזה לפריסה, צריך לדרוש את built-by-cloud-buildהמאשר במדיניות Binary Authorization. מערכת Cloud Build יוצרת באופן אוטומטי את מאמת built-by-cloud-build בפרויקט כשמריצים build שיוצר תמונות. אחרי שקובצי האימג' נוצרים בהצלחה, מערכת Cloud Build חותמת עליהם באופן אוטומטי ויוצרת אישורים (attestations) לגביהם. בזמן הפריסה, Binary Authorization מאמת את האימותים (attestations) באמצעות built-by-cloud-build גורם מאמת (attestor). מותר להשתמש בתמונות מאומתות. תמונות שלא עוברות את האימות לא יכולות להיות פרוסות, והכשל מתועד ביומני הביקורת של Cloud.

מדריך מקיף לשימוש במטא-נתונים שנרשמו ב-Cloud Build וב-Binary Authorization זמין במאמר שימוש בנתוני מקור חתומים וב-Binary Authorization.

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

כדי להשתמש בתכונה הזו, קודם צריך:

הגדרת המדיניות

בקטע הזה מגדירים את מדיניות Binary Authorization כך שתדרוש את גורם מאמת (attestor) built-by-cloud-build.

כדי לאפשר פריסה רק של תמונות שנבנו על ידי Cloud Build, מבצעים את השלבים הבאים:

המסוף

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

    מעבר אל Binary Authorization

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

  3. בתיבת הדו-שיח Edit Policy (עריכת מדיניות), בוחרים באפשרות Allow only images that have been approved by all of the following attestors (אפשר להשתמש רק בתמונות שאושרו על ידי כל המאשרים הבאים).

  4. לוחצים על הוספת מאשרים.

  5. בתיבת הדו-שיח הוספת מאשרים:

    1. בוחרים באפשרות Add by project and attestor name ומבצעים את השלבים הבאים:
      1. בשדה Project name, מזינים את הפרויקט שבו מריצים את Cloud Build.
      2. לוחצים על השדה שם המאשר ורואים שהמאשר built-by-cloud-build זמין.
      3. לחץ על built-by-cloud-build.
    2. אפשר גם ללחוץ על הוספה לפי מזהה משאב של גורם מאמת (attestor). בשדה מזהה משאב המאמת, מזינים

      projects/PROJECT_ID/attestors/built-by-cloud-build
      

      מחליפים את PROJECT_ID בפרויקט שבו מריצים את Cloud Build.

  6. לוחצים על הוספת מאשר אחד.

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

gcloud

  1. מייצאים את המדיניות הקיימת לקובץ באמצעות הפקודה הבאה:

    gcloud container binauthz policy export > /tmp/policy.yaml
    
  2. עורכים את קובץ המדיניות.

  3. עורכים אחד מהכללים הבאים:

    • defaultAdmissionRule
    • clusterAdmissionRules
    • istioServiceIdentityAdmissionRules
    • kubernetesServiceAccountAdmissionRules
  4. מוסיפים בלוק requireAttestationsBy לכלל אם הוא לא קיים כבר.

  5. בבלוק requireAttestationsBy, מוסיפים

    projects/PROJECT_ID/attestors/built-by-cloud-build
    

    מחליפים את PROJECT_ID בפרויקט שבו מריצים את Cloud Build.

  6. שומרים את קובץ המדיניות.

  7. מייבאים את קובץ המדיניות.

    gcloud container binauthz policy import /tmp/policy.yaml
    

    קובץ מדיניות לדוגמה שמכיל את ההפניה אל built-by-cloud-build-attestor:

    defaultAdmissionRule:
      evaluationMode: REQUIRE_ATTESTATION
      enforcementMode: ENFORCED_BLOCK_AND_AUDIT_LOG
      requireAttestationsBy:
        - projects/PROJECT_ID/attestors/built-by-cloud-build
    name: projects/PROJECT_ID/policy
    

    מחליפים את PROJECT_ID במזהה הפרויקט שבו מריצים את Cloud Build.

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