בדף הזה מוסבר איך להגדיר ניתוח של תוכן גוף הבקשה. זו תכונה אופציונלית שאפשר להשתמש בה עם מדיניות האבטחה של 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 בודק את גוף הבקשה עד 64 kB הראשונים. אפשר להגדיר את המגבלה הזו ל-8 kB, 16 kB, 32 kB, 48 kB או 64 kB. אם תוכן ה-JSON גדול ממגבלת הבדיקה שהוגדרה, Cloud Armor יחיל ניתוח JSON עד למגבלה הזו, ואז יבדוק את התוכן באמצעות כל אחד מכללי ה-WAF שהוגדרו מראש.
מידע נוסף על הגדרת מגבלת הבדיקה של גוף הבקשה כשמשתמשים בכללי WAF שהוגדרו מראש זמין במאמר מגבלת הבדיקה של גוף הבקשה.
Cloud Armor יכול לנתח ולהחיל כללי WAF שהוגדרו מראש על תוכן בפורמט JSON (כולל בקשות GraphQL over HTTP בפורמט תקין) אם ניתוח JSON מופעל עם ערך תואם בכותרת
Content-Type. למידע נוסף, אפשר לעיין במאמר בנושא ניתוח JSON. אם Cloud Armor לא מצליח לנתח תוכן JSON באופן מלא, יכול להיות שהוא יחזור לעיבוד הגוף כולו כמחרוזת אחת בקידוד URL.אם מנתח ה-JSON לא מחזיר תוצאה, יכול להיות שיתבצע ניתוח של ה-URI. אם מנתח ה-URI לא מחזיר פרמטרים של שם-ערך או מחזיר רק פרמטרים חלקיים של שם-ערך, יכול להיות שהמחרוזת כולה או חלקה תטופל כשם הפרמטר לצורך הבדיקה.