באמצעות Binary Authorization ל-Google Distributed Cloud, אתם יכולים להרחיב את האכיפה של Binary Authorization בזמן הפריסה לאשכולות המשתמשים המקומיים, כדי לאבטח את עומסי העבודה של מאגר הנתונים שלהם. אפשר להחיל את כללי האכיפה של מדיניות שהוגדרה בפרויקט ב- Google Cloud על אשכולות משתמשים בגרסה 1.28 ואילך. מידע נוסף על כללי מדיניות וכללים זמין בסקירה הכללית על Binary Authorization.
אם הפעלתם את גרסת Preview של Binary Authorization ל-Google Distributed Cloud, השביתו אותה ונקו את המשאבים לפני שתפעילו את התכונה GA באשכולות בגרסה 1.28 ואילך.
דרישות מוקדמות
כדי להפעיל אכיפה של מדיניות Binary Authorization באשכול משתמש, צריך לוודא שעומדים בדרישות המוקדמות הבאות:
רישום האשכול ב-Fleet: באשכול שנוצר באמצעות
gkectl, האשכול רשום בפרויקט Google Cloud שציינתם בשדהgkeConnect.projectIDבקובץ התצורה של האשכול. הפרויקט הזה נקרא פרויקט המארח של ה-Fleet. למידע נוסף על קבוצות של אשכולות, כולל תרחישים לדוגמה, שיטות מומלצות ודוגמאות, קראו את המאמר ניהול קבוצות של אשכולות.מפעילים את Binary Authorization API בפרויקט ב- Google Cloud : מפעילים את שירות Binary Authorization בפרויקט המארח של ה-fleet.
הוספת התפקיד "מעריך מדיניות של Binary Authorization" לפרויקט המארח של ה-fleet: כדי להקצות את התפקיד "מעריך מדיניות של Binary Authorization" (
roles/binaryauthorization.policyEvaluator) לחשבון השירות של Kubernetes בפרויקט המארח של ה-fleet, מריצים את הפקודה הבאה:gcloud projects add-iam-policy-binding PROJECT_ID \ --member="serviceAccount:PROJECT_ID.[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.[binauthz-system/binauthz-agent]" \ --role=roles/binaryauthorization.policyEvaluator