הגדרות של תעבורת נתונים נכנסת (ingress)

מזהה אזור

הערך 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 מוגדר ברמת השירות.

הגדרות זמינות של תעבורת נתונים נכנסת (ingress)

אלה ההגדרות הזמינות:

הגדרה תיאור
פנימי הכי מגביל. מאפשר בקשות ממשאבים שמצורפים לרשתות ה-VPC של הפרויקט, כמו:
בקשות מהמקורות האלה נשארות ברשת של Google, גם אם הן ניגשות לשירות שלכם בכתובת ה-URL של appspot.com. בקשות ממקורות אחרים, כולל מהאינטרנט, לא יכולות להגיע לשירות בכתובת ה-URL של appspot.com או בדומיינים מותאמים אישית. אין תמיכה בריבוי דיירים, כלומר בכמה מתחמי אמון באותו פרויקט.
איזון עומסים פנימי ואיזון עומסים ב-Cloud מאפשר בקשות מהמשאבים הבאים:
  • משאבים שמותרים לפי ההגדרה הפנימית המגבילה יותר
  • מאזן עומסים חיצוני של אפליקציות (ALB)
כדי לקבל בקשות ממאזן עומסים חיצוני של אפליקציות (ALB) אבל לא ישירות מהאינטרנט, משתמשים בהגדרה "איזון עומסים פנימי ואיזון עומסים ב-Cloud". בקשות לכתובת ה-URL של 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 או Cloud Run באותו פרויקט, צריך לחבר את השירות או הפונקציה לרשת VPC ולנתב את כל תעבורת הנתונים היוצאת דרך המחבר, כמו שמתואר במאמר התחברות לרשת VPC משותפת.

הצגת ההגדרות של תעבורת נתונים נכנסת (ingress)

המסוף

  1. נכנסים לדף App Engine Services.

    כניסה לדף Services

  2. מאתרים את העמודה Ingress. לכל שירות, הערך בעמודה הזו מציג את הגדרת התעבורה הנכנסת כאחת מהאפשרויות הבאות: All (ברירת המחדל), Internal + איזון עומסים או Internal.

gcloud

כדי להציג את הגדרת התעבורה הנכנסת של שירות באמצעות ה-CLI של gcloud:

gcloud app services describe SERVICE

מחליפים את SERVICE בשם השירות.

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

gcloud app services describe default

עריכת ההגדרות של תעבורת הנתונים הנכנסת (ingress)

המסוף

  1. נכנסים לדף App Engine Services.

    כניסה לדף Services

  2. בוחרים את השירות שרוצים לערוך.

  3. לוחצים על עריכת הגדרת תעבורת הנתונים הנכנסת.

  4. בוחרים את הגדרת התעבורה הנכנסת הרצויה מהתפריט ולוחצים על 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)

אם אתם משתמשים בגישה ל-VPC ללא שרת (Serverless), אתם יכולים לציין את הגדרת התעבורה היוצאת לשירות App Engine.

כברירת מחדל, רק בקשות לכתובות IP פנימיות ולשמות DNS פנימיים מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless. אתם יכולים לציין את הגדרת תעבורת הנתונים היוצאת של השירות בקובץ app.yaml.

הגדרות תעבורת הנתונים היוצאת לא תואמות לשירות אחזור של כתובות אתרים. כשמשתמשים בספרייה urlfetch, המערכת מתעלמת מהגדרות התעבורה היוצאת, והבקשות לא מנותבות דרך מחבר של חיבור לרשת (VPC) מאפליקציית serverless.

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

  1. מוסיפים את המאפיין 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)", ועלול לגרור חיובים.
  2. פורסים את השירות:

    gcloud app deploy
    

כשמשתמשים ב-private-ranges-only, בקשות יוצאות לאינטרנט הציבורי משתמשות במאגר אזורי של כתובות IP דינמיות שמשותפות לעומסי עבודה ללא שרת (serverless). כדי להגן על חיבורים חיצוניים שרגישים למוניטין מפני חסימות של חומת אש של צד שלישי, או כדי לבודד עומסי עבודה מורשים של סריקת רשת ובדיקת עומסים, צריך להגדיר את הגדרת תעבורת הנתונים היוצאת ל-all-traffic ולהגדיר את Cloud NAT עם כתובת IP סטטית לתעבורת נתונים יוצאת.