אתם יכולים להשתמש בפלאגין Google Analyze Code Security ל-Jenkins כדי לאמת את התשתית כקוד (IaC) שמהווה חלק מפרויקט Jenkins שלכם. אימות של IaC מאפשר לכם לקבוע אם הגדרות המשאבים של Terraform מפרות את מדיניות הארגון הקיימת ואת כללי הזיהוי של Security Health Analytics שחלים על המשאבים שלכם. Google Cloud
מידע נוסף על אימות IaC זמין במאמר בנושא אימות IaC בהתאם למדיניות של ארגון Google Cloud .
אימות IaC פועל רק עם פרויקטים של Jenkins freestyle.
לפני שמתחילים
כדי להתחיל באימות IaC באמצעות Jenkins, צריך להשלים את המשימות הבאות.
הפעלת רמת Premium או רמת Enterprise של Security Command Center
מוודאים שמהדורות Premium או Enterprise של Security Command Center מופעלות ברמת הארגון.
הפעלת Security Command Center מפעילה את ממשקי ה-API securityposture.googleapis.com וsecuritycentermanagement.googleapis.com.
יצירה של חשבון שירות
יוצרים חשבון שירות שאפשר להשתמש בו בתוסף Google Analyze Code Security ל-Jenkins.
-
מוודאים שיש לכם את תפקיד ה-IAM Create Service Accounts (
roles/iam.serviceAccountCreator) ואת תפקיד ה-IAM Project Admin (roles/resourcemanager.projectIamAdmin). איך מקצים תפקידים -
במסוף Google Cloud , נכנסים לדף יצירת חשבון שירות.
כניסה לדף Create service account - בוחרים את הפרויקט הרצוי.
-
כותבים שם בשדה Service account name. המסוף Google Cloud ממלא את השדה מזהה חשבון שירות בהתאם לשם הזה.
כותבים תיאור בשדה Service account description. לדוגמה:
Service account for quickstart. - לוחצים על Create and continue.
-
מקצים לחשבון השירות את התפקיד מאמת של שינוי בגישת האבטחה.
כדי להקצות את התפקיד, בוחרים את התפקיד Security Posture Shift-Left Validator מהרשימה Select a role.
- לוחצים על Continue.
-
לוחצים על Done כדי לסיים ליצור את חשבון השירות.
חשוב לא לסגור את חלון הדפדפן, כי תשתמשו בו גם בשלב הבא.
- במסוף Cloud, לוחצים על כתובת האימייל של חשבון השירות שיצרתם. Google Cloud
- לוחצים על Keys.
- לוחצים על Add key ואז על Create new key.
- לוחצים על Create. למחשב שלכם תתבצע הורדה של קובץ JSON עם המפתח.
- לוחצים על Close.
יוצרים חשבון שירות:
יוצרים מַפְתח לחשבון השירות:
מידע נוסף על הרשאות אימות של IaC זמין במאמר IAM להפעלות ברמת הארגון.
הגדרת כללי המדיניות
הגדרת מדיניות ארגונית וגלאים של Security Health Analytics. כדי להגדיר את המדיניות הזו באמצעות מצב אבטחה, צריך לבצע את המשימות שבמאמר יצירה ופריסה של מצב אבטחה.
התקנה והגדרה של הפלאגין
- במסוף Jenkins, לוחצים על Manage Jenkins > Manage Plugins.
- בכרטיסייה זמין, מחפשים את google-analyze-code-security.
- משלימים את שלבי ההתקנה.
- לוחצים על Manage Jenkins (ניהול Jenkins) > Configure System (הגדרת המערכת).
- בקטע Google Analyze Code Security, לוחצים על Add credential (הוספת פרטי כניסה).
- בקטע Organization ID (מזהה הארגון), מזינים את מזהה הארגון של Google Cloud הארגון שכולל את משאבי Terraform שרוצים ליצור או לשנות.
- בקטע Security Command Center Credential, מוסיפים את המפתח של חשבון השירות.
- בודקים את החיבור כדי לאמת את פרטי הכניסה של חשבון השירות.
- לוחצים על Save.
יצירת קובץ JSON של תוכנית Terraform
יוצרים את הקוד של Terraform. הוראות מפורטות מופיעות במאמר יצירת קוד Terraform.
מתקינים את הפלאגין Terraform ל-Jenkins.
במסוף Jenkins, בפרויקט Jenkins freestyle, עוברים לדף Configuration.
לוחצים על Source Code Management (ניהול קוד מקור).
בשדה Repository URL (כתובת ה-URL של המאגר), מזינים את כתובת ה-URL של קוד Terraform שיצרתם.
לוחצים על Build steps (יצירת שלבים).
מוסיפים את השלבים הבאים:
מאתחלים את Terraform:
terraform initיוצרים קובץ תוכנית של Terraform.
terraform plan -out=TF_PLAN_FILEמחליפים את
TF_PLAN_FILEבשם של קובץ תוכנית Terraform. לדוגמה,myplan.tfplan.ממירים את קובץ התוכנית לפורמט JSON:
terraform show -no-color -json TF_PLAN_FILE > TF_PLAN_JSON_FILEמחליפים את
TF_PLAN_JSON_FILEבשם של קובץ התוכנית של Terraform בפורמט JSON. לדוגמה,mytfplan.json.
הוספת הפלאגין לפרויקט Jenkins
- במסוף Jenkins, בפרויקט Jenkins freestyle, עוברים לדף Configuration.
- בקטע Build Steps (שלבי בנייה), לוחצים על Add build step (הוספת שלב בנייה) > Perform Code Scan during Build (ביצוע סריקת קוד במהלך הבנייה).
- מזינים את מזהה הארגון.
- מזינים את הנתיב לקובץ התוכנית של Terraform בפורמט JSON.
אופציונלי: מגדירים את הקריטריונים לכישלון הבנייה. קריטריוני הכשל מבוססים על מספר הבעיות ברמות החומרה השונות (קריטית, גבוהה, בינונית ונמוכה) שמתגלות בסריקת האימות של IaC. אתם יכולים לציין כמה בעיות מכל רמת חומרה מותרות ואיך הבעיות מצטברות (באמצעות AND או OR).
לוחצים על Fail on Asset Violation (הפעולה נכשלה בגלל הפרת כללי השימוש בנכס).
אם רוצים שה-build ייכשל רק אם יגיעו למספר הבעיות מכל רמות החומרה, בוחרים באפשרות AND. אם רוצים שהבנייה תיכשל אם יגיעו למספר הבעיות מכל רמת חומרה, בוחרים באפשרות OR. לדוגמה, אם רוצים שהבנייה תיכשל אם תזוהה בעיה קריטית אחת או בעיה אחת ברמת חומרה גבוהה, מגדירים את הערך המצטבר ל-OR.
מציינים את מספר הבעיות ברמות החומרה השונות שרוצים לאפשר לפני שה-build נכשל.
אם לא רוצים לציין קריטריון לכישלון, בוחרים באפשרות התעלמות מהפרת כללי הנכס.
לוחצים על Save.
עכשיו אפשר להריץ את ה-build כדי לאמת את קובץ התוכנית של Terraform.
עיון בדוח ההפרות של IaC
במסוף Jenkins, לוחצים על תהליך העבודה האחרון של ה-build.
לוחצים על סטטוס. קובצי ה-HTML הבאים זמינים כארטיפקטים של בנייה:
- אם הפלאגין פעל, דוח ההפרה (
GoogleAnalyzeCodeSecurity_ViolationSummary.html)
ההפרות בדוח מקובצות לפי רמת החומרה. בקטע 'הפרה' מתואר הכלל שלא עמד בדרישות ומזהה הנכס מתוכנית Terraform שהפר את הכלל.
- אם ה-build נכשל, דוח סיכום שגיאות
- אם הפלאגין פעל, דוח ההפרה (
לפני שמחילים את קוד Terraform, צריך לפתור את כל ההפרות שקיימות בו.
המאמרים הבאים
- אפשר לעיין בתוסף Google Analyze Code Security.