בדף הזה מוסבר איך להגדיר את 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 לפלטפורמה
מגדירים את Cloud Build ויוצרים קובץ אימג'.
הגדרת המדיניות
בקטע הזה מגדירים את מדיניות Binary Authorization כך שתדרוש את גורם מאמת (attestor) built-by-cloud-build.
כדי לאפשר פריסה רק של תמונות שנבנו על ידי Cloud Build, מבצעים את השלבים הבאים:
המסוף
נכנסים לדף Binary Authorization במסוף Google Cloud :
בכרטיסייה מדיניות, לוחצים על עריכת המדיניות.
בתיבת הדו-שיח Edit Policy (עריכת מדיניות), בוחרים באפשרות Allow only images that have been approved by all of the following attestors (אפשר להשתמש רק בתמונות שאושרו על ידי כל המאשרים הבאים).
לוחצים על הוספת מאשרים.
בתיבת הדו-שיח הוספת מאשרים:
- בוחרים באפשרות Add by project and attestor name ומבצעים את השלבים הבאים:
- בשדה Project name, מזינים את הפרויקט שבו מריצים את Cloud Build.
- לוחצים על השדה שם המאשר ורואים שהמאשר
built-by-cloud-buildזמין. - לחץ על
built-by-cloud-build.
אפשר גם ללחוץ על הוספה לפי מזהה משאב של גורם מאמת (attestor). בשדה מזהה משאב המאמת, מזינים
projects/PROJECT_ID/attestors/built-by-cloud-buildמחליפים את
PROJECT_IDבפרויקט שבו מריצים את Cloud Build.
- בוחרים באפשרות Add by project and attestor name ומבצעים את השלבים הבאים:
לוחצים על הוספת מאשר אחד.
לוחצים על שמירת המדיניות.
gcloud
מייצאים את המדיניות הקיימת לקובץ באמצעות הפקודה הבאה:
gcloud container binauthz policy export > /tmp/policy.yamlעורכים את קובץ המדיניות.
עורכים אחד מהכללים הבאים:
defaultAdmissionRuleclusterAdmissionRulesistioServiceIdentityAdmissionRuleskubernetesServiceAccountAdmissionRules
מוסיפים בלוק
requireAttestationsByלכלל אם הוא לא קיים כבר.בבלוק
requireAttestationsBy, מוסיפיםprojects/PROJECT_ID/attestors/built-by-cloud-buildמחליפים את
PROJECT_IDבפרויקט שבו מריצים את Cloud Build.שומרים את קובץ המדיניות.
מייבאים את קובץ המדיניות.
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.
המאמרים הבאים
- במקום לאסור פריסה של תמונות, אפשר להשתמש במצב הרצה יבשה כדי לרשום הפרות של כללי המדיניות.
- אפשר לראות את האירועים ביומן הביקורת של תמונות שלא אושרו ב-Google Kubernetes Engine (GKE) או ב-Cloud Run.