בדף הזה מוסבר איך להגדיר הגנה דינמית. לפני שמגדירים הגנה דינמית, חשוב לקרוא את המידע בסקירה הכללית על הגנה דינמית ואת תרחישי השימוש בהגנה דינמית.
לפני שמתחילים
בסעיפים הבאים מוסבר על כל התפקידים וההרשאות בניהול הזהויות והרשאות הגישה (IAM) שנדרשים להגדרת מדיניות אבטחה ב-Cloud Armor. במקרים לשימוש שמתוארים במסמך הזה, נדרשת רק ההרשאה compute.securityPolicies.update.
הגדרת הרשאות IAM למדיניות אבטחה של Cloud Armor
כדי לבצע את הפעולות הבאות, צריך את התפקיד 'אדמין אבטחה ב-Compute' (roles/compute.securityAdmin) בניהול הזהויות והגישה (IAM):
- הגדרה, שינוי, עדכון ומחיקה של כללי מדיניות האבטחה של Cloud Armor
- באמצעות השיטות הבאות של API:
SecurityPolicies insertSecurityPolicies deleteSecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule
משתמש עם התפקיד 'אדמין של רשת מחשוב' (roles/compute.networkAdmin) יכול לבצע את הפעולות הבאות:
- הגדרת מדיניות אבטחה של Cloud Armor לשירות קצה עורפי
- באמצעות השיטות הבאות של API:
BackendServices setSecurityPolicy-
BackendServices list(gcloudבלבד)
משתמשים עם התפקיד 'אדמין אבטחה' (roles/iam.securityAdmin) ועם התפקיד 'אדמין של רשתות Compute' (roles/compute.networkAdmin) יכולים להציג מדיניות אבטחה של Cloud Armor באמצעות שיטות ה-API SecurityPolicies get, list ו-getRule.
הגדרת הרשאות IAM לתפקידים בהתאמה אישית
בטבלה הבאה מפורטות הרשאות הבסיס של תפקידי IAM, שיטות ה-API שמשויכות להן והתפקידים שמעניקים את ההרשאה הזו.
| הרשאת IAM | שיטות API | תפקידים |
|---|---|---|
compute.securityPolicies.create |
SecurityPolicies insert |
אדמין אבטחת מחשוב (roles/compute.securityAdmin) |
compute.securityPolicies.delete |
SecurityPolicies delete |
אדמין אבטחת מחשוב (roles/compute.securityAdmin) |
compute.securityPolicies.get |
SecurityPolicies getSecurityPolicies getRule |
אדמין אבטחה (roles/iam.securityAdmin) |
compute.securityPolicies.list |
SecurityPolicies list |
אדמין אבטחה (roles/iam.securityAdmin) |
שני התנאים הבאים:
|
BackendServices |
אדמין ברשת Compute (roles/compute.networkAdmin) |
compute.securityPolicies.update |
SecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule |
אדמין אבטחת מחשוב (roles/compute.securityAdmin) |
הפעלה של הגנה דינמית
כדי להפעיל הגנה דינמית במדיניות האבטחה: ההגנה הדינמית מופעלת על כל מדיניות אבטחה בנפרד.
המסוף
כדי להפעיל את ההגנה הדינמית במדיניות אבטחה:
נכנסים לדף Network Security במסוף Google Cloud .
בדף מדיניות, לוחצים על השם של מדיניות אבטחה.
לוחצים על Edit.
בקטע הגנה דינמית, בוחרים באפשרות הפעלה.
לוחצים על עדכון.
כדי להשבית את ההגנה הדינמית במדיניות אבטחה:
נכנסים לדף Network Security במסוף Google Cloud .
בדף מדיניות, לוחצים על השם של מדיניות אבטחה.
לוחצים על Edit.
בקטע הגנה דינמית, מבטלים את הסימון של הפעלה.
לוחצים על עדכון.
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
- יוצרים מדיניות אבטחה בשם
POLICY_NAME, או משתמשים במדיניות אבטחה קיימת. - אם ההגנה הדינמית עדיין לא מופעלת, משתמשים בפקודה הבאה כדי להפעיל אותה עבור המדיניות:
gcloud compute security-policies update POLICY_NAME
--enable-layer7-ddos-defense - החלת מדיניות האבטחה על שירות קצה עורפי עם כמה מארחים.
- משתמשים בפקודה
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
- אם הפריסה האוטומטית של ההגנה הדינמית לא מופעלת, יוצרים כלל placeholder.
- הפקודה הבאה מתאימה אישית את סף הפריסה האוטומטית ליחידת תעבורת נתונים מפורטת עם
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) של קו הבסיס
בדוגמה הבאה, אתם מגדירים את Adaptive Protection לזיהוי מתקפה רק אם נפח המתקפה חורג מנתוני הבסיס הממוצעים של QPS ביותר מ-50%, ורק אם העומס על שירות ה-Backend הוא יותר מ-90% מהקיבולת שלו.
gcloud
- יוצרים מדיניות אבטחה בשם
POLICY_NAME, או משתמשים במדיניות אבטחה קיימת. אם ההגנה הדינמית עדיין לא מופעלת, משתמשים בפקודה הבאה כדי להפעיל אותה במדיניות:
gcloud compute security-policies update POLICY_NAME \ --enable-layer7-ddos-defense
החלת מדיניות האבטחה על שירות קצה עורפי.
כדי להגדיר הגנה דינמית עם ספי זיהוי מותאמים אישית, משתמשים בפקודה הבאה:
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
המאמרים הבאים
- סקירה כללית על רמת הגנה דינמית ב-Google Cloud Armor
- תרחישים לדוגמה לשימוש ב-Adaptive Protection ב-Google Cloud Armor