כדי ליצור כללי מדיניות אבטחה של Google Cloud Armor לסינון תנועה נכנסת לאפליקציה, אפשר לפעול לפי ההוראות הבאות. צריכים מידע כללי על כללי מדיניות אבטחה? קראו את הסקירה הכללית על כללי מדיניות אבטחה ב-Cloud Armor.
לפני שמתחילים
לפני שמגדירים מדיניות אבטחה, צריך לבצע את הפעולות הבאות:
חשוב להכיר את המושגים שקשורים למאזן עומסים חיצוני של אפליקציות (ALB).
בודקים את שירותי ה-Backend הקיימים כדי לזהות את אלה שלא מצורפת אליהם מדיניות אבטחה. שירותי הקצה העורפי האלה והקצה העורפי המשויך שלהם לא מוגנים על ידי Cloud Armor. כדי להוסיף את ההגנה ש-Cloud Armor מספק, צריך לפעול לפי ההוראות במאמר הזה כדי לצרף כללי מדיניות אבטחה חדשים או קיימים לשירות הקצה העורפי.
הגדרת הרשאות 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) |
יצירת מדיניות אבטחה
אפשר להגדיר מדיניות אבטחה, כללים וביטויים של Cloud Armor באמצעות מסוף Google Cloud , Google Cloud CLI או API בארכיטקטורת REST. כשמשתמשים ב-CLI של gcloud כדי ליצור מדיניות אבטחה, צריך להשתמש בדגל --type כדי לציין אם מדיניות האבטחה היא מדיניות אבטחה של קצה עורפי או מדיניות אבטחה של קצה.
אם אתם לא מכירים את ההגדרה של מדיניות אבטחה, מומלץ לעיין בדוגמאות למדיניות אבטחה.
ביטויים לדוגמה
אלה ביטויים לדוגמה. מידע נוסף על ביטויים מופיע במאמר בנושא הפניה לשפה של כללים בהתאמה אישית ב-Cloud Armor.
אם אתם מגדירים כלל או ביטוי שמשתמשים בקודי מדינה או אזור לפי תקן ISO 3166-1 alpha 2, מערכת Cloud Armor מתייחסת לכל קוד בנפרד. הכללים והביטויים של Cloud Armor משתמשים בקודים האזוריים האלה באופן מפורש כדי לאשר או לדחות בקשות.
הביטוי הבא תואם לבקשות מכתובת ה-IP
1.2.3.4ומכיל את המחרוזתexampleבכותרת user-agent:inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')אפשרות אחרת היא להתאים לטווח כתובות ה-IP של כותרת מותאמת אישית של כתובת IP של לקוח באמצעות המאפיין
origin.user_ip:inIpRange(origin.user_ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')הביטוי הבא תואם לבקשות שכוללות קובץ Cookie עם ערך ספציפי:
has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')הביטוי הבא תואם לבקשות מהאזור
AU:origin.region_code == 'AU'
הביטוי הבא תואם לבקשות מהאזור
AUשלא נמצאות בטווח כתובות ה-IP שצוין:origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
הביטוי הבא תואם לבקשות עם נתיב משתנה ממוספר לקובץ ספציפי אם ה-URI תואם לביטוי רגולרי:
request.path.matches('/path/[0-9]+/target_file.html')הביטוי הבא תואם לבקשות אם הערך המפוענח ב-Base64 של הכותרת
user-idמכיל ערך ספציפי:has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')הביטוי הבא משתמש בקבוצת ביטויים שהוגדרה מראש כדי להתאים לביטויים של מתקפות SQLi:
evaluatePreconfiguredWaf('sqli-stable')
פרצת אבטחה מסוג Path Traversal ונירמול
כשמנרמלים תוכן בכללים מבוססי-נתיב, אפשר לנהל בקלות כללים של מעבר נתיבים וקידוד, וליצור כללים כלליים שמונעים שימוש באותיות רישיות או בקידוד ספציפי לתוכן.
כשכותבים כללים שמשתמשים ב-startsWith, ב-endsWith או ב-contains כדי להתאים ל-request.path, מומלץ להשתמש ב-lower וב-urlDecode כדי לבצע נורמליזציה של הנתיב לפני ההתאמה. כך אפשר למנוע עקיפות שמשתמשות בקידוד של כתובות URL או בשינויים באותיות רישיות.
לדוגמה, אם רוצים לחסום את הגישה לספרייה /admin, אפשר להשתמש בביטוי הבא:
request.path.lower().urlDecode().startsWith('/admin')
הכלל הזה חוסם בקשות ל-/admin, ל-/Admin, ל-/a%64min ולגרסאות אחרות.
כשכותבים כללים שמשתמשים ב-matches כדי להתאים ל-request.path, מומלץ להביא בחשבון גם לוכסנים הפוכים בביטוי הרגולרי.
לדוגמה, אם רוצים לחסום גישה לספרייה /admin, אפשר להשתמש בביטוי הבא כדי לחסום עקיפות שמשתמשות בלוכסנים הפוכים:
request.path.matches(r'^/\\*admin')
אפשר גם לשלב את הפקודה הזו עם urlDecode כדי לטפל גם בקידוד כתובות URL וגם במעקפים של קו נטוי הפוך:
request.path.urlDecode().matches(r'^/\\*admin')
ניהול מדיניות האבטחה
בקטעים הבאים מוסבר איך לראות את מדיניות האבטחה בפרויקט, לעדכן את מדיניות האבטחה, למחוק את מדיניות האבטחה או לבדוק את מדיניות האבטחה.
הצגת רשימה של כללי מדיניות האבטחה
אפשר להשתמש בהוראות האלה כדי להציג רשימה של כל כללי האבטחה של Cloud Armor בפרויקט הנוכחי או בפרויקט שאתם מציינים.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
כדי להציג מדיניות מסוימת, בדף מדיניות אבטחה, ברשימת המדיניות, לוחצים על השם שלה.
gcloud
gcloud compute security-policies list
לדוגמה:
gcloud compute security-policies list
פלט:
NAME: my-policy REGION: us-central1
מידע נוסף זמין במאמר gcloud compute security-policies list.
עדכון מדיניות האבטחה
במאמר הזה מוסבר איך לעדכן מדיניות אבטחה של Cloud Armor. לדוגמה, אפשר לשנות את תיאור המדיניות, לשנות את ההתנהגות של כלל ברירת המחדל, לשנות את שירות הקצה העורפי של היעד או להוסיף כללים חדשים.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
כדי לעדכן מדיניות מסוימת, בדף מדיניות אבטחה, ברשימת המדיניות, לוחצים על תפריט לצד המדיניות שרוצים לעדכן.
- כדי לעדכן את תיאור המדיניות של פעולת ברירת המחדל של הכלל, בוחרים באפשרות עריכה, מבצעים את השינויים ולוחצים על עדכון.
- כדי להוסיף כלל, לוחצים על הוספת כלל ופועלים לפי ההוראות במאמר הוספת כללים למדיניות אבטחה.
- כדי לשנות את שירות לקצה העורפי של היעד עבור המדיניות, בוחרים באפשרות החלת המדיניות על היעד, לוחצים על הוספת יעד, בוחרים יעד ואז לוחצים על הוספה.
gcloud
כדי לעדכן מדיניות אבטחה, משתמשים בהוראות הבאות של Google Cloud CLI:
- כדי לעדכן כלל במדיניות אבטחה, אפשר לעיין במאמר בנושא עדכון כלל יחיד במדיניות אבטחה.
- כדי להוסיף כלל למדיניות אבטחה, ראו הוספת כללים למדיניות אבטחה.
- כדי למחוק כלל ממדיניות אבטחה, אפשר לעיין במאמר בנושא מחיקת כללים ממדיניות אבטחה.
- כדי לעדכן כמה כללים בעדכון אחד (עדכון אטומי), אפשר לעיין במאמר בנושא עדכון אטומי של כמה כללים במדיניות אבטחה.
- כדי לעדכן שדות שאינם שדות של כללים במדיניות אבטחה (למשל שדה התיאור), אפשר לעיין במאמרים בנושא ייצוא מדיניות אבטחה וייבוא מדיניות אבטחה.
מחיקת מדיניות אבטחה
במאמר הזה מוסבר איך למחוק מדיניות אבטחה של Cloud Armor. כדי למחוק את המדיניות, צריך קודם להסיר ממנה את כל שירותי ה-Backend.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף מדיניות אבטחה, מסמנים את התיבה לצד השם של מדיניות האבטחה שרוצים למחוק.
בפינה השמאלית העליונה של הדף, לוחצים על מחיקה.
gcloud
שימוש ב-gcloud compute security-policies delete NAME.
מחליפים את NAME בשם של מדיניות האבטחה:
gcloud compute security-policies delete NAME
בדיקת מדיניות אבטחה
מומלץ להפעיל את כל הכללים החדשים במצב תצוגה מקדימה, ואז לבדוק את יומני הבקשות כדי לוודא שהמדיניות והכללים פועלים כמו שציפיתם.
ניהול כללים של מדיניות אבטחה
בקטעים הבאים מוסבר איך להציג את הכללים של מדיניות האבטחה, להוסיף כללים, לעדכן כללים או למחוק כללים.
הצגת הכללים במדיניות אבטחה
במאמר הזה מוסבר איך להציג את הכללים במדיניות אבטחה של Cloud Armor.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי המדיניות, וכללי המדיניות יופיעו בכרטיסייה כללים באמצע הדף.
gcloud
כדי לראות רשימה של כל הכללים במדיניות אבטחה אחת, יחד עם תיאור של המדיניות, משתמשים בפקודה gcloud הבאה:
gcloud compute security-policies describe NAME \
כדי לראות רשימה של כל הכללים במדיניות אבטחה יחידה באזור מסוים, יחד עם תיאור של המדיניות, משתמשים בפקודה gcloud הבאה:
gcloud compute security-policies describe NAME \ --region REGION
משתמשים בפקודה gcloud הבאה כדי לתאר כלל עם העדיפות שצוינה במדיניות האבטחה שצוינה:
gcloud compute security-policies rules describe PRIORITY \
--security-policy POLICY_NAME
לדוגמה, הפקודה הבאה מתארת את הכלל עם העדיפות 1000 במדיניות האבטחה my-policy:
gcloud compute security-policies rules describe 1000 \
--security-policy my-policy
פלט:
action: deny(403) description: block traffic from 192.0.2.0/24 and 198.51.100.0/24 kind: compute#securityPolicyRule match: srcIpRanges: - '192.0.2.0/24' - '198.51.100.0/24' preview: false priority: 1000
מידע נוסף זמין במאמר gcloud compute security-policies describe.
הוספת כללים למדיניות אבטחה
במאמר הזה מוסבר איך להוסיף כללים למדיניות אבטחה של Cloud Armor.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה כללים.
לוחצים על הוספת כלל.
אופציונלי: מזינים תיאור של הכלל.
בוחרים מצב:
- מצב בסיסי: מאפשר או דוחה תנועה על סמך כתובות IP או טווחי כתובות IP.
- מצב מתקדם: מאפשר או דוחה תנועה על סמך ביטויי כללים.
בשדה התאמה, מציינים את התנאים שבהם הכלל חל:
מצב בסיסי: מזינים טווח אחד (1) עד 10 של כתובות IP להתאמה בכלל. אפשר להוסיף עד 10 טווחי כתובות IP. מידע על המגבלות מופיע במאמר מכסות ומגבלות של Cloud Armor.
מצב מתקדם: מזינים ביטוי או ביטויי משנה כדי לבצע הערכה של בקשות נכנסות. מידע על אופן הכתיבה של הביטויים ועל קריאת הדוגמאות הבאות מופיע במאמר בנושא שפת ההפניה של כללים מותאמים אישית.
הביטוי הבא תואם לבקשות מכתובת ה-IP
1.2.3.4ומכיל את המחרוזתexampleבכותרת user-agent:inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')הביטוי הבא תואם לבקשות שכוללות קובץ Cookie עם ערך ספציפי:
has(request.headers['cookie']) && request.headers['cookie'].contains('cookie_name=cookie_value')הביטוי הבא תואם לבקשות מהאזור
AU:origin.region_code == 'AU'
הביטוי הבא תואם לבקשות מהאזור
AUשלא נמצאות בטווח כתובות ה-IP שצוין:origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')
הביטוי הבא תואם לבקשות אם ה-URI תואם לביטוי רגולרי:
request.path.matches('/example_path/')הביטוי הבא תואם לבקשות אם הערך המפוענח ב-Base64 של הכותרת
user-idמכיל ערך ספציפי:has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')הביטוי הבא משתמש בקבוצת ביטויים שהוגדרה מראש כדי להתאים לתקיפות SQLi:
evaluatePreconfiguredWaf('sqli-stable')
בקטע פעולה, בוחרים באפשרות אישור או דחייה.
אם מגדירים כלל דחייה, בוחרים הודעה של סטטוס דחייה.
אם רוצים להפעיל את מצב התצוגה המקדימה עבור הכלל, מסמנים את התיבה הפעלה.
בשדה עדיפות מזינים מספר שלם חיובי.
לוחצים על הוספה.
gcloud
משתמשים בפקודה gcloud compute security-policies rules create PRIORITY.
מחליפים את PRIORITY בעדיפות של הכלל במדיניות:
gcloud compute security-policies rules create PRIORITY \
--security-policy POLICY_NAME \
--description DESCRIPTION \
--src-ip-ranges IP_RANGES | --expression EXPRESSION \
--action=[ allow | deny-403 | deny-404 | deny-502 ] \
--preview
לדוגמה, הפקודה הבאה מוסיפה כלל לחסימת תנועה מטווח כתובות ה-IP 192.0.2.0/24 ו-198.51.100.0/24. הכלל הוא בעדיפות 1000 והוא כלל במדיניות שנקראת my-policy:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--description "block traffic from 192.0.2.0/24 and 198.51.100.0/24" \
--src-ip-ranges "192.0.2.0/24","198.51.100.0/24" \
--action "deny-403"
משתמשים בדגל --expression כדי לציין תנאי בהפניה לשפה של כללים בהתאמה אישית.
הפקודה הבאה מוסיפה כלל שמאפשר תנועה מכתובת ה-IP 1.2.3.4 ומכילה את המחרוזת example בכותרת user-agent:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "inIpRange(origin.ip, '1.2.3.4/32') && has(request.headers['user-agent']) && request.headers['user-agent'].contains('example')" \
--action allow \
--description "Block User-Agent 'example'"
הפקודה הבאה מוסיפה כלל לחסימת בקשות אם קובץ ה-Cookie של הבקשה מכיל ערך ספציפי:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "has(request.headers['cookie']) && request.headers['cookie'].contains('80=BLAH')" \
--action deny-403 \
--description "Cookie Block"
הפקודה הבאה מוסיפה כלל לחסימת בקשות מהאזור AU:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "origin.region_code == 'AU'" \
--action deny-403 \
--description "AU block"
הפקודה הבאה מוסיפה כלל לחסימת בקשות מהאזור AU שלא נמצאות בטווח כתובות ה-IP שצוין:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "origin.region_code == "AU" && !inIpRange(origin.ip, '1.2.3.0/24')" \
--action deny-403 \
--description "country and IP block"
הפקודה הבאה מוסיפה כלל לחסימת בקשות עם URI שתואם לביטוי רגולרי:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "request.path.matches('/example_path/')" \
--action deny-502 \
--description "regex block"
הפקודה הבאה מוסיפה כלל לחסימת בקשות אם הערך המפוענח ב-Base64 של הכותרת user-id מכיל ערך ספציפי:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "has(request.headers['user-id']) && request.headers['user-id'].base64Decode().contains('myValue')" \
--action deny-403 \
--description "country and IP block"
הפקודה הבאה מוסיפה כלל שמשתמש בקבוצת ביטויים שהוגדרה מראש כדי לצמצם את הסיכון להתקפות SQLi:
gcloud compute security-policies rules create 1000 \
--security-policy my-policy \
--expression "evaluatePreconfiguredWaf('sqli-stable')" \
--action deny-403
עדכון של כלל יחיד במדיניות אבטחה
במאמר הזה מוסבר איך לעדכן כלל יחיד במדיניות אבטחה של Cloud Armor. כדי לעדכן כמה כללים באופן אטומי, אפשר לעיין במאמר בנושא עדכון אטומי של כמה כללים במדיניות אבטחה.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה כללים.
לצד הכלל שרוצים לעדכן, לוחצים על עריכה. יופיע הדף עריכת הכלל.
מבצעים את השינויים הרצויים ולוחצים על עדכון.
gcloud
אפשר להשתמש בפקודה הזו כדי לעדכן כלל עם העדיפות שצוינה במדיניות אבטחה ייעודית. אפשר לעדכן רק מדיניות אבטחה אחת בכל פעם באמצעות הפקודה הבאה:
gcloud compute security-policies rules update PRIORITY [ \
--security-policy POLICY_NAME \
--description DESCRIPTION \
--src-ip-ranges IP_RANGES | --expression EXPRESSION \
--action=[ allow | deny-403 | deny-404 | deny-502 ] \
--preview
]
לדוגמה, הפקודה הבאה מעדכנת כלל עם עדיפות 1111 כדי לאפשר תנועה מטווח כתובות ה-IP 192.0.2.0/24:
gcloud compute security-policies rules update 1111 \
--security-policy my-policy \
--description "allow traffic from 192.0.2.0/24" \
--src-ip-ranges "192.0.2.0/24" \
--action "allow"
מידע נוסף על הפקודה הזו זמין במאמר gcloud compute security-policies rules update.
כדי לעדכן את העדיפות של כלל, עליך להשתמש ב-API בארכיטקטורת REST. מידע נוסף זמין במאמר securityPolicies.patchRule.
עדכון אטומי של כמה כללים במדיניות אבטחה
עדכון אטומי מחיל שינויים על כמה כללים בעדכון אחד. אם תעדכנו את הכללים אחד-אחד, יכול להיות שתראו התנהגות לא צפויה כי כללים ישנים וחדשים יפעלו יחד לפרק זמן קצר.
כדי לעדכן כמה כללים באופן אטומי, מייצאים את מדיניות האבטחה הנוכחית לקובץ JSON או YAML, ואז משנים אותה. משתמשים בקובץ ששיניתם כדי ליצור מדיניות אבטחה חדשה, ואז מחליפים את מדיניות האבטחה בשירותים הרלוונטיים לקצה העורפי.
gcloud
מייצאים את המדיניות לעדכון, כמו בדוגמה הבאה:
gcloud compute security-policies export my-policy \ --file-name my-file \ --file-format yamlהמדיניות המיוצאת תיראה בערך כך:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredWaf('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 2 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policyמשתמשים בעורך טקסט כלשהו כדי לשנות את המדיניות. לדוגמה, אפשר לשנות את סדרי העדיפויות של הכללים הקיימים ולהוסיף כלל חדש:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: deny(404) description: my-rule-1 match: expr: expression: evaluatePreconfiguredWaf('xss-stable') versionedExpr: SRC_IPS_V1 preview: false priority: 1 - action: allow description: my-new-rule match: config: srcIpRanges: - '1.2.3.1' versionedExpr: SRC_IPS_V1 preview: false priority: 10 - action: allow description: my-rule-2 match: config: srcIpRanges: - '1.2.3.4' versionedExpr: SRC_IPS_V1 preview: false priority: 11 - action: deny description: default rule kind: compute#securityPolicyRule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policyיוצרים כללי מדיניות אבטחה חדשים ב-Cloud Armor ומציינים את שם הקובץ והפורמט ששונו, כמו בדוגמה הבאה:
gcloud compute security-policies create new-policy \ --file-name modified-policy \ --file-format yamlמסירים את מדיניות האבטחה הישנה משירות לקצה העורפי הרלוונטי, כמו בדוגמה הבאה:
gcloud compute backend-services update my-backend \ --security-policy ""מוסיפים את מדיניות האבטחה החדשה לשירות לקצה העורפי, כמו בדוגמה הבאה:
gcloud compute backend-services update my-backend \ --security-policy new-policyאם לא נעשה שימוש במדיניות הישנה, מוחקים אותה:
gcloud compute security-policies delete my-policy
מחיקת כללים ממדיניות אבטחה
במאמר הזה מוסבר איך למחוק כללים ממדיניות אבטחה של Cloud Armor.
המסוף
נכנסים לדף Google Cloud Armor policies במסוף Google Cloud .
לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, בכרטיסייה כללים, מסמנים את תיבת הסימון לצד הכלל שרוצים למחוק.
לוחצים על מחיקה.
gcloud
משתמשים בפקודה הזו כדי להסיר כלל עם עדיפות ספציפית ממדיניות אבטחה ייעודית. אפשר לשנות רק מדיניות אבטחה אחת בכל פעם, אבל אפשר למחוק כמה כללים בבת אחת:
gcloud compute security-policies rules delete PRIORITY [...] [
--security-policy POLICY_NAME \
]
לדוגמה:
gcloud compute security-policies rules delete 1000 \
--security-policy my-policy
צירוף והסרה של כללי מדיניות אבטחה
בקטעים הבאים מוסבר איך לצרף מדיניות אבטחה לשירותים לקצה העורפי ולקטגוריות לקצה העורפי, ואיך להסיר אותה מהם.
צירוף מדיניות אבטחה לשירות קצה עורפי
במאמר הזה מוסבר איך לצרף מדיניות אבטחה של Cloud Armor לשירות לקצה העורפי. אפשר לצרף מדיניות אבטחה ליותר משירות קצה עורפי אחד, אבל לשירות קצה עורפי יכולה להיות מצורפת רק מדיניות אבטחה אחת מכל סוג.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה יעדים.
לוחצים על החלת המדיניות על יעד חדש.
לוחצים על הוספת יעד.
ברשימה יעד, בוחרים יעד ולוחצים על הוספה.
gcloud
כשמצרפים מדיניות אבטחה לקצה העורפי לשירות לקצה העורפי, משתמשים בפקודה gcloud compute backend-services ובדגל --security-policy:
gcloud compute backend-services update my-backend \
--security-policy my-policy
כשמצרפים מדיניות אבטחה של קצה הרשת לשירות קצה עורפי, משתמשים בפקודה gcloud compute backend-services ובדגל --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy my-policy
הסרת מדיניות אבטחה משירות קצה עורפי
אפשר להשתמש בהוראות האלה כדי להסיר מדיניות אבטחה של קצה עורפי או מדיניות אבטחה של קצה מ-Cloud Armor משירות קצה עורפי.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה יעדים.
בוחרים את שירות הקצה העורפי שאליו המדיניות משויכת.
לוחצים על הסרה.
בהודעה הסרת יעד, לוחצים על הסרה.
gcloud
כדי להסיר מדיניות אבטחה של קצה עורפי, משתמשים בפקודה gcloud compute
backend-services ובדגל --security-policy:
gcloud compute backend-services update my-backend \
--security-policy ""
כדי להסיר מדיניות אבטחה של Edge, משתמשים בפקודה gcloud compute
backend-services ובדגל --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy ""
צירוף מדיניות אבטחה לקטגוריית קצה עורפי
במאמר הזה מוסבר איך לצרף מדיניות אבטחה של Cloud Armor edge לקטגוריית קצה עורפי. אפשר לצרף מדיניות אבטחה של קצה ליותר מדלי קצה עורפי אחד.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה יעדים.
לוחצים על החלת המדיניות על יעד חדש.
לוחצים על הוספת יעד.
ברשימה יעד, בוחרים יעד ולוחצים על הוספה.
gcloud
כשמצרפים מדיניות אבטחה של קצה העורף לקטגוריית קצה עורף, משתמשים בפקודה cloud compute backend-buckets ובדגל --edge-security-policy:
gcloud compute backend-services update my-bucket \
--edge-security-policy my-edge-policy
הסרת מדיניות אבטחה מקטגוריית קצה עורפי
ההוראות האלה מתייחסות להסרה של כללי מדיניות אבטחה של Cloud Armor edge מקטגוריית קצה עורפי.
המסוף
נכנסים לדף Cloud Armor policies במסוף Google Cloud .
בדף Security policies, לוחצים על השם של מדיניות האבטחה. יוצג הדף פרטי מדיניות.
באמצע הדף, לוחצים על הכרטיסייה יעדים.
בוחרים את שירות הקצה העורפי שאליו המדיניות משויכת.
לוחצים על הסרה.
בהודעה הסרת יעד, לוחצים על הסרה.
gcloud
כדי להסיר מדיניות אבטחה של קצה מקטגוריית backend, משתמשים בפקודה cloud compute backend-buckets ובדגל --edge-security-policy:
gcloud compute backend-services update my-bucket \
--edge-security-policy ""
ייבוא וייצוא של מדיניות אבטחה
בקטעים הבאים מוסבר איך לייבא ולייצא מדיניות אבטחה כקובצי YAML או JSON.
ייצוא מדיניות אבטחה
אפשר לייצא כללי מדיניות אבטחה של Cloud Armor כקובץ YAML או JSON באמצעות Google Cloud CLI. התכונה הזו מספקת את היתרונות הבאים:
שמירת עותק לצורך ניהול גרסאות או גיבוי: הייצוא מספק עותק מקומי של המדיניות. אפשר לשמור את העותק הזה במערכות לבקרת מקורות כגיבוי, או כדי לעקוב אחרי שינויים לאורך זמן. במקרה הצורך, אפשר לייבא אותו מחדש מאוחר יותר כדי לשחזר גרסה קודמת של המדיניות.
שינוי מדיניות ועדכונה באופן מקומי: אפשר לשנות מדיניות שיוצאה במצב אופליין באמצעות עורך הטקסט המועדף. אחרי שמבצעים שינויים, מייבאים מחדש את המדיניות המעודכנת כדי להחיל את השינויים על Cloud Armor.
gcloud
בפקודה הבאה,
NAMEהוא השם של מדיניות האבטחה. הפורמטים התקינים של הקבצים הם YAML ו-JSON. אם לא תציינו את פורמט הקובץ, Cloud Armor ישתמש ב-YAML כברירת מחדל.gcloud compute security-policies export NAME \ --file-name FILE_NAME \ --file-format FILE_FORMATבדוגמה הבאה מיוצאת מדיניות האבטחה
my-policyלקובץmy-fileבפורמט YAML:gcloud compute security-policies export my-policy \ --file-name my-file \ --file-format yamlבדוגמה הבאה מוצגת מדיניות אבטחה שיוצאה:
description: my description fingerprint: PWfLGDWQDLY= id: '123' name: my-policy rules: - action: allow description: default rule match: config: srcIpRanges: - '*' versionedExpr: SRC_IPS_V1 preview: false priority: 2147483647 selfLink: https://www.googleapis.com/compute/v1/projects/my-project/global/securityPolicies/my-policyאפשר לשנות את הקובץ המיוצא באמצעות כל כלי לעריכת טקסט, ואז לייבא אותו בחזרה אל Google Cloud באמצעות הפקודה
import.
ייבוא של מדיניות אבטחה
אפשר לייבא כללי מדיניות אבטחה של Cloud Armor מקובץ YAML או JSON באמצעות Google Cloud CLI. אי אפשר להשתמש בפקודה import כדי לעדכן את הכללים של מדיניות קיימת. במקום זאת, צריך לעדכן את הכללים אחד-אחד באמצעות התהליך עדכון של כלל יחיד במדיניות אבטחה, או את כולם בבת אחת באמצעות התהליך עדכון אטומי של כמה כללים במדיניות אבטחה.
gcloud
כדי לייבא כללי מדיניות אבטחה, משתמשים בפקודה gcloud compute security-policies import NAME.
מחליפים את NAME בשם של מדיניות האבטחה שרוצים לייבא. אם לא תציינו את פורמט הקובץ, המערכת תניח את הפורמט הנכון על סמך מבנה הקובץ. אם המבנה לא תקין, תופיע שגיאה.
gcloud compute security-policies import NAME \
--file-name FILE_NAME \
[--file-format FILE_FORMAT]
לדוגמה, הפקודה הבאה מעדכנת את המדיניות my-policy על ידי ייבוא הקובץ my-file.
gcloud compute security-policies import my-policy \
--file-name my-file \
--file-format json
אם טביעת האצבע של המדיניות לא עדכנית כשמייבאים אותה, Cloud Armor מציג שגיאה. המשמעות היא שהמדיניות שונתה מאז הייצוא האחרון שלה. כדי לפתור את הבעיה, משתמשים בפקודה describe במדיניות כדי לקבל את טביעת האצבע העדכנית.
ממזגים את ההבדלים בין המדיניות המתוארת לבין המדיניות שלכם, ואז מחליפים את טביעת האצבע המיושנת בטביעת האצבע העדכנית.
רשימת כללים שמוגדרים מראש
מציגה רשימה של כללים שהוגדרו מראש כדי לראות את כללי ההגנה על האפליקציות והחתימות המוגדרים מראש, כמו OWASP Core Rule Set ש-Cloud Armor מספק. הכללים המוגדרים מראש האלה מכילים כמה חתימות מובנות ש-Cloud Armor משתמש בהן כדי להעריך בקשות נכנסות. כדי להוסיף את הכללים שהוגדרו מראש לכללים חדשים או קיימים, צריך להשתמש בהפניה לשפה של כללים מותאמים אישית.
מידע נוסף מופיע במאמר בנושא כללים שהוגדרו מראש.
gcloud
מריצים את הפקודה
gcloud compute security-policies list-preconfigured-expression-sets:gcloud compute security-policies list-preconfigured-expression-sets
בדוגמה הבאה אפשר לראות את הפורמט של הפלט מהפקודה:
EXPRESSION_SET expression-set-1 RULE_ID SENSITIVITY expression-set-1-id-1 sensitivity-value-1 expression-set-1-id-2 sensitivity-value-2 expression-set-2 alias-1 RULE_ID SENSITIVITY expression-set-2-id-1 sensitivity-value-1 expression-set-2-id-2 sensitivity-value-2
בדוגמה הבאה מוצג פלט לדוגמה של הפקודה. הערה: הפלט בפועל יכלול את כל הכללים שמפורטים במאמר התאמה של כללי WAF ב-Cloud Armor.
gcloud compute security-policies list-preconfigured-expression-sets
EXPRESSION_SET sqli-canary RULE_ID SENSITIVITY owasp-crs-v030001-id942110-sqli 2 owasp-crs-v030001-id942120-sqli 2 … xss-canary RULE_ID SENSITIVITY owasp-crs-v030001-id941110-xss 1 owasp-crs-v030001-id941120-xss 1 … sourceiplist-fastly sourceiplist-cloudflare sourceiplist-imperva