שילוב של Cloud Armor עם Google SecOps

במאמר הזה מוסבר איך לשלב את Google Cloud Armor עם Google Security Operations.

תרחישים לדוגמה

השילוב של Cloud Armor תומך בתרחישי השימוש הבאים:

  • חסימת איומים אוטומטית: חסימה מיידית של כתובות IP או טווחים זדוניים ב- Google Cloud edge על ידי עדכון של כללי מדיניות האבטחה במהלך אירוע.

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

  • הפחתת סיכון דינמית של DDoS: תגובה להתקפות נפחיות או להתקפות שמבוססות על פרוטוקול על ידי התאמה תוכנתית של הגדרות מדיניות האבטחה.

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

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

לפני שמגדירים את השילוב של Cloud Armor ב-Google SecOps, צריך לבצע את השלבים המקדימים הבאים:

  1. יצירה והגדרה של תפקיד בהתאמה אישית לניהול זהויות והרשאות גישה.

  2. יוצרים חשבון שירות.

  3. בוחרים ומגדירים אחת משיטות האימות הבאות:

    • אפשרות 1: Workload Identity (מומלץ): בשיטה הזו נעשה שימוש באסימונים לטווח קצר באמצעות התחזות לחשבון שירות.

    • אפשרות 2: מפתח JSON של חשבון שירות: השיטה הזו מסתמכת על קובץ מפתח סודי סטטי לטווח ארוך.

יצירה והגדרה של תפקיד IAM

כדי לספק לאינטגרציה את ההרשאות הנדרשות, צריך ליצור תפקיד בהתאמה אישית בפרויקט Google Cloud :

  1. במסוף Google Cloud , עוברים אל Roles.

    לדף Roles

  2. לוחצים על הוספהיצירת תפקיד בהתאמה אישית.

  3. מציינים שם, תיאור ומזהה ייחודי.

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

  5. מוסיפים לתפקיד את ההרשאות הבאות:

    • compute.backendBuckets.setSecurityPolicy
    • compute.backendServices.setSecurityPolicy
    • compute.regionBackendServices.setSecurityPolicy
    • compute.regionSecurityPolicies.create
    • compute.regionSecurityPolicies.get
    • compute.regionSecurityPolicies.list
    • compute.regionSecurityPolicies.update
    • compute.securityPolicies.create
    • compute.securityPolicies.get
    • compute.securityPolicies.list
    • compute.securityPolicies.update
  6. לוחצים על יצירה.

יצירה של חשבון שירות

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.

    לדף Service accounts

  2. לוחצים על addCreate service account (הוספהיצירת חשבון שירות).

  3. מזינים שם ותיאור ולוחצים על יצירה והמשך.

  4. בשלב Grant this service account access to project (הענקת גישה לחשבון השירות הזה לפרויקט), מקצים את תפקיד ה-IAM המותאם אישית שיצרתם.

  5. לוחצים על סיום. רושמים את כתובת האימייל של חשבון השירות.

הגדרת פרטי כניסה של Workload Identity

הגישה המומלצת היא Workload Identity, כי היא משתמשת באסימונים לטווח קצר באמצעות התחזות לחשבון שירות.

זיהוי הזהות הייחודית של המופע

כדי ליצור חיבור, צריך לתת למופע של Google SecOps הרשאה להתחזות לחשבון השירות שלכם.

  1. ב-Google SecOps, עוברים אל Content Hub > Response Integrations.

  2. בוחרים את השילוב של Cloud Armor ומזינים את כתובת האימייל של חשבון השירות ב-Workload Identity Email.

  3. לוחצים על שמירה > בדיקה. הבדיקה נכשלת.

  4. לוחצים על הכפתור close_small לצד בדיקה ומאתרים את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

  5. מעתיקים את כתובת האימייל הייחודית הזו.

נותנים הרשאה לזהות המופע ב- Google Cloud

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts.

    לדף Service accounts

  2. בוחרים את חשבון השירות של היעד ועוברים אל הרשאות > הענקת גישה.

  3. מדביקים את כתובת האימייל הייחודית בשדה New principals ומקצים את התפקיד Service Account Token Creator (roles/iam.serviceAccountTokenCreator).

הגדרת מפתח JSON

קבצים סטטיים של מפתחות סודיים לטווח ארוך מחייבים רוטציה ידנית. משתמשים בשיטה הזו רק אם אימות באמצעות Workload Identity לא זמין.

  1. במסוף Google Cloud , נכנסים אל IAM & Admin > Service Accounts ובוחרים את חשבון השירות.

    לדף Service accounts

  2. עוברים לכרטיסייה מפתחות ולוחצים על הוספת מפתח > יצירת מפתח חדש.

  3. בוחרים באפשרות JSON ולוחצים על Create (יצירה). קובץ המפתח יורד למחשב.

פרמטרים של שילוב

השילוב של Cloud Armor דורש את הפרמטרים הבאים:

פרמטר תיאור
API Root

חובה.

שורש ה-API של שירות Cloud Armor.

ערך ברירת המחדל הוא https://compute.googleapis.com/compute/v1/.

Project ID

זה שינוי אופציונלי.

מזהה הפרויקט לטירגוט ב-Cloud Armor.

אם לא מציינים ערך, השילוב מאחזר את המזהה מפרטי הכניסה של חשבון השירות.

Workload Identity Email

זה שינוי אופציונלי.

כתובת האימייל של הלקוח בחשבון השירות. מגדירים את הפרמטר הזה לאימות של Workload Identity.

אם המדיניות מוגדרת, המערכת מתעלמת מ-User Service Account.

User Service Account

זה שינוי אופציונלי.

התוכן המלא של קובץ ה-JSON של מפתח חשבון השירות. מגדירים את הפרמטר הזה לאימות מפתחות של חשבונות שירות.

אם השילוב מוגדר, הוא מתעלם מ-Workload Identity Email.

Verify SSL

חובה.

אם האפשרות הזו נבחרה, האינטגרציה מאמתת את אישור ה-SSL כשהיא מתחברת לשרת Google Cloud .

ההגדרה הזו מופעלת כברירת מחדל.

הוראות להגדרת שילוב ב-Google SecOps מופיעות במאמר הגדרת שילובים.

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

פעולות

מידע נוסף על פעולות זמין במאמרים איך מגיבים לפעולות שממתינות לאישור ב-Your Workdesk ואיך מבצעים פעולה ידנית.

הוספת כלל למדיניות אבטחה

מוסיפים כלל חדש למדיניות האבטחה בשירות Cloud Armor.

ישויות

הפעולה הזו לא מופעלת בישויות.

הוספת נתונים לפעולה

כדי להגדיר את הפעולה, משתמשים בפרמטרים הבאים:

פרמטרים
Policy Name חובה

שם מדיניות האבטחה שאליה רוצים להוסיף כלל חדש.

Region אופציונלי

האזור שבו רוצים להוסיף את הכלל למדיניות.

אם לא מציינים ערך, הכלל מתווסף למדיניות האבטחה ברמה הגלובלית.

Rule JSON חובה

הגדרת JSON של הכלל שרוצים להוסיף.

מידע נוסף על הוספת כלל למדיניות זמין במאמר Method: securityPolicies.addRule.

פלט של פעולות

סוג הפלט של הפעולה
קיר המארז לא רלוונטי
קישור לקיר של הפנייה לא רלוונטי
טבלת קיר עם תושבת לא רלוונטי
טבלת העשרה לא רלוונטי
תוצאה בפורמט JSON יש גישה
תוצאת הסקריפט יש גישה
תוצאת הסקריפט
שם התוצאה של הסקריפט ערך
is_success נכון או לא נכון
תוצאה בפורמט JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
קיר של נרתיקים

הפעולה הזו מספקת את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully added a new rule to the security policy! הפעולה הסתיימה בהצלחה.
Error executing action "Add a Rule to a Security Policy". Reason: ERROR_REASON

הפעולה נכשלה.

בודקים את החיבור לשרת, את פרמטרי הקלט, את פרטי הכניסה, את שם האזור, את התוכן של קובץ ה-JSON או את שם המדיניות.

יצירת מדיניות אבטחה

יוצרים כללי מדיניות אבטחה בשירות Cloud Armor.

ישויות

הפעולה הזו לא מופעלת בישויות.

הוספת נתונים לפעולה

כדי להגדיר את הפעולה, משתמשים בפרמטרים הבאים:

פרמטרים
Region אופציונלי

האזור שבו רוצים ליצור מדיניות.

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

Policy JSON חובה

הגדרת ה-JSON של המדיניות שרוצים ליצור.

מידע נוסף על מדיניות זמין במאמר REST Resource: securityPolicies.

פלט של פעולות

סוג הפלט של הפעולה
קיר המארז לא רלוונטי
קישור לקיר של הפנייה לא רלוונטי
טבלת קיר עם תושבת לא רלוונטי
טבלת העשרה לא רלוונטי
תוצאה בפורמט JSON יש גישה
תוצאת הסקריפט יש גישה
תוצאת הסקריפט
שם התוצאה של הסקריפט ערך
is_success נכון או לא נכון
תוצאה בפורמט JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
קיר של נרתיקים

הפעולה הזו מספקת את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully created a new security policy! הפעולה הסתיימה בהצלחה.
Error executing action "Create a Security Policy". Reason: ERROR_REASON

הפעולה נכשלה.

בודקים את החיבור לשרת, את פרמטרי הקלט, את פרטי הכניסה, את שם האזור או את התוכן של קובץ JSON.

פינג

בודקים את הקישוריות לשירות Cloud Armor באמצעות הפרמטרים שמופיעים בדף הגדרת השילוב.

ישויות

הפעולה הזו לא מופעלת בישויות.

הוספת נתונים לפעולה

לא רלוונטי

פלט של פעולות

סוג הפלט של הפעולה
קיר המארז לא רלוונטי
קישור לקיר של הפנייה לא רלוונטי
טבלת קיר עם תושבת לא רלוונטי
טבלת העשרה לא רלוונטי
תוצאה בפורמט JSON לא רלוונטי
תוצאת הסקריפט יש גישה
תוצאת הסקריפט
שם התוצאה של הסקריפט ערך
is_success נכון או לא נכון
קיר של נרתיקים

הפעולה הזו מספקת את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully connected to the Google Cloud Armor service with the provided connection parameters! הפעולה הסתיימה בהצלחה.
Failed to connect to the Google Cloud Armor service! Error is ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

עדכון מדיניות אבטחה

עדכון מדיניות האבטחה הקיימת בשירות Cloud Armor.

אי אפשר לעדכן כללים במדיניות באמצעות הפעולה הזו. כדי להוסיף כלל למדיניות הקשורה, משתמשים בפעולה Add a Rule to a Security Policy (הוספת כלל למדיניות אבטחה).

ישויות

הפעולה הזו לא מופעלת בישויות.

הוספת נתונים לפעולה

כדי להגדיר את הפעולה, משתמשים בפרמטרים הבאים:

פרמטרים
Policy Name חובה

שם מדיניות האבטחה שאליה רוצים להוסיף כלל חדש.

Region אופציונלי

האזור שבו המדיניות המעודכנת חלה.

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

Rule JSON חובה

הגדרת JSON של המדיניות לעדכון.

מידע נוסף על עדכוני המדיניות זמין במאמר Method: securityPolicies.patch .

אי אפשר לעדכן כללים באמצעות הפעולה הזו. כדי להוסיף כלל למדיניות, משתמשים בפעולה Add a Rule to a Security Policy.

פלט של פעולות

סוג הפלט של הפעולה
קיר המארז לא רלוונטי
קישור לקיר של הפנייה לא רלוונטי
טבלת קיר עם תושבת לא רלוונטי
טבלת העשרה לא רלוונטי
תוצאה בפורמט JSON יש גישה
תוצאת הסקריפט יש גישה
תוצאת הסקריפט
שם התוצאה של הסקריפט ערך
is_success נכון או לא נכון
תוצאה בפורמט JSON
{
   "kind": "compute#securityPolicy",
   "id": "ID",
   "creationTimestamp": "2024-04-14T05:39:05.798-07:00",
   "name": "example",
   "description": "Test for integration",
   "rules": [
       {
           "kind": "compute#securityPolicyRule",
           "description": "test",
           "priority": 100,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       },
       {
           "kind": "compute#securityPolicyRule",
           "description": "Default rule, higher priority overrides it",
           "priority": 2147483647,
           "match": {
               "versionedExpr": "SRC_IPS_V1",
               "config": {
                   "srcIpRanges": [
                       "*"
                   ]
               }
           },
           "action": "allow",
           "preview": false
       }
   ],
   "fingerprint": "A3hq2ZQYxj8=",
   "selfLink": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1/securityPolicies/example",
   "type": "CLOUD_ARMOR",
   "labelFingerprint": "42WmSpB8rSM=",
   "region": "https://www.googleapis.com/compute/v1/projects/PROJECT_NAME/regions/northamerica-northeast1"
}
קיר של נרתיקים

הפעולה הזו מספקת את הודעות הפלט הבאות:

הודעת פלט תיאור ההודעה
Successfully added comment to the identity protection detection with ID DETECTION_ID in CrowdStrike הפעולה הסתיימה בהצלחה.
Error executing action "Update a Security Policy". Reason: ERROR_REASON

הפעולה נכשלה.

צריך לבדוק את החיבור לשרת, את פרמטרי הקלט או את פרטי הכניסה.

הבעיה עדיין לא נפתרה? קבלת תשובות מחברי הקהילה וממומחי Google SecOps.