הגדרת הגנה אדפטיבית ב-Google Cloud Armor

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

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

בקטעים הבאים מוסבר על כל התפקידים וההרשאות בניהול הזהויות והרשאות הגישה (IAM) שנדרשים להגדרת מדיניות אבטחה של Cloud Armor. בתרחישי השימוש שמתוארים במסמך הזה, נדרשת רק ההרשאה compute.securityPolicies.update.

הגדרת הרשאות IAM למדיניות אבטחה של Cloud Armor

כדי לבצע את הפעולות הבאות, צריך את התפקיד 'אדמין אבטחה ב-Compute' (roles/compute.securityAdmin) בניהול הזהויות והרשאות הגישה (IAM):

  • הגדרה, שינוי, עדכון ומחיקה של כללי מדיניות האבטחה של Cloud Armor
  • באמצעות השיטות הבאות של API:
    • SecurityPolicies insert
    • SecurityPolicies delete
    • SecurityPolicies patch
    • SecurityPolicies addRule
    • SecurityPolicies patchRule
    • SecurityPolicies removeRule

משתמש עם התפקיד 'אדמין של רשת מחשוב' (roles/compute.networkAdmin) יכול לבצע את הפעולות הבאות:

  • הגדרת מדיניות אבטחה של Cloud Armor לשירות קצה עורפי
  • באמצעות השיטות הבאות של API:
    • BackendServices setSecurityPolicy
    • BackendServices list (gcloud בלבד)

משתמשים עם התפקיד 'אדמין לענייני אבטחה' (roles/iam.securityAdmin) ועם התפקיד 'אדמין של רשתות Compute' (roles/compute.networkAdmin) יכולים להציג מדיניות אבטחה של Cloud Armor באמצעות שיטות ה-API‏ SecurityPoliciesget,‏ list ו-getRule.

הגדרת הרשאות IAM לתפקידים בהתאמה אישית

בטבלה הבאה מפורטות הרשאות הבסיס של תפקידי IAM, שיטות ה-API שמשויכות להן והתפקידים שמעניקים את ההרשאה הזו.

הרשאת IAM שיטות API תפקידים
compute.securityPolicies.create SecurityPolicies insert אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)
compute.securityPolicies.delete SecurityPolicies delete אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)
compute.securityPolicies.get SecurityPolicies get
SecurityPolicies getRule
אדמין לענייני אבטחה (roles/iam.securityAdmin)
compute.securityPolicies.list SecurityPolicies list אדמין לענייני אבטחה (roles/iam.securityAdmin)
שני התנאים הבאים:
  • compute.securityPolicies.use
  • compute.backendServices.
    setSecurityPolicy
BackendServices
setSecurityPolicy
אדמין של רשתות מחשוב (roles/compute.networkAdmin)
compute.securityPolicies.update SecurityPolicies patch
SecurityPolicies addRule
SecurityPolicies patchRule
SecurityPolicies removeRule
אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin)

הפעלה של הגנה דינמית

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

המסוף

כדי להפעיל את ההגנה הדינמית במדיניות אבטחה:

  1. נכנסים לדף Network Security במסוף Google Cloud .

    מעבר אל 'אבטחת רשת'

  2. בדף מדיניות, לוחצים על השם של מדיניות אבטחה.

  3. לוחצים על Edit.

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

  5. לוחצים על עדכון.

כדי להשבית את ההגנה הדינמית במדיניות אבטחה:

  1. נכנסים לדף Network Security במסוף Google Cloud .

    מעבר אל 'אבטחת רשת'

  2. בדף מדיניות, לוחצים על השם של מדיניות אבטחה.

  3. לוחצים על Edit.

  4. בקטע הגנה דינמית, מבטלים את הסימון של הפעלה.

  5. לוחצים על עדכון.

gcloud

כדי להפעיל את ההגנה הדינמית במדיניות אבטחה:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --enable-layer7-ddos-defense

כדי להשבית את ההגנה הדינמית במדיניות אבטחה:

gcloud compute security-policies update MY-SECURITY-POLICY \
    --no-enable-layer7-ddos-defense

הגדרת מודלים עם רמת פירוט גבוהה

התכונה 'מודלים גרנולריים' מאפשרת להגדיר מארחים או נתיבים ספציפיים כיחידות הגרנולריות שהתכונה 'הגנה דינמית' מנתחת. בדוגמאות הבאות, יוצרים יחידות תעבורה מפורטות לכל מארח, מתאימים אישית יחידת תעבורה מפורטת ומגדירים את Adaptive Protection (הגנה דינמית) כך שתבצע פעולה כשתעבורת הנתונים חורגת ממספר השאילתות לשנייה (QPS) של בסיס ההשוואה. מידע נוסף על מודלים פרטניים זמין במאמר סקירה כללית של הגנה דינמית.

הגדרה של יחידות תנועה ברמת פירוט גבוהה

בדוגמאות שבקטע הזה נעשה שימוש בפקודה add-layer7-ddos-defense-threshold-config עם חלק מהדגלים הבאים או עם כולם:

סימון תיאור
--threshold-config-name השם של הגדרת הסף.
--traffic-granularity-configs אפשרויות ההגדרה להפעלת Adaptive Protection כדי שיפעל ברמת הגרנולריות של השירות שצוין.
--auto-deploy-impacted-baseline-threshold סף ההשפעה המשוערת של ההגנה הדינמית על תנועת הבסיס של כלל ההפחתה המוצע למתקפה שזוהתה. ההגנות האוטומטיות מופעלות רק אם לא חורגים מערך הסף.
--auto-deploy-expiration-sec משך הפעולות, אם יש כאלה, שמתבצעות על ידי הפריסה האוטומטית.
--detection-load-threshold הסף לזיהוי מבוסס על העומס של שירות הקצה העורפי.
--detection-absolute-qps הסף לזיהוי מבוסס על QPS מוחלט.
--detection-relative-to-baseline-qps סף הזיהוי מבוסס על QPS ביחס לממוצע של תנועת הבסיס.

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

gcloud

  1. יוצרים מדיניות אבטחה בשם POLICY_NAME או משתמשים במדיניות אבטחה קיימת.
  2. אם ההגנה הדינמית עדיין לא מופעלת, משתמשים בפקודה הבאה כדי להפעיל אותה במדיניות:
    gcloud compute security-policies update POLICY_NAME 
    --enable-layer7-ddos-defense
  3. החלת מדיניות האבטחה על שירות קצה עורפי עם כמה מארחים.
  4. משתמשים בפקודה add-layer7-ddos-defense-threshold-config הבאה עם הדגל --traffic-granularity-configs כדי להגדיר יחידת תנועה גרנולרית:
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=per-host-config
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;enableEachUniqueValue=true

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

gcloud

  1. אם הפריסה האוטומטית של ההגנה הדינמית עדיין לא הופעלה, יוצרים כלל placeholder.
  2. הפקודה הבאה מתאימה אישית את סף הפריסה האוטומטית ליחידת תנועה גרנולרית עם HTTP_HEADER_HOST של HOST ועם HTTP_PATH של PATH. משתמשים בפקודה הזו לכל יחידת תנועה מפורטת שרוצים להתאים אישית, ומחליפים את המשתנים לפי הצורך לכל מארח ונתיב כתובת ה-URL:
    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME 
    --threshold-config-name=my-host-config
    --auto-deploy-impacted-baseline-threshold=0.01
    --auto-deploy-expiration-sec=3600
    --traffic-granularity-configs=type=HTTP_HEADER_HOST;value=HOST,type=HTTP_PATH;value=PATH

זיהוי מקרים שבהם נפח ההתקפות חורג מהממוצע של קצב השאילתות לשנייה (QPS) של קו הבסיס

בדוגמה הבאה, אתם מגדירים את ההגנה הדינמית כך שתזהה מתקפה רק אם נפח המתקפה חורג מנפח הבסיס הממוצע של השאילתות לשנייה ביותר מ-50%, ורק אם העומס על שירות ה-Backend הוא יותר מ-90% מהקיבולת שלו.

gcloud

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

    gcloud compute security-policies update POLICY_NAME \
      --enable-layer7-ddos-defense
    
  3. החלת מדיניות האבטחה על שירות קצה עורפי.

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

    gcloud compute security-policies add-layer7-ddos-defense-threshold-config POLICY_NAME \
       --threshold-config-name=my-customized-thresholds \
       --detection-load-threshold=0.9 \
       --detection-relative-to-baseline-qps=1.5
    

המאמרים הבאים