שימוש בסביבה גמישה של App Engine ברשת VPC משותפת

בסביבה הגמישה של App Engine, אפשר לציין רשת לפריסת המופעים של השירות. בדף הזה מוסבר איך להגדיר את הפרויקט כך שישתמש בסביבה הגמישה של App Engine ברשת VPC משותפת.

מידע נוסף על הגדרת רשת VPC משותפת זמין במאמר בנושא הקצאת VPC משותף.

הגדרה של סביבה גמישה ב-App Engine עם VPC משותף

פריסת מכונות של סביבה גמישה של App Engine ברשת VPC משותפת כוללת שלושה שלבים:

  1. יצירת כלל חומת אש שמאפשר תעבורת נתונים של סביבה גמישה של App Engine ברשת VPC משותפת

  2. מתן הרשאות מתאימות לחשבונות שירות בפרויקט השירות של ה-VPC המשותף

  3. הגדרת שירותי App Engine לשימוש ברשת VPC משותפת

אם משתמשים ב-Google Cloud CLI, מריצים את הפקודה הבאה כדי לעדכן לגרסה האחרונה לפני שממשיכים במדריך הזה:

gcloud components update

מתן הרשאה לתעבורה לרשת ה-VPC המשותפת

אדמין של VPC משותף צריך ליצור כלל בחומת האש בפרויקט המארח של ה-VPC המשותף כדי לאפשר תעבורה לסביבה הגמישה של App Engine ברשת ה-VPC המשותפת. כלל חומת האש מאפשר להציג תעבורה ותעבורת בדיקת תקינות למכונות בסביבה גמישה.

לכלל חומת האש צריכים להיות המאפיינים הבאים:

  • רשת: השם של רשת ה-VPC המשותפת
  • כיוון התנועה: כניסה
  • פעולה בהתאמה: אישור
  • יעדים: תגי יעד שצוינו
  • תגי טירגוט: aef-instance
  • מסנן מקור: טווחי כתובות IP
  • טווחים של כתובות IP של המקור: 35.191.0.0/16, 130.211.0.0/22
  • פרוטוקולים ויציאות: פרוטוקולים ויציאות שצוינו
    • tcp: 8443, 10402

אדמין של VPC משותף יכול ליצור את כלל חומת האש באמצעות מסוף Google Cloud או Google Cloud CLI:

המסוף

כדי ליצור את הכלל בחומת האש באמצעות מסוף Google Cloud :

  1. עוברים לדף ליצירת כלל לחומת האש.

    יצירת כלל חומת אש

  2. בשדות שם ותיאור, מציינים שם ותיאור לכלל חומת האש.

  3. ממלאים את המאפיינים הנדרשים שצוינו למעלה.

  4. לוחצים על יצירה.

gcloud

כדי ליצור את כלל חומת האש באמצעות Google Cloud CLI, מריצים את הפקודה הבאה:

gcloud compute firewall-rules create NETWORK_NAME-flex-firewall \
--project HOST_PROJECT_ID \
--network NETWORK_NAME \
--allow tcp:10402,tcp:8443 \
--target-tags aef-instance \
--source-ranges 35.191.0.0/16,130.211.0.0/22 \
--description 'Allows traffic to App Engine flexible environment'

where:

  • NETWORK_NAME הוא השם של רשת ה-VPC המשותפת.
  • HOST_PROJECT_ID הוא מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף. Google Cloud

הגדרת הרשאות

אדמין של VPC משותף צריך להעניק לשני חשבונות השירות הבאים את התפקיד Compute Network User כדי לאפשר לפרויקט שירות לפרוס מופעים בסביבה הגמישה של App Engine ברשת:

  • סוכן שירות של Google APIs (PROJECT_NUM@cloudservices.gserviceaccount.com)
  • סוכן שירות של הסביבה הגמישה של App Engine (service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com)

המסוף

כדי להגדיר הרשאות באמצעות מסוף Google Cloud :

  1. עוברים לדף ההגדרות של IAM עבור פרויקט השירות ורושמים את מספר הפרויקט.

    כניסה להגדרות IAM

  2. עוברים לדף IAM של פרויקט המארח.

    כניסה לדף IAM

  3. לוחצים על הוספה.

  4. בשדה New members, מזינים את כתובות האימייל הבאות, מופרדות בפסיקים. מחליפים את PROJECT_NUM במספר הפרויקט שהתקבל בשלב 1.

    • PROJECT_NUM@cloudservices.gserviceaccount.com
    • service-PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com
  5. בתפריט הנפתח Select a role, בוחרים באפשרות Compute Engine > Compute Network User.

  6. לוחצים על Save.

gcloud

  1. מקבלים את מספר הפרויקט של פרויקט השירות שבו נפרסה אפליקציית App Engine. מריצים את הפקודה הבאה ומחליפים את SERVICE_PROJECT_ID במזהה הפרויקט של פרויקט השירות:

    export SERVICE_PROJECT_NUM=$(gcloud projects describe SERVICE_PROJECT_ID --format="value(projectNumber)")
    
  2. מקצים לסוכן השירות של Google APIs בפרויקט השירות את התפקיד compute.networkUser בפרויקט המארח:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:$SERVICE_PROJECT_NUM@cloudservices.gserviceaccount.com \
    --role=roles/compute.networkUser
    

    כאשר HOST_PROJECT_ID הואGoogle Cloud מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף.

  3. נותנים לסוכן השירות של סביבת App Engine גמישה בפרויקט השירות את התפקיד compute.networkUser בפרויקט המארח:

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member=serviceAccount:service-$SERVICE_PROJECT_NUM@gae-api-prod.google.com.iam.gserviceaccount.com \
    --role=roles/compute.networkUser
    

הגדרה ופריסה של השירות

אחרי שמגדירים את כלל חומת האש ואת ההרשאות המתאימות, אפשר לפרוס שירות חדש או שירות קיים של סביבה גמישה של App Engine ברשת ה-VPC המשותפת.

  1. בקובץ app.yaml, משתמשים בשדה name הגדרות רשת כדי לציין את השם המלא של רשת ה-VPC המשותפת:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
    

    איפה

    • HOST_PROJECT_ID הוא מזהה הפרויקט של הפרויקט המארח של ה-VPC המשותף. Google Cloud
    • NETWORK_NAME הוא השם של רשת ה-VPC המשותפת.

    כדי להגדיר את השירות כחלק מרשת משנה בשם SUBNETWORK_NAME, צריך להגדיר גם את השדה subnetwork_name:

    network:
      name: projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME
      subnetwork_name: SUBNETWORK_NAME
    
  2. פורסים את השירות:

    gcloud app deploy
    

אימות ההגדרה

כדי לוודא ששירות הסביבה הגמישה של App Engine פועל ברשת ה-VPC המשותפת, אפשר להציג את הגדרות הגרסה בדף הגרסאות של App Engine במסוףGoogle Cloud :

  1. עוברים לדף Versions (גרסאות) של App Engine.

    מעבר לגרסאות של App Engine

  2. בטור Config (הגדרה) בצד שמאל, לוחצים על View (תצוגה) ליד הגרסה הרצויה.

  3. מוודאים ששם הרשת בהגדרה הוא השם של רשת ה-VPC המשותפת.