אימות של IaC בהתאם למדיניות של הארגון ב-Google Cloud

במסמך הזה מוסבר איך לאמת את התשתית כקוד (IaC) בהתאם למדיניות הארגון ולגלאים של Security Health Analytics שהגדרתם בארגון Google Cloud . תשתית כקוד (IaC) מאפשרת ליצור ולנהל את משאבי הענן באמצעות שפות כמו Terraform, כך שתוכלו לפרוס את המשאבים באמצעות תהליך עבודה לפיתוח. תכונת האימות של IaC תומכת רק במדיניות ארגונית ובגלאים של Security Health Analytics.

אימות של IaC מאפשר לכם לקבוע אם הגדרות המשאבים החדשות או ששונו מפרות את המדיניות הקיימת שחלה על משאביGoogle Cloud (למשל, אשכול, קטגוריה או מופע). אפשר להגדיר את המדיניות הזו באמצעות תצורות אבטחה, אבל התכונה 'אימות IaC' מנתחת את הקוד ומשווה אותו לכל מדיניות אפקטיבית שהוגדרה בתצורות שנפרסו בארגון Google Cloud . אימות IaC עוזר למפתחים לזהות ולתקן בעיות אבטחה בהגדרת IaC של נכסים או משאבים לפני שהם מוחלים על סביבתGoogle Cloud .

תכונת האימות של IaC תומכת בקובצי תוכניות של Terraform. אפשר לאמת את תוכנית Terraform באמצעות Google Cloud CLI, או לשלב את תהליך האימות בתהליך העבודה של המפתחים ב-Cloud Build, ב-Jenkins או ב-GitHub Actions.

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

כדי להתחיל באימות IaC, צריך להשלים את המשימות הבאות.

הפעלת רמת Premium או רמת Enterprise של Security Command Center

מוודאים שמהדורות Premium או Enterprise של Security Command Center מופעלות ברמת הארגון.

הגדרת ההרשאות

    צריך לוודא שיש לכם בארגון את התפקיד או התפקידים הבאים: Security Posture Shift-Left Validator

    בדיקת התפקידים

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

      כניסה לדף IAM
    2. בוחרים את הארגון.
    3. בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.

    4. בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.

    מתן התפקידים

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

      כניסה לדף IAM
    2. בוחרים את הארגון.
    3. לוחצים על Grant access.
    4. בשדה New principals, מזינים את מזהה המשתמש. ‫ בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.

    5. לוחצים על Select a role ומחפשים את התפקיד.
    6. כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
    7. לוחצים על Save.

מידע נוסף על הרשאות אימות של IaC זמין במאמר IAM להפעלות ברמת הארגון.

הגדרת Google Cloud CLI

במסוף Google Cloud , מפעילים את Cloud Shell.

הפעלת Cloud Shell

בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

כדי להגדיר את ה-CLI של gcloud כך שיבצע התחזות לחשבון שירות כדי לאמת ל-Google APIs, במקום להשתמש בפרטי הכניסה של המשתמש, מריצים את הפקודה הבאה:

gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

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

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

מפעילים את Security Posture API ואת Security Center Management API.

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

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

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

הגדרת כללי המדיניות

הגדרת מדיניות ארגונית וגלאים של Security Health Analytics. כדי להגדיר את המדיניות הזו באמצעות מצב אבטחה, צריך לבצע את המשימות שבמאמר יצירה ופריסה של מצב אבטחה.

יצירת קוד Terraform

משתמשים בתהליכי העבודה ובכלים של המפתחים כדי ליצור קובץ Terraform שכולל את Google Cloud הנכסים שרוצים ליצור או לשנות.

כמה נקודות שכדאי לחשוב עליהן:

  • מאכלסים את מאפיין ההורה (הפרויקט, התיקייה או הארגון) של כל משאב או נכס בהגדרת Terraform.
  • לשנות נכסים ומדיניות בנפרד. ה-API לא תומך באימות של קובצי תוכנית Terraform שמשנים גם נכסים וגם כללי מדיניות בו-זמנית.
  • השתמשו רק בסוגי נכסים ובמדיניות נתמכים. רשימה של סוגי הנכסים והמדיניות הנתמכים זמינה במאמר סוגי נכסים ומדיניות שנתמכים באימות IaC.
  • כאן מפורטות המגבלות של אימות IaC.
  • אל תכללו מידע רגיש כמו סיסמאות או פרטים אישיים מזהים אחרים בקובץ התוכנית של Terraform. אם התכונה לאימות נתקלת בשדות שסומנו כרגישים בשינויים במשאב, השדות מוסרים.

אחרי שיוצרים את קוד Terraform, אפשר להריץ את דוח האימות של IaC. אפשר להשתמש ב-CLI של gcloud, ב-Cloud Build, ב-Jenkins או ב-GitHub Actions.

שימוש ב-Google Cloud CLI ליצירת דוח אימות של IaC

כדי ליצור דוח אימות של IaC:

  1. ב-CLI של gcloud, מריצים את הפקודה terraform init.

    מוודאים שמשתמשים בגרסה v5.5 ואילך של Terraform provider. אם צריך, משדרגים לגרסה העדכנית ביותר של הספק של Google:

    terraform init -upgrade
    
  2. ממירים את קובץ התוכנית מ-Terraform לפורמט JSON:

    terraform plan -out TF_PLAN_FILENAME
    terraform show -json TF_PLAN_FILENAME > TF_PLAN_JSON_FILENAME.json
    

    מחליפים את מה שכתוב בשדות הבאים:

    • TF_PLAN_FILENAME: השם של קובץ התוכנית של Terraform.
    • TF_PLAN_JSON_FILENAME: השם של הקובץ שיכיל את תוכנית Terraform בפורמט JSON.
  3. יוצרים את דוח האימות של IaC:

    gcloud scc iac-validation-reports create PARENT \
      --tf-plan-file=TF_PLAN_JSON_FILENAME.json
    

    מחליפים את מה שכתוב בשדות הבאים:

    • PARENT: הארגון שבו ייצור דוח האימות של IaC. Google Cloud הפורמט הוא organizations/ORGANIZATION_ID/locations/LOCATION. LOCATION הוא global.
    • TF_PLAN_JSON_FILENAME: הנתיב לקובץ ה-JSON שמכיל את תוכנית ה-IaC שרוצים לאמת.

    לדוגמה, כדי ליצור דוח אימות של IaC בארגון organizations/3589215982/locations/global עם תוכנית IaC שכלולה ב-planFile.json, מריצים את הפקודה הבאה:

    gcloud scc iac-validation-reports create organizations/3589215982/locations/global --tf-plan-file=planFile.json
    

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

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