הפעלת סוכני מכונות וירטואליות בכל צומת GKE בארגונים

בדף הזה מוסבר איך לוודא ש-VM Manager מופעל בכל המכונות הווירטואליות של Compute Engine, כולל מכונות וירטואליות של Google Kubernetes Engine בארגון, בתיקייה או בפרויקט, באמצעות Organization Policy Service.

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

לפני שקוראים את הדף הזה, חשוב לוודא שכבר מכירים את VM Manager ואת ההגבלות של Resource Manager.

במדריך הזה נסביר איך לאכוף את השימוש ב-VM Manager בכל פרויקט בארגון או בתיקייה. במדריך הזה לא נסביר איך להגדיר את VM Manager ולהשתמש בו עם מדיניות מערכת הפעלה. הוראות מפורטות זמינות במאמר יצירת הקצאת מדיניות של מערכת הפעלה.

מידע על VM Manager

VM Manager הוא חבילת כלים לניהול מערכות הפעלה למכונות וירטואליות (VM) ב-Fleets גדולים, שמריצים Windows ו-Linux ב-Compute Engine. אפשר להשתמש ב-VM Manager כדי להחיל מדיניות של מערכת ההפעלה ולהתאים אישית את התוכניות שפועלות במכונות וירטואליות. לדוגמה, אתם יכולים להגדיר מדיניות להתקנת סוכן במשאב מסוים, ולעשות שימוש חוזר במדיניות הזו בכמה משאבים. כברירת מחדל, VM Manager מושבת בפרויקטים שלGoogle Cloud .

כדי לצמצם את היקף ההחלה של כללי המדיניות ב-VM Manager, אפשר להשתמש בOSPolicyAssignments, שמאפשרים להגדיר את היקף ההחלה של כללי מדיניות של מערכת ההפעלה למכונות וירטואליות ספציפיות באמצעות כלים לבחירה. לדוגמה, לכל המכונות הווירטואליות של צומתי GKE יש את התווית goog-gke-node, שאפשר לטרגט באמצעות הקצאת מדיניות של מערכת הפעלה.

מדיניות הארגון ו-VM Manager

אם Google Cloud בארגון שלכם יש כמה רמות היררכיות, כמו תיקיות ותיקיות משנה, הפעלה ידנית של VM Manager בכל הפרויקטים האלה עלולה לגרום לתקורה מיותרת של ניהול. אתם יכולים לדרוש שבכל הפרויקטים בתיקיות או בארגון, יופעל VM Manager בכל המכונות הווירטואליות. כדי לעשות את זה, אתם יכולים להשתמש בשירות Organization Policy עם המגבלה constraints/compute.requireOsConfig. אלה כמה מהיתרונות של אכיפת VM Manager באמצעות מדיניות ארגונית:

  • בכל הפרויקטים החדשים, התווית enable-osconfig=TRUE של מטא-נתונים מתווספת לכל פרויקט ולכל מכונה וירטואלית.
  • אם מישהו ינסה להסיר את התווית הזו או להגדיר אותה לערך אחר מלבד true, השינוי יידחה.
  • אם מישהו ינסה ליצור או לעדכן מכונה וירטואלית באופן שיגדיר את מפתח המטא-נתונים enable-osconfig לערך שאינו true, השינוי יידחה.

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

לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:

  • מפעילים את ממשק Google Kubernetes Engine API.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
  • מוודאים שכבר משתמשים ב-VM Manager עם מדיניות מערכת הפעלה והקצאות של מדיניות מערכת הפעלה כדי להפעיל סוכנים במכונות הווירטואליות. הוראות מפורטות זמינות במאמר יצירת הקצאת מדיניות של מערכת הפעלה.
  • מפעילים את ממשקי ה-API‏ Cloud Resource Manager API ו-OS Config API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של שימוש בשירות' (roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאה serviceusage.services.enable. איך מקצים תפקידים

    הפעלת ממשקי ה-API

מגבלות

למדיניות הארגון constraints/compute.requireOsConfig יש את המגבלות הבאות:

  • המדיניות החדשה של הארגון לא משפיעה על משאבים עם הפרות קיימות. אפשר להגדיר את המטא נתונים של המדיניות באופן ידני או באמצעות gcloud במשאבים קיימים.
  • כל מי שיש לו הרשאה לשנות מטא-נתונים במכונות וירטואליות של Compute Engine בפרויקט יכול להשבית את osconfig-agent במכונה הווירטואלית על ידי הגדרת שדה המטא-נתונים osconfig-disabled-features.
  • אם osconfig-agent לא פועל, המכונה הווירטואלית מופיעה כלא תואמת בלוח הבקרה של VM Manager. לדוגמה, זה יכול לקרות אם משתמש השבית את הסוכן באופן ידני.

התפקידים הנדרשים

כדי לקבל את ההרשאות שדרושות לניהול מדיניות הארגון, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ Organization policy administrator (אדמין של מדיניות הארגון) ‏(roles/orgpolicy.policyAdmin) בארגון. כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

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

הפעלה של compute.requireOsConfig בכל הארגון

אחרי שמפעילים את VM Manager ומגדירים את OSPolicyAssignment למכונות הווירטואליות, אפשר לוודא ש-VM Manager מופעל כברירת מחדל בכל הפרויקטים החדשים עם מדיניות הארגון OSPolicyAssignment.constraints/compute.requireOsConfig האופן שבו אוכפים את constraints/compute.requireOsConfig תלוי בגרסת ה-API שבה אתם משתמשים.

Organization Policy v2 API

אפשר לאכוף את האילוץ constraints/compute.requireOsConfig עלGoogle Cloud משאב כמו תיקייה או ארגון באמצעות gcloud CLI או מסוף Google Cloud .

gcloud

  1. מוודאים שההגבלה compute.requireOsConfig לא הוחלה כבר:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig \
        --organization=ORGANIZATION_ID
    

    מחליפים את ORGANIZATION_ID במזהה הארגון.

    אם לא מוגדרת מדיניות, הפקודה הזו מחזירה שגיאה NOT_FOUND:

    ERROR: (gcloud.org-policies.describe) NOT_FOUND: Requested entity was not found.
    

    אם המדיניות קיימת, הפקודה מחזירה את המדיניות הנוכחית. החלת מדיניות חדשה מחליפה את המדיניות הקיימת, אם יש כזו.

  2. יוצרים קובץ זמני /tmp/policy.yaml לאחסון המדיניות:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    
  3. מריצים את הפקודה set-policy:

    gcloud org-policies set-policy /tmp/policy.yaml
    
  4. מוודאים שהמדיניות החדשה חלה:

    gcloud org-policies describe \
        constraints/compute.requireOsConfig --effective \
        --organization=ORGANIZATION_ID
    

    הפלט של הפקודה אמור להיראות כך:

    name: organizations/ORGANIZATION_ID/policies/constraints/compute.requireOsConfig
    spec:
      rules:
      - enforce: true
    

console

  1. נכנסים לדף Organization policies במסוף Google Cloud .

    מעבר למדיניות הארגון

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

  3. בדף Organization policies, משתמשים במסנן כדי לחפש את compute.requireOsConfig.

  4. לוחצים על שם המדיניות כדי לפתוח את הדף פרטי המדיניות.

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

  6. בדף עריכת מדיניות, בוחרים באפשרות במקום המדיניות של המשאב הראשי.

  7. בוחרים באפשרות הוספת כלל.

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

  9. כדי לאכוף את המדיניות, לוחצים על הגדרת מדיניות.

Resource Manager v1 API

  1. מוודאים שההגבלה compute.requireOsConfig לא הוחלה כבר:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    מחליפים את ORGANIZATION_ID במזהה הארגון.

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

    constraint: "constraints/compute.requireOsConfig"
    etag: BwVJi0OOESU=
    

    אם המדיניות קיימת, הפקודה מחזירה את המדיניות הנוכחית. החלת מדיניות חדשה מחליפה את המדיניות הקיימת, אם יש כזו.

  2. מגדירים את המדיניות לאכיפה בארגון:

    gcloud resource-manager org-policies enable-enforce constraints/compute.requireOsConfig \
        --organization ORGANIZATION_ID
    

    הפלט של הפקודה אמור להיראות כך:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    etag: BwVJitxdiwY=
    
  3. מוודאים שהמדיניות החדשה חלה:

    gcloud resource-manager org-policies describe constraints/compute.requireOsConfig \
        --effective \
        --organization ORGANIZATION_ID
    

    הפלט של הפקודה אמור להיראות כך:

    booleanPolicy:
      enforced: true
    constraint: constraints/compute.requireOsConfig
    

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

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

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

מידע נוסף על כתיבה ביומני ביקורת ב-GKE