הגדרת שירותים פרטיים פנימיים בלבד

בדף הזה מוסבר איך להגדיר את הסביבה הגמישה ב-App Engine כדי לחשוף שירות רק בכתובת ה-IP הפנימית שלו.

כברירת מחדל, כשפורסים שירותים בסביבה הגמישה בפעם הראשונה, הם מקבלים גם כתובת IP פנימית וגם כתובת IP חיצונית זמנית. כתובת ה-IP החיצונית הזמנית מאפשרת לשירות לשלוח בקשות לשירותי App Engine עם דומיינים בהתאמה אישית, ולמשאבים באינטרנט. כתובות IP חיצוניות זמניות כרוכות בעלויות.

אם השירות לא דורש כתובת IP חיצונית, אתם יכולים למנוע מהשירות לשלוח בקשות למשאבים באינטרנט ולהפחית את העלויות על ידי הגבלת השירות לשימוש בכתובת ה-IP הפנימית שלו בלבד. הפעולה הזו לא מונעת מהשירות לקבל בקשות מהאינטרנט או משירותי App Engine עם דומיינים בהתאמה אישית, כי שם הדומיין שמוגדר במלואו של השירות עדיין גלוי מבחוץ.

מגבלות

להשבתת כתובות IP חיצוניות זמניות יש את המגבלות הבאות:

  • שירותים עם דומיינים מותאמים אישית: כדי לשלוח בקשות לשירותי App Engine עם דומיינים מותאמים אישית, צריך להגדיר את Cloud NAT.
  • משאבים חיצוניים: כדי לשלוח בקשות למשאבים חיצוניים, צריך להגדיר את Cloud NAT.
  • תלות בגישה פרטית ל-Google: במכונות שבהן מצב ה-IP מוגדר ל-internal, נדרשת גישה פרטית ל-Google ברשת המשנה של היעד.
  • רשתות מדור קודם: ברשתות מדור קודם אי אפשר להשתמש בגישה פרטית ל-Google, ולכן אי אפשר להשבית בהן כתובות IP חיצוניות זמניות.

לפני שמתחילים

כדי לפרוס אפליקציות בסביבה גמישה בלי כתובות IP חיצוניות, צריך להפעיל גישה פרטית ל-Google ברשת המשנה המטורגטת.

הכנת רשת ה-VPC המשותפת

אם אתם משתמשים ב-VPC משותף, בצעו את השלבים הבאים כדי להכין את רשת ה-VPC המשותפת להגדרה נוספת.

  1. מוודאים שיש לכם מסלול שתואם לגישה פרטית ל-Google. בדרך כלל, המסלול שמוגדר כברירת מחדל ברשת תואם לגישה פרטית ל-Google. לגבי נתיבים אחרים, צריך לוודא שהנתיב מוגדר באופן הבא.

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Instance tags: INSTANCE_TAGS
    Next hop: DEFAULT_INTERNET_GATEWAY
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SHARED_VPC_NETWORK_NAME: השם של רשת ה-VPC המשותפת.
    • ‫INSTANCE_TAGS: אם לא משתמשים בתגי מכונות, לא צריך לציין שום דבר בשדה הזה. אם אתם משתמשים בתגי מכונות, הוסיפו את aef-instances לרשימת תגי המכונות.
    • ‫DEFAULT_INTERNET_GATEWAY: שער ברירת המחדל לאינטרנט.

    למידע נוסף על מסלולים תואמים לגישה פרטית ל-Google, קראו את המאמר בנושא אפשרויות ניתוב במסמכי התיעוד של גישה פרטית ל-Google.

  2. מוודאים שיש כלל חומת אש שתואם לגישה הפרטית ל-Google. צריך להגדיר את הכלל של חומת האש באופן הבא:

    Network: SHARED_VPC_NETWORK_NAME
    Destination IP address range: 0.0.0.0/0
    Destination filter: IP ranges
    Direction of traffic: Egress
    Attach on match: Allow
    Instance tags: INSTANCE_TAGS
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫SHARED_VPC_NETWORK_NAME: השם של רשת ה-VPC המשותפת.
    • ‫INSTANCE_TAGS: אם לא משתמשים בתגי מכונות, לא צריך לציין שום דבר בשדה הזה. אם אתם משתמשים בתגי מכונות, הוסיפו את aef-instances לרשימת תגי המכונות.

    למידע נוסף על כללי חומת אש שתואמים לגישה פרטית ל-Google, קראו את המאמר הגדרת חומת אש במסמכי התיעוד של גישה פרטית ל-Google.

הגדרת השירות כך שישתמש רק בכתובת ה-IP הפנימית שלו

  1. מעדכנים את Google Cloud CLI. כך תוכלו לוודא שאתם משתמשים בגרסה של ה-CLI של gcloud שתומכת בכתובות IP פרטיות לאפליקציות בסביבה הגמישה.

    gcloud components update
  2. בקובץ app.yaml, מוסיפים את השדה instance_ip_mode לקטע network ומגדירים אותו כ-internal.

    • אם בקובץ app.yaml כבר יש קטע network, מוסיפים את השורה הבאה בתוך הקטע network:

      instance_ip_mode: internal

    • אם בקובץ app.yaml אין קטע network, יוצרים את הקטע ומציינים את מצב ה-IP של המכונה על ידי הוספת השורות הבאות:

      network:
       instance_ip_mode: internal

    שומרים את השינויים.

  3. פורסים את השירות.

    gcloud beta app deploy
  4. כדי לאמת את ההגדרות, בודקים את הדף Instances במסוף Google Cloud .

    כניסה לדף Instances

    גוללים למטה לטבלה Instances (מתחת לתרשים Summary). בעמודה External IP, מוודאים שלא מופיעה כתובת IP חיצונית. אם לא מופיעה כתובת IP בעמודה הזו, למכונה אין כתובת IP חיצונית. למרות שהשדה הזה ריק, למכונה עדיין יש כתובת IP פנימית.

שליחת בקשות חיצוניות בלי כתובת IP חיצונית

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

במקרים הבאים, כדאי להגדיר את השירות כך שישתמש ב-instance_ip_mode: internal עם Cloud NAT וכתובות IP חיצוניות סטטיות ייעודיות:

  • אתם מתחברים למסד נתונים חיצוני או ל-API שדורש רשימת היתרים של כתובות IP או כלל של חומת אש.
  • אתם מתחברים לנקודות קצה חיצוניות שרגישות למוניטין, כמו שערי תשלום, מסדי נתונים מתארחים או ממשקי API של שותפים שמוגנים על ידי חומות אש ליישומי אינטרנט (WAF) של צד שלישי. תעבורת נתונים קודמת או רועשת במאגרים משותפים של כתובות IP זמניות יכולה לפגוע במוניטין של כתובת ה-IP, ולגרום לחומות אש חיצוניות של אפליקציות אינטרנט (WAF) לחסום או להגביל את הבקשות שלכם עם שגיאות HTTP 403 או זמן קצוב לתפוגה של החיבור.
  • אתם מריצים עומסי עבודה של סריקת רשת מורשית, ספירת יציאות, טביעת אצבע של מארח, בדיקת פגיעויות, גירוד נתונים מהאינטרנט או בדיקת עומסים.

כדי לנתב בקשות אינטרנט יוצאות דרך Cloud NAT:

  1. פועלים לפי השלבים בקטע הגדרת השירות לשימוש בכתובת ה-IP הפנימית שלו בלבד.

  2. פועלים לפי השלבים במאמר הגדרת Cloud NAT ומקצים לשער כתובות IP חיצוניות סטטיות שמורות.

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

למידע נוסף על הגישה הזו, קראו את המאמר פריסת Cloud NAT לאחזור במרכז הארכיטקטורה של Cloud.