Binary Authorization for Google Distributed Cloud היא Google Cloud תכונה שמרחיבה את האכיפה של Binary Authorization בזמן הפריסה, שמתארחת ב-Google, גם לאשכולות משתמשים מקומיים. מקרה השימוש העיקרי של Binary Authorization ב-Google Distributed Cloud הוא אבטחת עומסי עבודה באשכולות המשתמשים. במדריך הזה מוסבר איך להחיל את כללי האכיפה של מדיניות Binary Authorization שהוגדרה ב Google Cloud פרויקט על אשכולות המשתמשים. מידע נוסף על כללי מדיניות וכללים של Binary Authorization זמין במאמר סקירה כללית של Binary Authorization.
דרישות מוקדמות
לפני שמפעילים את אכיפת המדיניות של Binary Authorization באשכול משתמשים, צריך לוודא שמתקיימים הקריטריונים הבאים:
רישום האשכול ב-Fleet: אם האשכול נוצר באמצעות
gkectl, הוא נרשם בפרויקט Google Cloud שמצוין בשדהgkeConnect.projectIDבקובץ התצורה של האשכול. הפרויקט הזה נקרא פרויקט המארח של ה-Fleet. מידע נוסף על ציוד, כולל תרחישי שימוש, שיטות מומלצות ודוגמאות, זמין במסמכי התיעוד בנושא ניהול ציוד.מפעילים את Binary Authorization API בפרויקט Google Cloud : מפעילים את שירות Binary Authorization בפרויקט המארח של צי הרכבים.
מוסיפים את התפקיד Binary Authorization Policy Evaluator (הערכת מדיניות של אישור בינארי) לפרויקט המארח של הצי: כדי להעניק את התפקיד Binary Authorization Policy Evaluator (
roles/binaryauthorization.policyEvaluator) לחשבון השירות של Kubernetes בפרויקט המארח של הצי, מריצים את הפקודה הבאה:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \ --role="roles/binaryauthorization.policyEvaluator"אם האשכול שלכם פועל מאחורי שרת proxy, צריך לוודא ששרת ה-proxy מאפשר חיבורים ל-Binary Authorization API (
binaryauthorization.googleapis.com). ה-API הזה מספק אימות ושליטה בהטמעה מבוססי מדיניות לתמונות שמוטמעות באשכול. מידע נוסף זמין במאמר בנושא כללי proxy וחומת אש.
אחרי שמוודאים שמתקיימות הדרישות המוקדמות, אפשר להפעיל (או להשבית) את מדיניות Binary Authorization כשיוצרים אשכול חדש או מעדכנים אשכול קיים.
הפעלת מדיניות Binary Authorization במהלך יצירת האשכול
אפשר להפעיל את אכיפת המדיניות של Binary Authorization באמצעות gkectl או ה-CLI של gcloud.
gkectl
כדי להפעיל את Binary Authorization כשיוצרים אשכול באמצעות gkectl:
לפני שיוצרים את האשכול, מוסיפים את
binaryAuthorization.evaluationModeלקובץ התצורה של אשכול המשתמשים, כמו בדוגמה הבאה:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce" ...הערכים המותרים של
evaluationModeהם:
project_singleton_policy_enforce: לאכוף את הכללים שצוינו במדיניות של Binary Authorization, שנקראת גם מדיניות יחידה ברמת הפרויקט, בפרויקט Google Cloud כדי לשלוט בפריסה של תמונות קונטיינר באשכול.
disabled: השבתה של השימוש ב-Binary Authorization באשכול. זה ערך ברירת המחדל. אם לא מציינים אתbinaryAuthorization, התכונה מושבתת.
מבצעים שינויים נוספים שנדרשים בקובץ התצורה של האשכול ואז מריצים את הפקודה
gkectl create cluster.
מידע נוסף על יצירת אשכולות זמין במאמר סקירה כללית על ההתקנה של Google Distributed Cloud.
הפעלה או השבתה של מדיניות Binary Authorization באשכול קיים
אם יש לכם אשכול קיים בגרסה 1.28 ואילך, אתם יכולים להפעיל או להשבית את Binary Authorization בכל שלב באמצעות gkectl או ה-CLI של gcloud.
gkectl
כדי להפעיל:
עורכים את קובץ התצורה של האשכול כדי להוסיף את השדות
binaryAuthorization:... binaryAuthorization: evaluationMode: "project_singleton_policy_enforce"מעדכנים את האשכול:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_CLUSTER_KUBECONFIG: הנתיב לקובץ ה-kubeconfig של אשכול האדמין -
USER_CLUSTER_CONFIG_FILE: הנתיב של קובץ התצורה של אשכול המשתמשים.
-
מחכים שהפריסה בשם
binauthz-module-deploymentבמרחב השמותbinauthz-systemתהיה מוכנה.כשהפריסה מוכנה, Binary Authorization אוכף את הכללים שצוינו במדיניות של Binary Authorization, שנקראת גם מדיניות יחידה ברמת הפרויקט. המדיניות הזו משויכת לפרויקטGoogle Cloud שלכם ומפרטת כללים שקובעים את הפריסה של תמונות קונטיינר. למידע נוסף על השימוש ב-
gkectlלעדכון אשכול, אפשר לעיין במאמר עדכון אשכולות. מידע נוסף על כללי מדיניות וכללים של Binary Authorization זמין במאמר סקירה כללית של Binary Authorization.
כדי להשבית את התכונה:
עורכים את קובץ התצורה של האשכול ומסירים את הקטע
binaryAuthorizationאו מגדירים אתevaluationModeל-disabled.... binaryAuthorization: evaluationMode: "disabled"מעדכנים את האשכול:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG_FILE \ --force
אחרי שמבצעים את השינוי הזה, מחכים כמה דקות עד שהפריסה בשם
binauthz-module-deploymentבמרחב השמותbinauthz-systemתוסר.
פתרון בעיות
אם לא תבצעו את כל הדרישות המוקדמות, יכול להיות שתופיע הודעה כמו זו שבהמשך, שמציינת שיש בעיה בהגדרת Binary Authorization:
failed to validate Binary Authorization policy (1) Ensure the Binary Authorization API is enabled for your Google Cloud project: gcloud services enable binaryauthorization.googleapis.com --project=PROJECT_ID (2) Ensure an IAM policy binding is in place granting binaryauthorization.policyEvaluator role to the binauthz-system/binauthz-agent Kubernetes service account: gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.svc.id.goog[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator