במסמך הזה מוסבר איך לאמת את התשתית כקוד (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 מופעלות ברמת הארגון.
הגדרת ההרשאות
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הארגון.
-
בעמודה Principal (חשבון המשתמש), מוצאים את כל השורות שבהן מופיע השם שלכם או של קבוצה שאתם נכללים בה. כדי לברר באילו קבוצות אתם נכללים, פנו לאדמין.
- בודקים את העמודה Role בכל השורות שבהן מצוין או מופיע השם שלכם, כדי לראות אם רשימת התפקידים כוללת את התפקידים הנדרשים.
-
נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - בוחרים את הארגון.
- לוחצים על Grant access.
-
בשדה New principals, מזינים את מזהה המשתמש. בדרך כלל מזהה המשתמש הוא כתובת האימייל של חשבון Google.
- לוחצים על Select a role ומחפשים את התפקיד.
- כדי לתת עוד תפקידים, לוחצים על Add another role ומוסיפים אותם.
- לוחצים על Save.
צריך לוודא שיש לכם בארגון את התפקיד או התפקידים הבאים: Security Posture Shift-Left Validator
בדיקת התפקידים
מתן התפקידים
מידע נוסף על הרשאות אימות של IaC זמין במאמר IAM להפעלות ברמת הארגון.
הגדרת Google Cloud CLI
במסוף Google Cloud , מפעילים את 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. איך מקצים תפקידים
הגדרת כללי המדיניות
הגדרת מדיניות ארגונית וגלאים של 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:
ב-CLI של gcloud, מריצים את הפקודה
terraform init.מוודאים שמשתמשים בגרסה v5.5 ואילך של Terraform provider. אם צריך, משדרגים לגרסה העדכנית ביותר של הספק של Google:
terraform init -upgradeממירים את קובץ התוכנית מ-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.
-
יוצרים את דוח האימות של 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. כדי לקבל מידע על הפעולה, אפשר לעיין במאמר בנושא הצגת מידע על פעולת פריסה של תנוחת אבטחה.
-
המאמרים הבאים
- כדאי לעיין במדריך לדוגמה.
- שילוב של אימות IaC עם תהליך העבודה של Cloud Build.
- משלבים אימות של IaC עם פעולות GitHub או עם פרויקט Jenkins.
- ניהול מצב האבטחה