סקירה כללית על Binary Authorization

במסמך הזה מפורטת סקירה כללית של Binary Authorization.

מה זה Binary Authorization?

Binary Authorization הוא Google Cloud מוצר שמאפשר להטמיע אמצעי אבטחה בשרשרת אספקת התוכנה כשמפתחים ופורסים אפליקציות מבוססות-קונטיינרים.

מה עושה Binary Authorization?

אפשר להשתמש ב-Binary Authorization כדי:

באילו פלטפורמות יש תמיכה ב-Binary Authorization?

Binary Authorization תומכת בפלטפורמות הבאות:

  • Google Kubernetes Engine‏ (GKE): מריץ תמונות באשכולות שמארחים ב- Google Cloud.
  • Cloud Run: הפעלת אפליקציות בקונטיינרים בפלטפורמה מנוהלת ללא שרת (serverless).
  • Cloud Service Mesh: ניהול רשת Service mesh אמינה שנמצאת בתשתית מקומית או ב- Google Cloud.
  • תוכנת Google Distributed Cloud: מריצה את התמונות באשכולות GKE שמתארחים בחומרה שלכם.

Binary Authorization היא חלק מארכיטקטורת פריסה שכוללת את המוצרים הקשורים הבאים:

  • Artifact Registry, ‏ Container Registry ומאגרי תמונות אחרים שבהם מאוחסנות התמונות שרוצים לפרוס.
  • Artifact Analysis מספק מידע על נקודות חולשה שאפשר להשתמש בו עם Binary Authorization כדי לשלוט בפריסה. בנפרד, Artifact Analysis מאחסן מטא-נתונים מהימנים שמשמשים בתהליך ההרשאה.
  • ניטור לצורכי אבטחה, מרכז בקרה שבו אפשר להעריך את מצב אבטחת האפליקציה במוצרים Google Cloud תלויים, כולל Binary Authorization.
  • ‫Cloud Build, שיוצר אישורים ונתוני מקור שאפשר להשתמש בהם ב-Binary Authorization לצורך אכיפה ומעקב.
  • Cloud Deploy הוא שירות מנוהל של פיתוח רציף (continuous delivery) שמאפשר לכם להעביר אוטומטית אפליקציות לשורה של סביבות יעד, לפי רצף מוגדר.

Binary Authorization מבוסס על המפרט של Kritis, שהוא חלק מפרויקט הקוד הפתוח Grafeas.

רקע

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

ארכיטקטורות שמבוססות על קונטיינרים מאפשרות לצוותים לפתח מערכות עם צימוד רופף מאוד – למשל, מערכות שמבוססות על ארכיטקטורות של מיקרו-שירותים – ומעודדות שימוש בשיטות פיתוח עם מחזור חיים קצר, כולל אינטגרציה רציפה (CI) ופריסה רציפה (CD).

בסביבת פיתוח מבוססת-קונטיינרים, אפשר לפרוס תמונות ברצף של אשכולות – כמו בדיקה, הכנה לשחרור ושחרור – שהם חלק משרשרת אספקת התוכנה.

המטרה של Binary Authorization היא להפחית את הסיכון של פריסת תוכנה פגומה, פגיעה או לא מורשית בסוג כזה של סביבה. באמצעות השירות הזה, אתם יכולים למנוע פריסה של תמונות אלא אם הן עומדות בדרישות של מדיניות שהגדרתם.

Binary Authorization לא קובעת תהליכים פנימיים או שיטות מומלצות, אבל היא עוזרת לכם לאכוף את השיטות שלכם על ידי הגבלת ה-Deployment (פריסה) של תמונות שלא עברו את הבדיקות הנדרשות.

מחזור חיים

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

  1. פיתוח ובדיקות יחידה
  2. פריסה בסביבת פיתוח שבה המשתמשים לא מושפעים
  3. פריסה בסביבת QA, שבה רק משתמשים פנימיים מושפעים
  4. פריסה בסביבת קנרית, שבה רק חלק קטן מהמשתמשים החיצוניים מושפע
  5. פריסה בסביבת הייצור

לכל שלב יכולה להיות סביבת פריסה משלו – לדוגמה, אשכול GKE או פרויקט – וקריטריונים משלו שצריכים להתקיים לפני שהתמונה עוברת לשלב הבא. Google Cloud ‫Binary Authorization מאפשרת לכם להגדיר את הכללים שלפיהם תמונה עוברת משלב אחד לשלב אחר, ומספקת את האמצעים לאכיפת הכללים האלה.

הצהרות

תרחישי השימוש הנפוצים ביותר ב-Binary Authorization כוללים אישורים. אישור מאמת שתמונה ספציפית השלימה שלב קודם, כפי שמתואר למעלה. מגדירים את מדיניות Binary Authorization כדי לאמת את האימות (attestation) לפני שמאפשרים לפרוס את התמונה. בזמן הפריסה, במקום לבצע מחדש פעילויות שהושלמו בשלבים קודמים, Binary Authorization צריך רק לאמת את האימות (attestation).

תרחישי שימוש שכוללים אישורים:

  • אימות build, שבו Binary Authorization משתמש באישורים כדי לוודא שקובץ אימג' נוצר על ידי מערכת build ספציפית או על ידי צינור (pipeline) של שילוב רציף (CI).

    במאמר שילוב עם Cloud Build מוסבר איך להגדיר צינור CI שמבוסס על Cloud Build ויכול ליצור אישור.

  • בדיקה ידנית, שבה אדם, למשל נציג QA, יוצר את האימות באופן ידני.

    במאמר יצירת אישורים מוסבר איך ליצור אישור באופן ידני.

במאמר הזה Google Cloud יש מדריך מפורט על אימות.

תכונות

‫Binary Authorization מספקת:

  • מודל מדיניות שמאפשר לתאר את המגבלות שחלות על פריסת תמונות
  • מודל אימות שמאפשר להגדיר רשויות מהימנות שיכולות לאמת או לוודא שתהליכים נדרשים בסביבה שלכם הושלמו לפני הפריסה
  • אמצעי אכיפה בזמן הפריסה שמונע פריסה של תמונות שמפירות את המדיניות

מודל המדיניות

ב-Binary Authorization מיושם מודל מדיניות, שבו מדיניות היא קבוצה של כללים ששולטים בפריסה של קובצי אימג' של קונטיינרים. כללים במדיניות מספקים קריטריונים ספציפיים שתמונה צריכה לעמוד בהם לפני שאפשר להשתמש בה.

מידע נוסף על מודל המדיניות של Binary Authorization ועל מושגים אחרים מופיע במאמר מושגים מרכזיים.

הגדרה

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

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

כדי להגדיר Binary Authorization, אפשר לעיין במדריכים הבאים:

הרשאה

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

מידע נוסף על הרשאות זמין במאמר בנושא שימוש באישורים.

אכיפה

כשפורסים תמונה, Binary Authorization בודק את המדיניות ואוכף כל כלל שהוא מוצא ששולט על הפריסה שלה.

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

כדי לראות אירועים של אכיפת Binary Authorization ביומני הביקורת של Cloud, אפשר להיעזר במדריכים הבאים:

מידע נוסף על פריסה זמין במדריכים הבאים:

אימות רציף

תיקוף רציף (CV) באמצעות מדיניות פלטפורמה מבוססת-בדיקות הוא תכונה של Binary Authorization שבודקת מעת לעת את המטא-נתונים של תמונות קונטיינר שמשויכות ל-Pods פעילים, כדי לוודא שהן ממשיכות לעמוד בדרישות המדיניות.

מידע נוסף על CV

אבטחת Binary Authorization באמצעות VPC Service Controls

VPC Service Controls משפר את היכולת שלכם לצמצם את הסיכון להעתקה או להעברה לא מורשות של נתונים מהשירותים והמשאבים שלכם שמנוהלים על ידי Google.

מידע נוסף על אבטחת משאבים שקשורים ל-Binary Authorization זמין במאמר אבטחה באמצעות VPC Service Controls.

אבטחת שרשרת האספקה של תוכנות

‫Binary Authorization הוא אחד מהרכיבים שבהם אפשר להשתמש כדי להגן על שרשרת האספקה של התוכנה. Google Cloud אתם יכולים להשתמש ב-Binary Authorization יחד עם מוצרים ותכונות אחרים כדי לשפר את רמת האבטחה של תהליכי עבודה וכלי פיתוח, תלות בתוכנה, מערכות CI/CD שמשמשות לבנייה ולפריסה של התוכנה וסביבות זמן ריצה כמו Google Kubernetes Engine ו-Cloud Run. Google Cloud מידע נוסף זמין במאמר בנושא אבטחת שרשרת האספקה של תוכנות.

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