בדף הזה מתוארות הגדרות לדוגמה של מדיניות אבטחה לסוגים שונים של מאזני עומסים ומדיניות אבטחה.
דוגמאות למדיניות אבטחה
יצירת מדיניות אבטחה
אפשר להשתמש במסוף Cloud de Confiance או ב-CLI של gcloud כדי ליצור מדיניות אבטחה. ההוראות בקטע הזה מניחות שאתם מגדירים מדיניות אבטחה שתחול על מאזן עומסים חיצוני גלובלי קיים של אפליקציות או על מאזן עומסים קלאסי של אפליקציות ושירות לקצה העורפי. דוגמה לאופן מילוי השדות מופיעה בקטע יצירת הדוגמה.
המסוף
יצירת כללי מדיניות אבטחה וכללים ב-Cloud Armor וצירוף כללי מדיניות אבטחה לשירות קצה עורפי:
נכנסים לדף Google Cloud Armor policies במסוף Cloud de Confiance .
לוחצים על Create policies.
בשדה Name, מזינים את שם המדיניות.
אופציונלי: מזינים תיאור של המדיניות.
בקטע סוג המדיניות בוחרים באפשרות מדיניות אבטחה של ה-Backend או מדיניות אבטחה של Edge.
בקטע פעולת ברירת מחדל של כלל, בוחרים באפשרות אישור כדי להגדיר כלל ברירת מחדל שמאפשר גישה, או באפשרות דחייה כדי להגדיר כלל ברירת מחדל שאוסר גישה לכתובת IP או לטווח כתובות IP.
כלל ברירת המחדל הוא כלל בעדיפות הכי נמוכה, והוא נכנס לתוקף רק אם אף כלל אחר לא חל.
אם מגדירים כלל Deny, בוחרים הודעה לDeny status. זו הודעת השגיאה שמוצגת ב-Cloud Armor אם משתמש ללא גישה מנסה לקבל גישה.
לא משנה איזה סוג כלל מגדירים, לוחצים על השלב הבא.
מוסיפים עוד כללים:
- לוחצים על הוספת כלל.
- אופציונלי: מזינים תיאור לכלל.
בוחרים מצב:
- מצב בסיסי: מאפשר או דוחה תנועה על סמך כתובות IP או טווחי כתובות IP.
- מצב מתקדם: מאפשר או דוחה תנועה על סמך ביטויי כללים.
בשדה התאמה, מציינים את התנאים שבהם הכלל חל:
- מצב בסיסי: מזינים כתובות IP או טווחי כתובות IP שצריכים להתאים לכלל.
- מצב מתקדם: מזינים ביטוי או ביטויי משנה כדי לבצע הערכה של בקשות נכנסות. במאמר הגדרת מאפייני שפה של כללים מותאמים אישית מוסבר איך לכתוב את הביטויים.
בקטע פעולה, בוחרים באפשרות אישור או דחייה כדי לאשר או לדחות תנועה אם הכלל תואם.
כדי להפעיל את מצב התצוגה המקדימה, מסמנים את תיבת הסימון הפעלה. במצב תצוגה מקדימה, אפשר לראות איך הכלל מתנהג, אבל הכלל לא מופעל.
מזינים את העדיפות של הכלל. הערך יכול להיות כל מספר שלם חיובי בין 0 ל-2,147,483,646, כולל. מידע נוסף על סדר ההערכה מופיע במאמר סדר ההערכה של הכללים.
לוחצים על סיום.
כדי להוסיף עוד כללים, לוחצים על הוספת כלל וחוזרים על השלבים הקודמים. אחרת, לוחצים על השלב הבא.
החלת המדיניות על יעדים:
- לוחצים על הוספת יעד.
- ברשימה יעד, בוחרים יעד.
- כדי להוסיף עוד יעדים, לוחצים על הוספת יעד.
- לוחצים על סיום.
- לוחצים על יצירת מדיניות.
gcloud
כדי ליצור כללי מדיניות אבטחה חדשים ב-Cloud Armor, משתמשים בפקודה
gcloud compute security-policies create.בשדה
type, משתמשים ב-CLOUD_ARMORכדי ליצור מדיניות אבטחה של קצה העורפי או ב-CLOUD_ARMOR_EDGEכדי ליצור מדיניות אבטחה של קצה הרשת. הדגלtypeהוא אופציונלי. אם לא מציינים סוג, נוצרת כברירת מחדל מדיניות אבטחה של ה-Backend:gcloud compute security-policies create NAME \ [--type=CLOUD_ARMOR|CLOUD_ARMOR_EDGE] \ [--file-format=FILE_FORMAT | --description=DESCRIPTION] \ [--file-name=FILE_NAME]
מחליפים את מה שכתוב בשדות הבאים:
NAME: השם של מדיניות האבטחה-
DESCRIPTION: תיאור מדיניות האבטחה
הפקודה הבאה מעדכנת מדיניות שיצרתם קודם, מפעילה ניתוח של JSON ומשנה את רמת היומן ל-
VERBOSE:gcloud compute security-policies update my-policy \ --json-parsing=STANDARD \ --log-level=VERBOSEכדי להוסיף כללים למדיניות אבטחה, משתמשים בפקודה
gcloud compute security-policies rules create PRIORITY.gcloud compute security-policies rules create PRIORITY \ [--security-policy POLICY_NAME] \ [--description DESCRIPTION] \ --src-ip-ranges IP_RANGE,... | --expression EXPRESSION \ --action=[ allow | deny-403 | deny-404 | deny-502 ] \ [--preview]מחליפים את
PRIORITYבעדיפות שהוקצתה לכלל במדיניות. מידע על אופן הפעולה של עדיפות הכללים זמין במאמר סדר ההערכה של הכללים.לדוגמה, הפקודה הבאה מוסיפה כלל לחסימת תעבורה מטווח כתובות ה-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"אם מוסיפים את הדגל
--preview, הכלל נוסף למדיניות אבל לא נאכף, וכל תנועה שמפעילה את הכלל רק נרשמת ביומן.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" \ --previewמשתמשים בדגל
--expressionכדי לציין תנאי בהתאמה אישית. מידע נוסף זמין במאמר בנושא הגדרת מאפייני שפה של כללים מותאמים אישית. הפקודה הבאה מוסיפה כלל שמאפשר תנועה מכתובת ה-IP1.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('cookie_name=cookie_value')" \ --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-403" \ --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"הפקודה הבאה מוסיפה כלל שמשתמש בביטוי שהוגדר מראש כדי לאפשר גישה מכל כתובות ה-IP ברשימת כתובות IP עם שם:
gcloud compute security-policies rules create 1000 \ --security-policy my-policy \ --expression "evaluatePreconfiguredWaf('sourceiplist-fastly')" \ --action "allow"
הגדרת מדיניות אבטחה למאזני עומסים חיצוניים אזוריים של אפליקציות (ALB)
בקטע הזה מוסבר איך להגדיר מדיניות אבטחה של Cloud Armor בהיקף אזורי למאזני עומסים חיצוניים אזוריים של אפליקציות.
הגנה על עומסי עבודה (workload) מאוזנים אזורית
כדי להגדיר מדיניות אבטחה להגנה על שירות קצה עורפי בהיקף אזורי:
יוצרים מדיניות אבטחה בהיקף אזורי.
gcloud compute security-policies create POLICY_NAME \ --type=CLOUD_ARMOR \ --region=REGION
מצרפים את מדיניות האבטחה בהיקף אזורי לשירות לקצה העורפי בהיקף אזורי. מחליפים את
BACKEND_NAMEבשם של שירות הקצה העורפי הקיים בהיקף אזורי.gcloud compute backend-services update BACKEND_NAME \ --security-policy=POLICY_NAME \ --region=REGION
החלת מדיניות אבטחה של Cloud Armor בהיקף אזורי
נניח שאתם אדמינים של אבטחה שרוצים לעמוד בדרישה של מיקום נתונים, שלפיה כל עומסי העבודה של ה-Backend וכללי ה-WAF צריכים להיות פרוסים באזור ספציפי. נניח שביצעתם את הפעולות הבאות מראש:
- יצרתם שירותים לקצה עורפי עם איזון עומסים בהיקף אזורי באזור.
- השבתתם כללי מדיניות קיימים לאבטחה בהיקף גלובלי בפריסה.
- יצרתם מדיניות אבטחה בהיקף אזורי וצירפתם אותה לאותו אזור (כמו בקטע הקודם).
אפשר להוסיף כללי WAF וכללים מתקדמים אחרים למדיניות, תוך עמידה בדרישה, באמצעות פקודות הדוגמה הבאות:
הוספת כלל WAF למדיניות:
gcloud compute security-policies rules create 1000 --action=deny-404 \ --expression="evaluatePreconfiguredWaf('xss-v33-stable', ['owasp-crs-v030301-id941100-xss', 'owasp-crs-v030301-id941160-xss'])" \ --security-policy=POLICY_NAME \ --region=REGIONמוסיפים כלל מתקדם למדיניות:
gcloud compute security-policies rules create 1000 --action=allow \ --expression="has(request.headers['cookie']) && request.headers['cookie'].contains('80=EXAMPLE')" \ --security-policy=POLICY_NAME \ --region=REGIONמוסיפים כלל להגבלת קצב של יצירת בקשות למדיניות:
gcloud compute security-policies rules create 1000 --action=throttle \ --src-ip-ranges="1.1.1.1/32" \ --rate-limit-threshold-count=1000 \ --rate-limit-threshold-interval-sec=120 \ --conform-action="allow" \ --exceed-action="deny-429" \ --enforce-on-key=IP \ --ban-duration-sec=999 \ --ban-threshold-count=5000 \ --ban-threshold-interval-sec=60 \ --security-policy=POLICY_NAME \ --region=REGION