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

מזהה אזור

REGION_ID הוא קוד מקוצר ש-Google מקצה על סמך האזור שבוחרים כשיוצרים את האפליקציה. הקוד לא תואם למדינה או למחוז, למרות שחלק ממזהי האזורים עשויים להיראות דומים לקודים נפוצים של מדינות ומחוזות. באפליקציות שנוצרו אחרי פברואר 2020, REGION_ID.r נכלל בכתובות URL של App Engine. באפליקציות קיימות שנוצרו לפני התאריך הזה, מזהה האזור הוא אופציונלי בכתובת ה-URL.

מידע נוסף על מזהי אזורים

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

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

המסוף

  1. עוברים לדף App Engine Services (שירותי App Engine).

    כניסה לדף Services

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

gcloud

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

gcloud app services describe SERVICE

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

לדוגמה, כדי לראות את הגדרות ה-Ingress ומידע נוסף על הפעלת שירות ברירת המחדל:

gcloud app services describe default

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

המסוף

  1. עוברים לדף App Engine Services (שירותי App Engine).

    כניסה לדף Services

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

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

  4. בוחרים את הגדרת הכניסה הרצויה מהתפריט ולוחצים על שמירה.

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)

אם משתמשים ב-Serverless VPC Access, אפשר לציין את הגדרת היציאה לשירות App Engine.

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

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