ב-App Engine, אפשר ליצור חומת אש עם עד 1,000 כללים נפרדים עם עדיפות, שמאפשרים או מגבילים טווח של כתובות IP ורשתות משנה. האפליקציה תגיב רק לבקשות שמותרות על ידי חומת האש.
כדי ללמוד איך חומת האש של App Engine פועלת, ראו מידע נוסף על חומות אש.
לפני שמתחילים
כדי ליצור כללים בחומת האש של App Engine לאפליקציה, צריך להיות לכם אחד מתפקידי ה-IAM של App Engine הבאים, שכוללים את ההרשאות הנדרשות ליצירה או לשינוי של כללים בחומת האש:
- App Engine Admin
- עריכה
- בעלים
יצירת כללים לחומת האש
אפשר ליצור כלל לחומת האש באחת מהשיטות הבאות. חוזרים על השלבים האלה לכל כלל נוסף:
בדף Firewall rules במסוף Google Cloud יוצרים כלל לחומת האש:
-
נכנסים לדף Create a firewall rule במסוף Google Cloud :
-
מציינים את הפרטים של כלל חומת האש:
-
בשדה עדיפות מזינים מספר שלם כדי לציין את החשיבות היחסית של הכלל ולהגדיר את הסדר שבו הכלל נבדק.
הערכים החוקיים הם
1עד2147483646. הכלל הראשון שעובר הערכה הוא כלל בעדיפות1. עדיפות הכלל2147483647הוא הכלל האחרון שעובר הערכה והוא שמור לכלל `default`. -
בקטע פעולה במקרה של התאמה, מציינים אם לאשר או לדחות
בקשות שתואמות לכלל. כללים שהוגדרו ל
allowמעבירים את הבקשה לאפליקציה. כללים שהוגדרו לdenyמגיבים לבקשות עם שגיאת403 Forbidden. - בקטע טווח כתובות IP, מגדירים את טווח כתובות ה-IP שהכלל חל עליהן. טווח כתובות ה-IP צריך להיות מוגדר בסימון CIDR, יכול לכלול מסכות של רשתות משנה ותומך ב-IPv4 וב-IPv6.
- אופציונלי: בשדה Description, מוסיפים תיאור של הכלל באורך של עד 100 תווים.
-
בשדה עדיפות מזינים מספר שלם כדי לציין את החשיבות היחסית של הכלל ולהגדיר את הסדר שבו הכלל נבדק.
- לוחצים על שמירה כדי ליצור את הכלל.
-
בודקים את הכלל כדי לוודא שהעדיפות והפעולה מספקות את ההתנהגות הצפויה:
- לוחצים על בדיקת כתובת IP.
- מזינים את כתובת ה-IP שרוצים לאמת ולוחצים על בדיקה כדי לוודא שהכלל המתאים מוערך בצורה נכונה.
מריצים את הפקודות הבאות של gcloud
app firewall-rules כדי ליצור כלל לחומת האש:
-
כדי ליצור כלל בחומת האש, מריצים את הפקודה הבאה:
כאשר:gcloud app firewall-rules create PRIORITY --action ALLOW_OR_DENY --source-range IP_RANGE --description DESCRIPTION
-
PRIORITY הוא מספר שלם בין
1ל-2147483646שמגדיר את החשיבות של הכלל ואת הסדר שבו הוא מוערך. עדיפות1היא הכלל הראשון שמוערך. העדיפות2147483647היא הכלל האחרון שעובר הערכה והיא שמורה לכלל `default`. -
ALLOW_OR_DENY מציין אם לאשר או לדחות גישה לבקשות שתואמות לכלל. הערכים התקינים הם
allowאוdeny. כללים שהוגדרו לallowמעבירים את הבקשה לאפליקציה. כללים שהוגדרו לdenyמגיבים לבקשות עם שגיאה403 Forbidden. - ההגדרה IP_RANGE מגדירה את טווח כתובות ה-IP שהכלל חל עליהן. טווח כתובות ה-IP צריך להיות מוגדר בסימון CIDR, יכול לכלול מסכות של תת-רשתות ותומך ב-IPv4 וב-IPv6.
- DESCRIPTION הוא תיאור אופציונלי של הכלל, באורך של עד 100 תווים.
-
PRIORITY הוא מספר שלם בין
-
מריצים את הפקודה הבאה כדי לבדוק את הכלל ולוודא שהעדיפות והפעולה מספקות את ההתנהגות הצפויה:
כאשר IP_ADDRESS היא כתובת ה-IP שרוצים לבדוק ביחס לחומת האש.gcloud app firewall-rules test-ip IP_ADDRESS
-
מריצים את הפקודה הבאה כדי להציג רשימה של הכללים הקיימים:
gcloud app firewall-rules list
-
מריצים את הפקודה הבאה כדי למחוק כלל קיים:
כאשר PRIORITY הוא ערך העדיפות של הכלל שרוצים למחוק.gcloud app firewall-rules delete PRIORITY
- דוגמאות:
-
הדוגמאות הבאות יעזרו לכם ליצור את חומת האש:
-
מוסיפים כלל שמאפשר כתובת IPv6 ומסכה של רשת משנה, ואז בודקים את הכלל כדי לוודא שהוא נבדק לפני הכללים האחרים:
gcloud app firewall-rules create 123 --source-range fe80::3636:3bff:fecc:8778/128 --action allow gcloud app firewall-rules test-ip fe80::3636:3bff:fecc:8778
-
מוסיפים כלל לדחיית כתובת IPv4 ומסכה של רשת משנה, ואז בודקים את הכלל כדי לוודא שהוא מוערך בצורה מתאימה:
gcloud app firewall-rules create 123456 --source-range "74.125.0.0/16" --action deny gcloud app firewall-rules test-ip 74.125.0.8
-
מעדכנים את כלל ברירת המחדל ואז בודקים אותו כדי לוודא שהוא מגביל את כל כתובות ה-IP שלא תואמות לכללים אחרים:
gcloud app firewall-rules update default --action deny gcloud app firewall-rules test-ip 123.456.7.89
-
כדי ליצור כללים של חומת אש באופן פרוגרמטי עבור אפליקציית App Engine, אפשר להשתמש בשיטות
apps.firewall.ingressRules ב-Admin API.
כדי לבדוק כלל חומת אש ולוודא שהעדיפות והפעולה מספקות את ההתנהגות הצפויה, אפשר להשתמש בשיטה
apps.firewall.ingressRules.list ולציין את כתובת ה-IP שרוצים לבדוק בפרמטר matchingAddress.
הסבר על כללים לחומת אש ב-App Engine
חומת אש של App Engine מורכבת מרשימה מסודרת של כללים שיכולים לאפשר או לדחות גישה לאפליקציה מכתובת IP או מטווח כתובות IP שצוינו. הכלל חל על כל המשאבים של אפליקציית App Engine.
העדיפות של כלל חומת אש
כללי חומת האש מסודרים לפי חשיבות, שמוגדרת כערך מספרי בעדיפות של כל כלל. צריך לציין ערך עדיפות ייחודי לכל כלל, כי הוא מגדיר את החשיבות שלו ביחס לכללים האחרים בחומת האש. הערכים של סדר העדיפויות של כלל נעים מהערך הכי חשוב של 1 ועד לערך הכי פחות חשוב של 2147483647.
כל חומת אש כוללת כלל default שנוצר באופן אוטומטי עם העדיפות 2147483647, והוא חל על כל טווח כתובות ה-IP של האפליקציה. הכלל default תמיד מוערך אחרי כל שאר הכללים בחומת האש, והוא חל על כל הבקשות בכל כתובות ה-IP.
חומת האש מעריכה קודם את הכלל עם העדיפות הכי גבוהה.
כל שאר הכללים בחומת האש מוערכים ברצף עד שנמצא כלל שתואם לטווח כתובות ה-IP של הבקשה. כשנמצא כלל תואם, החיבור מאושר או נדחה, וכל הכללים הנותרים בחומת האש נדלגים. אם אף אחד מהכללים שהוגדרו ידנית בחומת האש לא תואם לבקשה, הכלל default מוערך.
לדוגמה, אם יוצרים כלל עם עדיפות 1, הוא תמיד ייבדק ראשון. אם בקשה נכנסת תואמת לכלל עם עדיפות 1, רק הכלל הזה מוערך וכל הכללים האחרים בחומת האש מדלגים, כולל הכלל default.
בדוגמה לחומת האש שבהמשך אפשר לראות איך העדיפות של כלל יכולה לשנות את ההתנהגות של חומת האש.
חומת אש לדוגמה
בדוגמה הזו, חברה הגדירה חומת אש כדי להעניק לצוות ההנדסה ולרשת הארגונית הפנימית גישה לאפליקציה שנמצאת בפיתוח. כללי חומת האש נוצרו עם פערים גדולים בין כל עדיפות כדי לאפשר צמיחה.
| עדיפות | פעולה | טווח כתובות IP | תיאור |
|---|---|---|---|
| 1000 | דחייה | 192.0.2.1 | דחיית הגישה של תוקף DoS. |
| 2000 | אישור | 198.51.100.2 | מאפשרת גישה למהנדס במשרד הלוויין. |
| 3000 | דחייה | 198.51.100.0/24 | הגישה לכל המבנים שאינם הנדסיים נחסמת. |
| 5,000 | אישור | 203.0.113.0/24 | מאפשרת גישה לרשת של הבניין הראשי. |
| 2147483647 | דחייה | * | פעולת ברירת מחדל |
אחרי שיוצרים את חומת האש, נניח שהבקשות הבאות מופנות לאפליקציה לדוגמה, ונציין את התגובה של האפליקציה:
- הבקשה מ-198.51.100.2 תואמת לכלל עם עדיפות 2000 ומותרת.
- הבקשה מכתובת 198.51.100.100 תואמת לכלל עם עדיפות 3,000 ונדחית.
- הבקשה מכתובת 203.0.113.54 תואמת לכלל עם עדיפות 5,000 ומותרת.
- הבקשה מכתובת 45.123.35.242 תואמת לכלל ברירת המחדל ותידחה.
פתרון של כללים סותרים
לדוגמה, נניח ששני סדרי העדיפות בחומת האש של החברה הוחלפו. אם מחליפים בין הכללים של העדיפויות 2000 ו-3000, אפשר לראות את ההתנהגות הלא מכוונת.
| עדיפות | פעולה | טווח כתובות IP | תיאור |
|---|---|---|---|
| 1000 | דחייה | 192.0.2.1 | דחיית הגישה של תוקף DoS. |
| 2000 | דחייה | 198.51.100.0/24 | שלילת הגישה לכל המבנים שאינם הנדסיים. |
| 3000 | אישור | 198.51.100.2 | מאפשרת גישה למהנדס במשרד הלוויין. |
| 5,000 | אישור | 203.0.113.0/24 | מאפשרת גישה לרשת של הבניין הראשי. |
| 2147483647 | דחייה | * | פעולת ברירת מחדל |
המהנדס במשרד הלוויין לא יוכל לגשת לאפליקציה של החברה כי העדיפות החדשה של הכלל אומרת שהוא אף פעם לא ייבדק. כתובת ה-IP של המהנדס 198.51.100.2 תואמת לכלל שמונע מכל מי שלא מהנדס בטווח 198.51.100.0/24 גישה, לפני הכלל שמאפשר גישה לכתובת ה-IP של המהנדס.
כדי לפתור את הבעיה, צריך להגדיר את העדיפות של הכלל שמאפשר גישה ל-198.51.100.2 כגבוהה יותר מהעדיפות של הכלל שמונע גישה לטווח כתובות ה-IP 198.51.100.0/24.
המאמרים הבאים
כדי לוודא שהגדרתם את האפליקציה בצורה מאובטחת ושהגדרתם את רמות הגישה המתאימות, מומלץ לעיין במאמרים בנושא אבטחת אפליקציות ובקרת גישה.