אימות של 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 Command Center מפעילה את ממשקי ה-API‏ securityposture.googleapis.com ו-securitycentermanagement.googleapis.com.

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

  1. Make sure that you have the following role or roles on the organization: Security Posture Shift-Left Validator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

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

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

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

    הגדרת Google Cloud CLI

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

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

    gcloud config set auth/impersonate_service_account SERVICE_ACCT_EMAIL

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

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

    הגדרת מדיניות ארגונית וגלאים של 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. כדי לקבל מידע על הפעולה, אפשר לעיין במאמר בנושא הצגת מידע על פעולת פריסה של תנוחת אבטחה.

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