כתובות IP של משתמשים

בכללי מדיניות האבטחה של Google Cloud Armor שמסננים לפי כתובת IP, בדרך כלל נעשה שימוש בכתובת ה-IP של הלקוח של מבצע הקריאה. כשהשירותים שלכם נמצאים מאחורי מתווך, כמו רשת להעברת תוכן (CDN) של צד שלישי, כתובת ה-IP של הלקוח בשדה origin.ip היא כתובת ה-IP של המתווך האחרון, ולא של הלקוח המקורי.

התכונה "כתובת ה-IP של המשתמש" מאפשרת להגדיר שדה חלופי, origin.user_ip, כדי לפתור את הבעיה מכותרת שהספק במעלה הזרם מאכלס. אחר כך תוכלו להשתמש בשדה origin.user_ip בכללי מדיניות האבטחה כדי לציין את כתובת ה-IP שבה משתמשים בתכונות האלה. כשמשתמשים ב-origin.user_ip, אפשר להגדיר את האפשרות userIpRequestHeaders[] בשדה advancedOptionsConfig של מדיניות האבטחה.

איך פועלות כתובות IP של משתמשים

אתם מגדירים את Cloud Armor לחלץ את כתובת ה-IP של משתמש הקצה מכותרת בקשה ספציפית. הערך הזה מאכלס את השדה origin.user_ip, שבו אפשר להשתמש בכללים של מדיניות האבטחה.

אם הכותרות שצוינו ב-userIpRequestHeaders[] לא קיימות, או אם הערכים שלהן הם לא כתובות IP חוקיות, Cloud Armor חוזר לכתובת ה-IP של הלקוח (origin.ip). בדוגמה הבאה מוצגת השוואה ישירה למקרה ברירת המחדל.

origin.ip != origin.user_ip

בדוגמאות הבאות מוסבר איך להשתמש ב-origin.user_ip בשפת הכללים, ב-Google Threat Intelligence ובקבוצות של כתובות.

inIpRange

inIpRange(origin.user_ip, '9.9.9.0/24')

מידע נוסף על השימוש ב-inIpRange עם origin.user_ip זמין במאמר מאפיינים.

Google Threat Intelligence

evaluateThreatIntelligence('iplist-known-malicious-ips', origin.user_ip)

מידע נוסף זמין במאמר שימוש ב-Google Threat Intelligence.

קבוצות של כתובות

evaluateAddressGroup('example-address-group', origin.user_ip)

מידע נוסף זמין במאמר הגדרת קבוצות של כתובות.

קבוצות של כתובות ברמת הארגון

evaluateOrganizationAddressGroup('example-org-address-group', origin.user_ip)

מידע נוסף זמין במאמר שימוש בקבוצות של כתובות ברמת הארגון.

שיטות מומלצות

מכיוון שהערך של origin.user_ip נקבע לפי request header, שלקוח לא מהימן יכול לשנות, צריך לוודא שהתנועה מגיעה ממקור מהימן במעלה הזרם.

כדי לאמת את המקור במעלה הזרם, יוצרים מדיניות אבטחה עם שני כללים לפחות. הכלל הראשון, עם עדיפות גבוהה יותר, בודק אם כתובת ה-IP של הלקוח המיידי (origin.ip) שייכת לספק ה-upstream המהימן. הכלל השני, עם עדיפות נמוכה יותר, מחיל את הלוגיקה הרצויה באמצעות השדה origin.user_ip.

לדוגמה, אתם יכולים ליצור מדיניות עם שני הכללים הבאים:

  • כלל 1: evaluateThreatIntelligence('iplist-public-clouds', origin.ip)
  • כלל 2: inIpRange(origin.user_ip, '9.9.9.0/24')

המאמרים הבאים