בדף הזה מוסבר איך להגדיר ניתוח של תוכן גוף הבקשה. זו תכונה אופציונלית שאפשר להשתמש בה עם מדיניות האבטחה של Cloud Armor.
כברירת מחדל, Cloud Armor בודק את התוכן המלא של גוף הבקשה כמחרוזת אחידה (בכפוף למגבלות גודל הגוף) מול החתימות בכללי ה-WAF שהוגדרו מראש. בבקשות שמכילות קידוד חלופי כמו JSON, רכיבים מבניים של ההודעה (לא כאלה שהמשתמש ציין) יכולים להפעיל התאמות לחתימות של WAF שהוגדרו מראש. כדי להימנע מרעשי רקע ולהפחית את הסיכון לתוצאות חיוביות שגויות, מומלץ להגדיר את Cloud Armor כך שיאפשר ניתוח חלופי לכל סוג תוכן נתמך אם עומסי העבודה המוגנים שלכם מבצעים את הפעולות הבאות:
- הצגת ממשקי API בארכיטקטורת REST
- שימוש ב-GraphQL
- מקבלים בקשות עם תוכן מקודד ב-JSON.
לכל מדיניות אבטחה, אפשר להפעיל או להשבית את ניתוח ה-JSON של גופי הבקשות. אם הכותרת Content-Type מוגדרת לערך application/json, משתמשים בדגל --json-parsing ב-Google Cloud CLI.
האפשרות הזו מושבתת כברירת מחדל. התחביר של הדגל הוא:
--json-parsing=[STANDARD | STANDARD_WITH_GRAPHQL | DISABLED]
הדגל זמין רק ב-gcloud compute security-policies update. אי אפשר ליצור מדיניות אבטחה חדשה באמצעות האפשרות הזו, אלא אם יוצרים מדיניות אבטחה בקובץ ואז מייבאים את הקובץ הזה. מידע נוסף זמין במאמר בנושא ייבוא מדיניות אבטחה.
שימוש בניתוח JSON
בדוגמה הבאה, מגדירים רשימה של ערכי כותרות Content-Type מותאמים אישית שעליהם חל ניתוח חלופי. בדוגמה הזו מתבצע עדכון של מדיניות האבטחה POLICY_NAME כדי להפעיל ניתוח של JSON, ומצוינים סוגי התוכן application/json, application/vnd.api+json, application/vnd.collection+json ו-application/vnd.hyper+json:
gcloud compute security-policies update POLICY_NAME \
--json-parsing STANDARD \
--json-custom-content-types "application/json,application/vnd.api+json,application/vnd.collection+json,application/vnd.hyper+json"
שימוש בניתוח של GraphQL
כדי להגדיר ניתוח של GraphQL, מעדכנים את מדיניות האבטחה ומגדירים את הדגל --json-parsing לערך STANDARD_WITH_GRAPHQL:
gcloud compute security-policies update POLICY_NAME \
--json-parsing STANDARD_WITH_GRAPHQL
רישום ביומן
כל בקשת HTTP(S) שנבדקת מול מדיניות אבטחה של Cloud Armor נרשמת ביומן באמצעות Cloud Logging. היומנים מספקים פרטים כמו שם מדיניות האבטחה שהוחלה, הכלל התואם והאם הכלל נאכף. רישום ביומן של בקשות למשאבים חדשים של שירות לקצה העורפי מושבת כברירת מחדל. כדי לרשום ביומן את הבקשות של Cloud Armor, צריך להפעיל את הגדרת הרישום ביומן של HTTP(S) לכל שירות לקצה העורפי שמוגן על ידי מדיניות אבטחה. מידע נוסף זמין במאמר רישום ביומן ומעקב אחרי מאזן עומסים של אפליקציות (ALB) חיצוני ברמה הגלובלית.
מגבלות
כשמגדירים ניתוח של JSON, חשוב לקחת בחשבון את המגבלות הבאות:
כברירת מחדל, Cloud Armor בודק את גוף הבקשה עד 8 kB הראשונים. אפשר להגדיר את המגבלה הזו ל-8 kB, 16 kB, 32 kB, 48 kB או 64 kB. אם תוכן ה-JSON גדול יותר ממגבלת הבדיקה שהוגדרה, Cloud Armor יבצע ניתוח של ה-JSON עד למגבלה הזו, ואז יבדוק אותו באמצעות כל אחד מכללי ה-WAF שהוגדרו מראש.
מידע נוסף על הגדרת מגבלת הבדיקה של גוף הבקשה כשמשתמשים בכללי WAF שהוגדרו מראש מופיע במאמר מגבלת הבדיקה של גוף הבקשה.
אם מנתח ה-JSON לא מחזיר תוצאה, יכול להיות שתתבצע בדיקה של ה-URI. אם מנתח ה-URI לא מחזיר פרמטרים של שם-ערך או מחזיר רק פרמטרים חלקיים של שם-ערך, יכול להיות שהמחרוזת כולה או חלקה תטופל כשם הפרמטר לצורך הבדיקה.