בדף הזה יש מידע על הגדרת הגנה דינמית. לפני שמגדירים את ההגנה הדינמית, חשוב לעיין במידע שבמאמר סקירה כללית על הגנה דינמית ובמאמר תרחישים לדוגמה לשימוש בהגנה דינמית.
לפני שמתחילים
בקטעים הבאים מוסבר על כל התפקידים וההרשאות בניהול הזהויות והרשאות הגישה (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 |
אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin) |
compute.securityPolicies.delete |
SecurityPolicies delete |
אדמין לענייני אבטחה ב-Compute (roles/compute.securityAdmin) |
compute.securityPolicies.get |
SecurityPolicies getSecurityPolicies getRule |
אדמין לענייני אבטחה (roles/iam.securityAdmin) |
compute.securityPolicies.list |
SecurityPolicies list |
אדמין לענייני אבטחה (roles/iam.securityAdmin) |
שני התנאים הבאים:
|
BackendServices |
אדמין של רשתות מחשוב (roles/compute.networkAdmin) |
compute.securityPolicies.update |
SecurityPolicies patchSecurityPolicies addRuleSecurityPolicies patchRuleSecurityPolicies removeRule |
אדמין לענייני אבטחה ב-Compute (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) של קו הבסיס
בדוגמה הבאה, אתם מגדירים את ההגנה הדינמית כך שתזהה מתקפה רק אם נפח המתקפה חורג מנפח הבסיס הממוצע של השאילתות לשנייה ביותר מ-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
המאמרים הבאים
- סקירה כללית על Adaptive Protection ב-Google Cloud Armor
- תרחישים לדוגמה לשימוש ב-Adaptive Protection ב-Google Cloud Armor