הגדרת מדיניות אבטחה של קצה הרשת

מדיניות אבטחה של קצה הרשת מאפשרת לכם להגדיר כללים להתרה או לחסימה של תנועה בקצה הרשת של Google. אתם יכולים להגדיר מדיניות אבטחה של קצה הרשת לסוגי חזיתות (frontend) הבאים:

  • מאזני עומסי רשת חיצוניים להעברת סיגנל ללא שינוי
  • העברת פרוטוקול
  • מכונות וירטואליות עם כתובות IP ציבוריות

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

הגדרת כללים מותאמים אישית למדיניות אבטחה של קצה הרשת

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

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

לפני שממשיכים, צריך להירשם ל-Google Cloud Armor Enterprise ולהגדיר הגנה מתקדמת מפני מתקפות DDoS ברשת. אי אפשר להשתמש בכללים מותאמים אישית למדיניות אבטחה של קצה הרשת בלי מינוי פעיל ל-Cloud Armor Enterprise והגנה מתקדמת מפני DDoS ברשת.

כדי להגדיר כללים בהתאמה אישית:

  1. יוצרים מדיניות אבטחה חדשה של קצה הרשת בשם POLICY_NAME באזור REGION. לא משתמשים באותה מדיניות אבטחה שבה השתמשתם כשמפעילים הגנה מתקדמת מפני DDoS ברשת.

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION
    
  2. משנים את כלל ברירת המחדל של המדיניות מ-allow ל-deny כדי לחסום תנועה שלא אושרה במפורש על ידי כללים אחרים.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION
    
  3. באותה מדיניות אבטחה, מוסיפים כלל בעדיפות RULE_PRIORITY שמאפשר בקשות בטווח כתובות ה-IP של המקור RANGE.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-src-ip-ranges=RANGE \
       --action=allow \
       --region=REGION
    
  4. משייכים את מדיניות האבטחה לשירות הקצה העורפיBACKEND_SERVICE_NAME.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION
    

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

    gcloud beta compute instances network-interfaces update VM_NAME \
       --security-policy=POLICY_NAME \
       --security-policy-region=REGION \
       --network-interface=NETWORK_INTERFACE \
       --zone=ZONE_NAME
    
  5. אופציונלי: אפשר לוודא שמדיניות האבטחה מצורפת באמצעות הפקודה הבאה. אם הפעולה תצליח, בשדה securityPolicy בפלט יופיע קישור למשאב של מדיניות האבטחה.

    gcloud compute instances describe VM_NAME --zone=ZONE_NAME
    

אחרי שיוצרים את הדוגמה הקודמת, אפשר להמשיך להוסיף כללים למדיניות האבטחה של קצה הרשת באמצעות הפקודה security-policies rules update. השדות הנתמכים במדיניות אבטחה של קצה הרשת הם:

שדה דגל תיאור
כתובת ה-IP של המקור --network-src-ip-ranges כתובות IPv4/6 או קידומות CIDR של המקור, בפורמט טקסט רגיל.
יציאות מקור --network-src-ports מספרי יציאות מקוריות ל-TCP/UDP/SCTP. כל רכיב יכול להיות מספר (16 ביט) (כמו '80') או טווח (כמו '0-1023').
קודי אזור המקור --network-src-region-codes קוד מדינה בן שתי אותיות (ISO 3166-1 alpha 2).
מספרי מערכות אוטונומיות (ASN) של המקור --network-src-asns מספר המערכת האוטונומית (ASN) של BGP של כתובת ה-IP של המקור.
טווחי כתובות IP של יעד --network-dest-ip-ranges כתובות IPv4/6 ליעד או קידומות CIDR, בפורמט טקסט רגיל.
יציאות יעד --network-dest-ports מספרי יציאות של היעד עבור TCP/UDP/SCTP. כל רכיב יכול להיות מספר (16 ביט) (כמו '80') או טווח (כמו '0-1023').
פרוטוקולים של כתובות IP --network-ip-protocols פרוטוקול IPv4 / כותרת IPv6 הבאה (אחרי כותרות ההרחבה). כל רכיב יכול להיות מספר בן 8 ביטים (כמו '6'), טווח (כמו '253-254') או אחד משמות הפרוטוקולים הבאים:
  • tcp
  • udp
  • icmp
  • esp
  • ah
  • ipip
  • sctp
סינון לפי היסט בבייט לא רלוונטי מידע נוסף מופיע בקטע הבא.

כשמשתמשים בדגל --network-src-region-codes במדיניות אבטחה של קצה הרשת, אפשר להשתמש בקודי אזורים עבור הטריטוריות הבאות שחלות עליהן סנקציות מקיפות של ארה"ב:

אזורים קוד שהוקצה
חצי האי קרים XC
הטריטוריות שמכונות "הרפובליקה העממית של דונצק (DNR)" ו"הרפובליקה העממית של לוהנסק (LNR)"
XD

הגדרת סינון לפי היסט בייטים

אם אתם משתמשים במאזנים חיצוניים של עומסי רשת להעברת סיגנל ללא שינוי, בהעברת פרוטוקולים או במכונות וירטואליות עם כתובות IP ציבוריות, Cloud Armor יכול לבצע בדיקה מעמיקה של חבילות נתונים בתעבורה נכנסת. אתם יכולים להגדיר כלל מדיניות אבטחה שתואם לערך מסוים של היסט בייט ב-TCP/UDP. אתם יכולים להגדיר את הכלל כך שיחול כשערך ההיסט שהוגדר קיים, או לחלופין כשערך ההיסט לא קיים.

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

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

    gcloud compute security-policies create POLICY_NAME \
       --type=CLOUD_ARMOR_NETWORK \
       --region=REGION_NAME
    
  2. כדי לעדכן את מדיניות האבטחה של קצה הרשת ולהוסיף שדות שהוגדרו על ידי המשתמש, צריך להשתמש בפרמטרים הבאים:

    • בסיס: הערך יכול להיות IPv4,‏ IPv6,‏ TCP או UDP
    • Offset: ההיסט של השדה מהבסיס בבייטים
    • גודל: גודל השדה בבייטים (הערך המקסימלי הוא 4)
    • Mask: המסכה של הביטים בשדה שצריך להתאים

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

    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_TCP \
       --base=TCP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
    gcloud compute security-policies add-user-defined-field POLICY_NAME \
       --user-defined-field-name=USER_DEFINED_FIELD_NAME_UDP \
       --base=UDP \
       --offset=OFFSET \
       --size=SIZE \
       --mask=MASK \
       --region=REGION_NAME
    
  3. במדיניות האבטחה של קצה הרשת, מוסיפים כלל עם אותו שם של שדה מותאם אישית שבו השתמשתם בדוגמה הקודמת. מחליפים את VALUE1 ואת VALUE2 בערכים שתואמים לתנועה שרוצים לאפשר.

    gcloud compute security-policies rules create RULE_PRIORITY \
       --security-policy=POLICY_NAME \
       --network-user-defined-fields="USER_DEFINED_FIELD_NAME_TCP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1:VALUE2,USER_DEFINED_FIELD_NAME_UDP;VALUE1,VALUE2" \
       --action=allow \
       --region=REGION_NAME
    
  4. מגדירים את כלל ברירת המחדל במדיניות האבטחה של קצה הרשת ככלל דחייה. אפשר לדלג על השלב הזה אם כלל ברירת המחדל במדיניות האבטחה הוא כבר כלל דחייה.

    gcloud compute security-policies rules update 2147483647 \
       --security-policy=POLICY_NAME \
       --action=deny \
       --region=REGION_NAME
    
  5. משייכים את מדיניות האבטחה של קצה הרשת לשירות לקצה העורפי של מאזן עומסי הרשת החיצוני להעברת סיגנל ללא שינוי.

    gcloud compute backend-services update BACKEND_SERVICE_NAME \
       --security-policy=POLICY_NAME \
       --region=REGION_NAME
    

מעקב

‫Cloud Armor מייצא את המדדים הבאים אל Cloud Monitoring עבור כל אחד מהכללים במדיניות אבטחת קצה הרשת:

  • packet_count
    • Blocked: ערך בוליאני שמייצג את התוצאה של פעולת כלל מסוג allow או deny
    • Count: הערך של packet_count גדל ב-1 בכל פעם עבור כל 10,000 מנות. לדוגמה, ערך של packet_count שהוא 5 מציין שלפחות 50,000 מנות תאמו לכלל שהגדרתם.
  • preview_packet_count: זהה ל-packet_count, משמש לכללים במצב תצוגה מקדימה

כדי להציג מדדים של מדיניות אבטחה ברשת, צריך קודם להפעיל את Network Security API (networksecurity.googleapis.com). ההרשאה הזו כלולה בתפקיד Compute Security Admin (roles/compute.securityAdmin). אחרי שמפעילים את Network Security API, אפשר להציג את המדדים ב-Monitoring במסוף Google Cloud .

מעבר למעקב