מזהה אזור
הערך REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שאתם בוחרים כשאתם יוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות ה-URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.
בקטע הזה מוסבר איך להשתמש בהגדרות של תעבורת נתונים נכנסות כדי להגביל את הגישה של הרשת לאפליקציית App Engine. ברמת הרשת, כברירת מחדל, כל משאב באינטרנט יכול להגיע לאפליקציית App Engine בכתובת ה-URL של appspot או בדומיין מותאם אישית שהוגדר ב-App Engine. לדוגמה, כתובת ה-URL של appspot.com יכולה להיות בפורמט הבא: SERVICE_ID.PROJECT_ID.REGION_ID.r.appspot.com.
כדי לשנות את הגדרת ברירת המחדל הזו, צריך לציין הגדרה אחרת לתעבורת נתונים נכנסת. כל נתיבי הכניסה, כולל כתובת ה-URL שמוגדרת כברירת מחדל (appspot.com), כפופים להגדרת הכניסה. התעבורה הנכנסת מוגדרת ברמת השירות.
הגדרות זמינות של תעבורת נתונים נכנסת (ingress)
אלה ההגדרות הזמינות:
| הגדרה | תיאור |
|---|---|
| פנימי |
הכי מגביל. מאפשרת בקשות ממשאבים שמצורפים לרשתות ה-VPC של הפרויקט, כמו:
appspot.com.
בקשות ממקורות אחרים, כולל מהאינטרנט, לא יכולות להגיע לשירות בכתובת ה-URL של appspot.com או בדומיינים מותאמים אישית. אין תמיכה בריבוי דיירים, כלומר בכמה מתחמי אמון באותו פרויקט.
|
| איזון עומסים פנימי ו-Cloud Load Balancing | מאפשר בקשות מהמשאבים הבאים:
appspot.com עוקפות את מאזן העומסים החיצוני של האפליקציות (ALB), ולכן ההגדרה הזו מונעת מבקשות חיצוניות להגיע לכתובת ה-URL של appspot.com.
|
| הכול |
הכי פחות מגביל. מאפשרת את כל הבקשות, כולל בקשות ישירות מהאינטרנט לכתובת ה-URL של appspot.com.
|
גישה לשירותים פנימיים
צריך להתחשב בשיקולים הבאים:
בבקשות מ-VPC משותף, התנועה נחשבת פנימית רק אם אפליקציית App Engine פרוסה בפרויקט המארח של ה-VPC המשותף. אם אפליקציית App Engine נפרסת בפרויקט שירות של VPC משותף, רק תנועה מרשתות שבבעלות הפרויקט של האפליקציה היא פנימית. כל תנועה אחרת, כולל תנועה מרשתות VPC משותפות אחרות, היא חיצונית.
כשניגשים לשירותים פנימיים, קוראים להם כרגיל באמצעות כתובות ה-URL הציבוריות שלהם, כתובת ה-URL שמוגדרת כברירת מחדל
appspot.comאו דומיין מותאם אישית שמוגדר ב-App Engine.לבקשות ממכונות וירטואליות של Compute Engine או ממשאבים אחרים שפועלים בתוך רשת VPC באותו פרויקט, לא נדרשת הגדרה נוספת.
בקשות ממשאבים ברשתות VPC באותו פרויקט מסווגות כפנימיות, גם אם למשאב שממנו הן מגיעות יש כתובת IP ציבורית.
בקשות ממשאבים מקומיים שמחוברים לרשת ה-VPC דרך Cloud VPN נחשבות כ
internal.
- כדי לשלוח בקשות משירותים אחרים של App Engine, או מפונקציות Cloud Run באותו פרויקט, צריך לחבר את השירות או הפונקציה לרשת VPC ולנתב את כל תעבורת הנתונים היוצאת דרך המחבר, כמו שמתואר במאמר התחברות לרשת VPC משותפת.
הצגת ההגדרות של תעבורת הנתונים הנכנסת (ingress)
המסוף
נכנסים לדף App Engine Services.
מאתרים את העמודה Ingress. לכל שירות, הערך בעמודה הזו מציג את הגדרת התעבורה הנכנסת כאחת מהאפשרויות הבאות: All (ברירת המחדל), Internal + איזון עומסים או Internal.
gcloud
כדי להציג את הגדרת תעבורת הנתונים הנכנסת של שירות באמצעות ה-CLI של gcloud:
gcloud app services describe SERVICE
מחליפים את SERVICE בשם השירות.
לדוגמה, כדי להציג את הגדרות תעבורת הנתונים הנכנסת ומידע נוסף על שירות ברירת המחדל, מריצים את הפקודה:
gcloud app services describe default
עריכת ההגדרות של תעבורת הנתונים הנכנסת (ingress)
המסוף
נכנסים לדף App Engine Services.
בוחרים את השירות שרוצים לערוך.
לוחצים על Edit ingress setting.
בוחרים את הגדרת התעבורה הנכנסת הרצויה מהתפריט ולוחצים על Save.
gcloud
כדי לעדכן את הגדרת התעבורה הנכנסת של שירות באמצעות ה-CLI של gcloud:
gcloud app services update SERVICE --ingress=INGRESS
מחליפים את:
- SERVICE: שם השירות.
- INGRESS: שליטה בתעבורת נתונים נכנסת (ingress) שרוצים להחיל. אחד מהערכים הבאים:
all,internal-onlyאוinternal-and-cloud-load-balancing.
לדוגמה:
כדי לעדכן את שירות ברירת המחדל של אפליקציית App Engine כך שיקבל תעבורת נתונים רק מרשתות Cloud Load Balancing ורשתות VPC שנמצאות באותו פרויקט:
gcloud app services update default --ingress=internal-and-cloud-load-balancing
כדי לעדכן שירות בשם internal-requests כך שיקבל תנועה רק מרשתות VPC שנמצאות באותו פרויקט:
gcloud app services update internal-requests --ingress=internal-only
הגדרות של תעבורת נתונים יוצאת (egress)
אם אתם משתמשים ב-Direct VPC egress או בחיבור לרשת (VPC) מאפליקציית serverless, אתם יכולים לציין את הגדרת תעבורת הנתונים היוצאת לשירות App Engine.
לתעבורת נתונים יוצאת של Direct VPC, מגדירים את השדה vpc_egress בקובץ app.yaml. מידע נוסף זמין במאמר הגדרת שירות App Engine עם Direct VPC egress.
שאר הסעיף הזה חל על מחברי גישה ל-VPC ללא שרת (Serverless).
כברירת מחדל, רק בקשות לכתובות IP פנימיות ולשמות DNS פנימיים מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless. אתם יכולים לציין את הגדרת תעבורת הנתונים היוצאת של השירות בקובץ app.yaml.
הגדרות תעבורת הנתונים היוצאת לא תואמות לשירות אחזור של כתובות אתרים.
אם משתמשים בספרייה urlfetch, המערכת מתעלמת מהגדרות תעבורת הנתונים היוצאת, והבקשות לא מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless.
כדי להגדיר את התנהגות תעבורת הנתונים היוצאת של שירות App Engine:
מוסיפים את המאפיין
egress_settingלשדהvpc_access_connectorבקובץapp.yamlשל השירות:vpc_access_connector: name: projects/PROJECT_ID/locations/REGION/connectors/CONNECTOR_NAME egress_setting: EGRESS_SETTING
מחליפים את:
-
PROJECT_IDבמזהה הפרויקט ב- Google Cloud REGIONבאזור שבו נמצא המחברCONNECTOR_NAMEבשם של המחבר.EGRESS_SETTINGבאחת מהאפשרויות הבאות:- ברירת מחדל:
private-ranges-only. רק בקשות לטווחי כתובות IP מסוג RFC 1918 ו-RFC 6598 או לשמות DNS פנימיים מנותבות לרשת ה-VPC. כל שאר הבקשות מנותבות ישירות לאינטרנט. all-trafficכל הבקשות היוצאות מהשירות מנותבות לרשת ה-VPC. לאחר מכן, הבקשות כפופות לכללי חומת האש, ה-DNS וכללי המסלול של רשת ה-VPC. חשוב לזכור שניתוב כל הבקשות היוצאות לרשת ה-VPC מגדיל את כמות תעבורת הנתונים היוצאת שמטופלת על ידי המחבר של "חיבור לרשת (VPC) מאפליקציית serverless", ועלול לגרור חיובים.
- ברירת מחדל:
-
פורסים את השירות:
gcloud app deploy
כשמשתמשים ב-private-ranges-only, בקשות יוצאות לאינטרנט הציבורי משתמשות במאגר אזורי של כתובות IP דינמיות שמשותפות בין עומסי עבודה ללא שרת (serverless).
כדי להגן על חיבורים חיצוניים שרגישים למוניטין מפני חסימות של חומת אש של צד שלישי, או כדי לבודד עומסי עבודה מורשים של סריקת רשת ובדיקת עומסים, צריך להגדיר את תעבורת הנתונים היוצאת ל-all-traffic ולהגדיר את Cloud NAT עם כתובת IP סטטית לתעבורת נתונים יוצאת.