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

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

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

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

  • חסימת איומים אוטומטית: חסימה מיידית של כתובות IP זדוניות או טווחים של כתובות 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. לוחצים על addCreate custom role.

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

  4. מגדירים את Role Launch Stage ל-General Availability.

  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 ליד Test ומחפשים את כתובת האימייל של הזהות שמתחילה ב-gke-init-python@... או ב-soar-python@....

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

אישור זהות המכונה ב- Google Cloud

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

    לדף Service accounts

  2. בוחרים את חשבון השירות הרצוי ועוברים אל Permissions > Grant Access.

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

הגדרת מפתח JSON

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

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

    לדף Service accounts

  2. עוברים לכרטיסייה Keys ולוחצים על Add key > Create new key.

  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

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

פעולות

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

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

הוספת כלל חדש למדיניות האבטחה בשירות 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:‏ 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.