במאמר הזה מוסבר איך ליצור כללי מדיניות אבטחה של Google Cloud Armor כדי לסנן תנועה נכנסת לאפליקציה. מידע כללי על כללי מדיניות אבטחה זמין במאמר סקירה כללית על כללי מדיניות אבטחה ב-Cloud Armor.
לפני שמתחילים
לפני שמגדירים מדיניות אבטחה, צריך לבצע את הפעולות הבאות:
חשוב להכיר את המושגים שקשורים למאזן עומסים חיצוני של אפליקציות (ALB).
בודקים את שירותי הקצה העורפי הקיימים כדי לזהות את אלה שלא מצורף אליהם כלל מדיניות אבטחה. שירותי הקצה העורפי האלה והקצה העורפי המשויך להם לא מוגנים על ידי 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 |
אדמין אבטחת מחשוב (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) |
יצירת מדיניות אבטחה
אפשר להגדיר מדיניות אבטחה, כללים וביטויים של Cloud Armor באמצעות מסוף Google Cloud, Google Cloud CLI או API ל-REST. כשמשתמשים ב-gcloud CLI כדי ליצור מדיניות אבטחה, צריך להשתמש בדגל --type כדי לציין אם מדיניות האבטחה היא מדיניות אבטחה של קצה או מדיניות אבטחה של קצה עורפי. Cloud de Confiance
אם אתם לא יודעים איך להגדיר מדיניות אבטחה, מומלץ לעיין בדוגמאות למדיניות אבטחה.
ביטויים לדוגמה
בהמשך מופיעות דוגמאות לביטויים. למידע נוסף על ביטויים, אפשר לעיין במאמר בנושא שפת ההפניה של כללים בהתאמה אישית ב-Cloud Armor.
אם אתם מגדירים כלל או ביטוי שמשתמשים בקודי מדינה או אזור מסוג ISO 3166-1 alpha-2, Cloud Armor מתייחס לכל קוד בנפרד. כללים וביטויים ב-Cloud Armor משתמשים באופן מפורש בקודי האזורים האלה כדי לאשר או לדחות בקשות.
הביטוי הבא תואם לבקשות מכתובת ה-IP
1.2.3.4ומכיל את המחרוזתexampleבכותרת סוכן המשתמש: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 and normalization
כשמנרמלים תוכן בכללים מבוססי-נתיב, אפשר לנהל בקלות את כללי ההצפנה והמעבר בין נתיבים, וליצור כללים כלליים שמונעים שימוש באותיות רישיות או בהצפנה ספציפית לתוכן.
כשכותבים כללים שמשתמשים ב-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 במסוף Cloud de Confiance .
כדי להציג מדיניות מסוימת, בדף מדיניות אבטחה, ברשימת המדיניות, לוחצים על השם שלה.
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 במסוף Cloud de Confiance .
כדי לעדכן מדיניות מסוימת, בדף מדיניות אבטחה, ברשימת המדיניות, לוחצים על תפריט לצד המדיניות שרוצים לעדכן.
- כדי לעדכן את תיאור המדיניות של פעולת ברירת המחדל של הכלל, בוחרים באפשרות עריכה, מבצעים את השינויים ולוחצים על עדכון.
- כדי להוסיף כלל, לוחצים על הוספת כלל ופועלים לפי ההוראות שבמאמר הוספת כללים למדיניות אבטחה.
- כדי לשנות את שירות הקצה העורפי שאליו המדיניות מיועדת, בוחרים באפשרות החלת המדיניות על היעד, לוחצים על הוספת יעד, בוחרים יעד ואז לוחצים על הוספה.
gcloud
כדי לעדכן מדיניות אבטחה, משתמשים בהוראות הבאות של Google Cloud CLI:
- כדי לעדכן כלל במדיניות אבטחה, אפשר לעיין במאמר עדכון כלל יחיד במדיניות אבטחה.
- כדי להוסיף כלל למדיניות אבטחה, אפשר לעיין במאמר הוספת כללים למדיניות אבטחה.
- כדי למחוק כלל ממדיניות אבטחה, אפשר לעיין במאמר בנושא מחיקת כללים ממדיניות אבטחה.
- כדי לעדכן כמה כללים בעדכון אחד (עדכון אטומי), אפשר לעיין במאמר בנושא עדכון אטומי של כמה כללים במדיניות אבטחה.
- כדי לעדכן שדות שאינם שדות של כללים במדיניות אבטחה (למשל שדה התיאור), אפשר לעיין במאמרים בנושא ייצוא מדיניות אבטחה וייבוא מדיניות אבטחה.
מחיקת מדיניות אבטחה
כדי למחוק מדיניות אבטחה של Cloud Armor, צריך להסיר ממנה את כל שירותי ה-Backend.
המסוף
נכנסים לדף Cloud Armor policies במסוף Cloud de Confiance .
בדף מדיניות אבטחה, מסמנים את תיבת הסימון לצד השם של מדיניות האבטחה שרוצים למחוק.
בפינה השמאלית העליונה של הדף, לוחצים על מחיקה.
gcloud
שימוש ב-gcloud compute security-policies delete NAME. מחליפים את NAME בשם מדיניות האבטחה:
gcloud compute security-policies delete NAME
בדיקת מדיניות אבטחה
מומלץ להפעיל את כל הכללים החדשים במצב תצוגה מקדימה, ואז לבדוק את יומני הבקשות כדי לוודא שהמדיניות והכללים פועלים כמו שציפיתם.
ניהול כללים של מדיניות אבטחה
בקטעים הבאים מוסבר איך לראות את הכללים של מדיניות האבטחה, להוסיף כללים, לעדכן כללים או למחוק כללים.
הצגת הכללים במדיניות אבטחה
במאמר הזה מוסבר איך להציג את הכללים במדיניות אבטחה של Cloud Armor.
המסוף
נכנסים לדף Cloud Armor policies במסוף Cloud de Confiance .
בדף מדיניות אבטחה, לוחצים על השם של מדיניות האבטחה. יופיע הדף פרטי המדיניות, וכללי המדיניות יופיעו בכרטיסייה כללים באמצע הדף.
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 במסוף Cloud de Confiance .
בדף מדיניות אבטחה, לוחצים על שם מדיניות האבטחה. מוצג הדף פרטי המדיניות.
באמצע הדף, לוחצים על הכרטיסייה כללים.
לוחצים על הוספת כלל.
אופציונלי: מזינים תיאור של הכלל.
בוחרים מצב:
- מצב בסיסי: מאפשר או דוחה תנועה על סמך כתובות IP או טווחי כתובות IP.
- מצב מתקדם: מאפשר או דוחה תנועה על סמך ביטויי כללים.
בשדה התאמה, מציינים את התנאים שבהם הכלל חל:
מצב בסיסי: מזינים טווח אחד (1) עד 10 של כתובות IP להתאמה בכלל. אפשר להוסיף עד 10 טווחי כתובות IP. לגבי מגבלות, אפשר לעיין במאמר בנושא מכסות ומגבלות של Cloud Armor.
מצב מתקדם:
- כלי ליצירת תנאי התאמה (תצוגה מקדימה): אפשר להשתמש בכלי החזותי ליצירת ביטויים בלי לכתוב קוד CEL גולמי. אפשר להוסיף תנאים, לקבץ אותם ולהחיל עליהם טרנספורמציות של מחרוזות. מידע נוסף מופיע במאמר בנושא שימוש בכלי ליצירת תנאי התאמה.
- Match condition editor: מזינים ביטוי או ביטויי משנה להערכה מול בקשות נכנסות. מידע על אופן הכתיבה של הביטויים ועל קריאת הדוגמאות הבאות מופיע במאמר בנושא שפת כללים בהתאמה אישית.
הביטוי הבא תואם לבקשות מכתובת ה-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 בכותרת סוכן המשתמש:
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 במסוף Cloud de Confiance .
בדף מדיניות אבטחה, לוחצים על שם מדיניות האבטחה. מוצג הדף פרטי המדיניות.
באמצע הדף, לוחצים על הכרטיסייה כללים.
לצד הכלל שרוצים לעדכן, לוחצים על עריכה. יופיע הדף עריכת הכלל.
מבצעים את השינויים הרצויים ולוחצים על עדכון.
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.
שימוש בכלי ליצירת תנאי התאמה
הכלי ליצירת תנאי התאמה הוא הממשק החזותי במסוף Cloud de Confiance שבו אפשר ליצור ביטויים מורכבים של Common Expression Language (CEL) בלי לכתוב קוד גולמי. הכלי ליצירת סוכנים ממחיש את הלוגיקה באמצעות ממשק משתמש מובנה, ותומך בקיבוץ, ברשימות רגילות ובלוגיקה עם רמות קינון עמוקות. הכלי הזה שימושי במיוחד כשמגדירים כללים להגנה על עורפי קצה (backend) מרובי עננים או על פריסות היברידיות, שבהן יכול להיות שיהיה צורך לבדוק מאפיינים ספציפיים של בקשות לפני ניתוב תנועה לנקודות קצה חיצוניות.
תכונות של הכלי להגדרת תנאים להתאמה
- לוגיקה וקינון: אפשר לשלב כמה תנאים באמצעות האופרטורים
ANDו-OR. הכלי תומך ברמה אחת של קיבוץ וסידור פנימי, עם עד חמישה ביטויים. - טרנספורמציות של מחרוזות: במאפיינים מבוססי-מחרוזות (כמו
request.pathאוrequest.headers), אפשר להחיל טרנספורמציות כדי לנרמל את הנתונים לפני ההערכה. הטרנספורמציות הנתמכות כוללות:- אותיות קטנות ואותיות גדולות
- פענוח Base64
- פענוח כתובת URL ופענוח כתובת URL (Unicode)
- המרת UTF-8 ל-Unicode
- ניתוח דו-כיווני: אפשר לעבור בין הכלי הוויזואלי ליצירת תנאי התאמה לבין עורך תנאי ההתאמה של טקסט גולמי. ממשק המשתמש מנסה לנתח קוד CEL גולמי לבלוקים חזותיים באופן אוטומטי.
- תמיכה בפונקציות: הכלי ליצירת כללים מספק אמצעי בקרה ספציפיים בממשק המשתמש לביטויים מבוססי-פונקציות, כמו כללי WAF שהוגדרו מראש, קבוצות כתובות ו-Threat Intelligence.
מגבלות
הכלי ליצירת תנאי התאמה הוא ממשק ברירת המחדל ליצירת כללים מתקדמים. עם זאת, אם ביטוי מכיל לוגיקה לא נתמכת (כמו פקודות מאקרו לא מוכרות), הכלי להגדרת ביטויים מושבת. במקרים כאלה, צריך להשתמש בכלי לעריכת תנאי ההתאמה כדי לערוך את הכלל.
בנוסף, הזמינות של ביטויים מסוימים בכלי ליצירת כללים תלויה ברמת Cloud Armor Enterprise של הפרויקט ובסוג של כללי מדיניות האבטחה.
עדכון אטומי של כמה כללים במדיניות אבטחה
עדכון אטומי מחיל שינויים על כמה כללים בעדכון אחד. אם תעדכנו את הכללים אחד-אחד, יכול להיות שתראו התנהגות לא צפויה כי כללים ישנים וחדשים יפעלו יחד למשך זמן קצר.
כדי לעדכן כמה כללים באופן אטומי, מייצאים את מדיניות האבטחה הנוכחית לקובץ 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 במסוף Cloud de Confiance .
לוחצים על שם מדיניות האבטחה. יוצג הדף Policy details.
באמצע הדף, בכרטיסייה Rules (כללים), מסמנים את תיבת הסימון לצד הכלל שרוצים למחוק.
לוחצים על מחיקה.
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 במסוף Cloud de Confiance .
בדף מדיניות אבטחה, לוחצים על שם מדיניות האבטחה. מוצג הדף פרטי המדיניות.
באמצע הדף, לוחצים על הכרטיסייה יעדים.
לוחצים על החלת המדיניות על יעד חדש.
לוחצים על הוספת יעד.
ברשימה יעד, בוחרים יעד ולוחצים על הוספה.
gcloud
כשמצרפים מדיניות אבטחה לקצה העורפי לשירות קצה עורפי, משתמשים בפקודה gcloud compute backend-services ובדגל --security-policy:
gcloud compute backend-services update my-backend \
--security-policy my-policy
כשמצרפים מדיניות אבטחה של Edge לשירות קצה עורפי, משתמשים בפקודה gcloud compute backend-services ובדגל --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy my-policy
הסרת מדיניות אבטחה משירות קצה עורפי
אפשר להשתמש בהוראות האלה כדי להסיר מדיניות אבטחה של קצה עורפי או מדיניות אבטחה של קצה מ-Cloud Armor משירות קצה עורפי.
המסוף
- נכנסים לדף Cloud Armor policies במסוף Cloud de Confiance .
- בדף מדיניות אבטחה, לוחצים על שם מדיניות האבטחה. מוצג הדף פרטי המדיניות.
- באמצע הדף, לוחצים על הכרטיסייה יעדים.
- בוחרים את שירות ה-Backend של היעד שממנו רוצים להסיר את המדיניות.
- לוחצים על הסרה.
- בהודעה הסרת יעד, לוחצים על הסרה.
gcloud
כדי להסיר מדיניות אבטחה של קצה עורפי, משתמשים בפקודה gcloud compute
backend-services ובדגל --security-policy:
gcloud compute backend-services update my-backend \
--security-policy ""
כדי להסיר מדיניות אבטחה של קצה הרשת, משתמשים בפקודה gcloud compute
backend-services ובדגל --edge-security-policy:
gcloud compute backend-services update my-backend \
--edge-security-policy ""