הקצאת VPC משותף

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

רשת VPC משותפת תומכת בייצוא של תת-רשתות מכל סוג מחסנית.

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

ב-API ובממשק שורת הפקודה, VPC משותף נקרא גם XPN.

מכסות, מגבלות ומשאבים כשירים

לפני שמתחילים, חשוב להכיר את ה-VPC המשותף ואת IAM, ובפרט:

הכנת הארגון

כשמכינים את הארגון, חשוב לזכור את הפרטים הבאים.

אדמינים ו-IAM

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

מגבלות שקשורות למדיניות הארגון

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

מניעת מחיקה בטעות של פרויקטים מארחים

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

משתמש עם תפקיד orgpolicy.policyAdmin יכול להגדיר אילוץ מדיניות ברמת הארגון (constraints/compute.restrictXpnProjectLienRemoval) שמגביל את הסרת השעבודים רק לתפקידים הבאים:

  • משתמשים עם רמה roles/owner או roles/resourcemanager.lienModifier ברמת הארגון
  • משתמש עם תפקידים בהתאמה אישית שכוללים את ההרשאות resourcemanager.projects.get ו resourcemanager.projects.updateLiens ברמת הארגון

האילוץ הזה מונע מבעלי פרויקטים שאין להם את התפקיד roles/owner ברמת הארגון או את התפקיד resourcemanager.lienModifier ברמת הארגון למחוק בטעות פרויקט מארח של VPC משותף. מידע נוסף על ההרשאות שמשויכות לתפקיד resourcemanager.lienModifier מופיע במאמר הטלת מנעול למניעת מחיקה על פרויקט במאמרי העזרה של מנהל המשאבים.

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

  1. מבצעים אימות ב-gcloud כאדמין ארגוני או כחשבון משתמש ב-IAM עם התפקיד orgpolicy.policyAdmin. מחליפים את ORG_ADMIN בשם של אדמין בארגון:

    gcloud auth login ORG_ADMIN
    
  2. כדי לדעת מה מזהה הארגון, מעיינים בפלט של הפקודה הזו:

    gcloud organizations list
    
  3. כדי לאכוף את מדיניות compute.restrictXpnProjectLienRemoval בארגון, מריצים את הפקודה הבאה. מחליפים את ORG_ID במספר שקבעתם בשלב הקודם.

    gcloud resource-manager org-policies enable-enforce \
        --organization ORG_ID compute.restrictXpnProjectLienRemoval
    
  4. כדי להגן על החשבון, מומלץ להתנתק מ-gcloud אחרי שמסיימים לבצע משימות כאדמין של הארגון.

    gcloud auth revoke ORG_ADMIN
    

הגבלת הקבצים המצורפים בפרויקט המארח

כברירת מחדל, אדמין של VPC משותף יכול לצרף פרויקט שאינו מארח לכל פרויקט מארח באותו ארגון. אדמין של מדיניות הארגון יכול להגביל את קבוצת הפרויקטים המארחים שאליהם אפשר לצרף פרויקט שאינו מארח או פרויקטים שאינם מארחים בתיקייה או בארגון. מידע נוסף זמין במאמר בנושא constraints/compute.restrictSharedVpcHostProjects constraint.

הגבלת רשתות המשנה בפרויקט המארח שפרויקט שירות יכול להשתמש בהן

כברירת מחדל, אחרי שמגדירים VPC משותף, גורמים ראשיים ב-IAM בפרויקטים של שירות יכולים להשתמש בכל רשת משנה בפרויקט המארח, אם יש להם הרשאות מתאימות ב-IAM. בנוסף לניהול הרשאות של משתמשים ספציפיים, אדמין של מדיניות הארגון יכול להגדיר מדיניות כדי להגדיר את קבוצת רשתות המשנה שאפשר לגשת אליהן מפרויקט מסוים או מפרויקטים בתיקייה או בארגון. מידע נוסף זמין במאמר בנושא constraints/compute.restrictSharedVpcSubnetworks constraint.

מניעת כיבוי לא מכוון של פרויקטים מארחים

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

הגדרת אדמינים של VPC משותף

אדמין ארגוני יכול להקצות לחשבון משתמש אחד או יותר ב-IAM את התפקידים אדמין של VPC משותף ואדמין IAM של פרויקט.

התפקיד Project IAM Admin מעניק לאדמינים של VPC משותף הרשאה לשתף את כל רשתות המשנה הקיימות והעתידיות, ולא רק רשתות משנה ספציפיות. ההרשאה הזו יוצרת קישור ברמת הארגון או התיקייה, ולא ברמת הפרויקט. לכן, צריך להגדיר את החשבונות הראשיים ב-IAM בארגון, ולא רק בפרויקט בתוך הארגון.

המסוף

כדי להעניק את התפקיד 'אדמין של VPC משותף' ברמת הארגון

  1. נכנסים למסוף Cloud de Confiance כאדמינים ארגוניים, ואז עוברים לדף IAM.

    כניסה לדף IAM

  2. בתפריט הפרויקט, בוחרים את הארגון.

    אם בוחרים פרויקט, בתפריט תפקידים מוצגים ערכים שגויים.

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

  4. מזינים את כתובות האימייל של New principals.

  5. בתפריט Roles (תפקידים), בוחרים באפשרות Compute Engine > Compute Shared VPC Admin (אדמין של רשתות VPC משותפות ב-Compute).

  6. לוחצים על הוספת תפקיד נוסף.

  7. בתפריט הנפתח Roles, בוחרים באפשרות מנהל המשאבים > Project IAM Admin.

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

כדי להעניק את התפקיד 'אדמין ל-VPC משותף' ברמת התיקייה

  1. נכנסים למסוף Cloud de Confiance כאדמינים ארגוניים, ואז עוברים לדף IAM.

    כניסה לדף IAM

  2. בתפריט הפרויקט, בוחרים את התיקייה.

    אם בוחרים פרויקט או ארגון, האפשרויות שמוצגות לא נכונות.

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

  4. מזינים את כתובות האימייל של New principals.

  5. בקטע Select a role, בוחרים באפשרות Compute Engine > Compute Shared VPC Admin.

  6. לוחצים על הוספת תפקיד נוסף.

  7. בתפריט Roles, בוחרים באפשרות מנהל המשאבים > Project IAM Admin.

  8. לוחצים על הוספת תפקיד נוסף.

  9. בתפריט Roles, בוחרים באפשרות מנהל המשאבים > Compute Network Viewer.

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

gcloud

  1. עוברים אימות ב-gcloud כאדמין של הארגון. מחליפים את ORG_ADMIN בשם של אדמין בארגון:

    gcloud auth login ORG_ADMIN
    
  2. כדי לראות את מזהה הארגון, בודקים את הפלט של הפקודה הזו.

    gcloud organizations list
    
  3. כדי להקצות את התפקיד 'אדמין של VPC משותף' ברמת הארגון:

    1. החלת התפקיד 'אדמין ל-VPC משותף' על חשבון משתמש קיים ב-IAM. מחליפים את ORG_ID במספר מזהה הארגון מהשלב הקודם, ואת EMAIL_ADDRESS בכתובת האימייל של המשתמש שרוצים להעניק לו את תפקיד האדמין של ה-VPC המשותף.

      gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:EMAIL_ADDRESS' \
        --role="roles/compute.xpnAdmin"
      
      gcloud organizations add-iam-policy-binding ORG_ID \
        --member='user:EMAIL_ADDRESS' \
        --role="roles/resourcemanager.projectIamAdmin"
      
  4. כדי להקצות את התפקיד 'אדמין של VPC משותף' ברמת התיקייה:

    1. כדי לזהות את מזהה התיקייה, בודקים את הפלט של הפקודה הזו.

      gcloud resource-manager folders list --organization=ORG_ID
      
    2. החלת התפקיד 'אדמין ל-VPC משותף' על חשבון משתמש קיים ב-IAM. מחליפים את ORG_ID במספר מזהה הארגון מהשלב הקודם, ואת EMAIL_ADDRESS בכתובת האימייל של המשתמש שרוצים להעניק לו את תפקיד האדמין של ה-VPC המשותף.

      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/compute.xpnAdmin"
      
      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/resourcemanager.projectIamAdmin"
      
      gcloud resource-manager folders add-iam-policy-binding FOLDER_ID \
         --member='user:EMAIL_ADDRESS' \
         --role="roles/compute.networkViewer"
      
  5. אחרי שמסיימים לבצע משימות להגנה על החשבון, מבטלים את האסימון של חשבון האדמין של הארגון בכלי gcloudcommand-line.

    gcloud auth revoke ORG_ADMIN
    

API

  • כדי להקצות את התפקיד Shared VPC Admin ברמת הארגון, פועלים לפי השלבים הבאים:

    1. מגדירים את מספר מזהה הארגון.

      POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations
      
    2. מתארים את המדיניות הקיימת של הארגון ומקליטים את הפרטים שלה.

      POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations/ORG_ID:getIamPolicy
      

      מחליפים את ORG_ID במזהה הארגון.

    3. מקצים את התפקיד 'אדמין של VPC משותף'.

      POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations/ORG_ID:setIamPolicy
      {
        "bindings": [
          ...copy existing bindings
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.xpnAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/resourcemanager.projectIamAdmin"
          }
        ],
        "etag": "ETAG",
        "version": 1,
        ...other existing policy details
      }
      

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

      • ‫ORG_ID: מזהה הארגון שמכיל את המשתמש שרוצים להעניק לו את התפקיד 'אדמין של VPC משותף'.
      • EMAIL_ADDRESS: כתובת האימייל של המשתמש.
      • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. הוא מונע התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.

      למידע נוסף, עיינו בשיטה organizations.setIamPolicy.

  • כדי להקצות את התפקיד 'אדמין של VPC משותף' ברמת התיקייה, משתמשים בבקשה הבאה:

    1. מגדירים את מספר מזהה הארגון.

      POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations
      
    2. מאתרים את מזהה התיקייה.

      GET https://cloudresourcemanager.s3nsapis.fr/v2/folders?parent=organizations/ORG_ID
      

      מחליפים את ORG_ID במזהה הארגון.

    3. מתארים את פרטי מדיניות התיקיות הקיימת ומתעדים אותם.

      POST https://cloudresourcemanager.s3nsapis.fr/v2/folders/FOLDER_ID:getIamPolicy
      

      מחליפים את FOLDER_ID במזהה התיקייה.

    4. מקצים את התפקיד 'אדמין של VPC משותף'.

      POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations/FOLDER_ID:setIamPolicy
      {
        "bindings": [
          ...copy existing bindings
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.xpnAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/resourcemanager.projectIamAdmin"
          },
          {
            "members": [
              "user:EMAIL_ADDRESS"
            ],
            "role": "roles/compute.networkViewer"
          }
        ],
        "etag": "ETAG",
        "version": 1,
        ...other existing policy details
      }
      

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

      • ‫FOLDER_ID: מזהה הארגון שמכיל את המשתמש שרוצים להעניק לו את תפקיד האדמין של ה-VPC המשותף.
      • EMAIL_ADDRESS: כתובת האימייל של המשתמש.
      • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. היא מונעת התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.

      למידע נוסף, עיינו בשיטה folders.setIamPolicy.

הגדרת VPC משותף

כל המשימות בקטע הזה צריכות להתבצע על ידי אדמין של VPC משותף.

הפעלת פרויקט מארח

בתוך ארגון, אדמינים של VPC משותף יכולים להגדיר פרויקטים כפרויקטים מארחים של VPC משותף, בכפוף למכסות ומגבלות, על ידי ביצוע השלבים הבאים. אדמינים של VPC משותף יכולים גם ליצור ולמחוק פרויקטים אם יש להם את התפקידים Project Creator ו-Project Deleter (roles/resourcemanager.projectCreator ו-roles/resourcemanager.projectDeleter) בארגון.

כשמפעילים פרויקט מארח, משאבי הרשת של הפרויקט לא משותפים אוטומטית עם פרויקטי שירות. כדי לשתף רשתות ורשתות משנה נבחרות עם פרויקטי השירות, צריך לצרף פרויקטי שירות לפרויקט המארח.

המסוף

אם עדיין אין לכם את תפקיד האדמין ל-VPC משותף ב-Compute ‏ (roles/compute.xpnAdmin), לא תוכלו לראות את הדף הזה במסוף Cloud de Confiance .

  1. נכנסים לדף VPC משותף במסוף Cloud de Confiance .

    מעבר ל-VPC משותף

  2. נכנסים כאדמין של VPC משותף.

  3. בוחרים את הפרויקט שרוצים להפעיל כפרויקט מארח ב-VPC משותף מתוך הכלי לבחירת פרויקטים.

  4. לוחצים על הגדרת VPC משותף.

  5. בדף הבא, לוחצים על Save & continue (שמירה והמשך) בקטע Enable host project (הפעלת פרויקט מארח).

  6. בקטע Select subnets (בחירת רשתות משנה), מבצעים אחת מהפעולות הבאות:

    1. לוחצים על שיתוף כל תת-הרשתות (הרשאות ברמת הפרויקט) אם רוצים לשתף את כל תת-הרשתות הנוכחיות והעתידיות ברשתות ה-VPC של הפרויקט המארח עם פרויקטים של שירות ואדמינים של פרויקטים של שירות שצוינו בשלבים הבאים.
    2. לוחצים על תת-רשתות נפרדות (הרשאות ברמת תת-הרשת) אם רוצים לשתף באופן סלקטיבי תת-רשתות מרשתות ה-VPC של הפרויקט המארח עם פרויקטים של שירותים ועם אדמינים של פרויקטים של שירותים. אחר כך בוחרים באפשרות Subnets to share (רשתות משנה לשיתוף).
  7. לוחצים על Continue.
    מוצג המסך הבא.

  8. בקטע Project names (שמות פרויקטים), מציינים את פרויקטי השירות שרוצים לצרף לפרויקט המארח. חשוב לזכור שצירוף פרויקטים של שירות לא מגדיר אדמינים של פרויקטים של שירות. ההגדרה הזו מתבצעת בשלב הבא.

  9. בקטע Select users by role, מוסיפים אדמינים של פרויקט שירות. למשתמשים האלה יוקצה תפקיד ה-IAM‏ compute.networkUser ברשתות המשנה המשותפות. רק אדמינים של פרויקט שירות יכולים ליצור משאבים בתת-הרשתות של פרויקט המארח של ה-VPC המשותף.

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

gcloud

  1. מאמתים את הזהות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. מפעילים VPC משותף בפרויקט שרוצים להפוך לפרויקט מארח. מחליפים את HOST_PROJECT_ID במזהה הפרויקט.

    gcloud compute shared-vpc enable HOST_PROJECT_ID
    
  3. מוודאים שהפרויקט מופיע כפרויקט מארח בארגון. מחליפים את ORG_ID במזהה הארגון (שנקבע על ידי gcloud organizations list).

    gcloud compute shared-vpc organizations list-host-projects ORG_ID
    
  4. אם הייתם צריכים רק להפעיל פרויקט מארח, אתם יכולים להתנתק מ-gcloud כדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף. אם לא, מדלגים על השלב הזה וממשיכים לשלבים של צירוף פרויקטים של שירותים.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. מפעילים VPC משותף בפרויקט באמצעות פרטי כניסה עם הרשאות אדמין של VPC משותף.

    POST https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
    

    מחליפים את HOST_PROJECT_ID במזהה הפרויקט שיהיה פרויקט מארח של VPC משותף.

    למידע נוסף, עיינו בשיטה projects.enableXpnHost.

  2. מוודאים שהפרויקט מופיע כפרויקט מארח.

    POST https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
    

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

    למידע נוסף, עיינו בשיטה projects.listXpnHosts.

Terraform

אתם יכולים להשתמש במשאב של Terraform כדי להפעיל פרויקט מארח.

resource "google_compute_shared_vpc_host_project" "host" {
  project = var.project # Replace this with your host project ID in quotes
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

צירוף פרויקטים של שירות

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

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

המסוף

  1. נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
  2. נכנסים לדף VPC משותף במסוף Cloud de Confiance .
    כניסה לדף VPC משותף
  3. לוחצים על הכרטיסייה פרויקטים מצורפים.
  4. בכרטיסייה Attached projects (פרויקטים מצורפים), לוחצים על הכפתור Attach projects (צירוף פרויקטים).
  5. מסמנים את התיבות של פרויקטי השירות שרוצים לצרף בקטע שמות הפרויקטים. חשוב לזכור שצירוף פרויקטים של שירות לא מגדיר אדמינים של פרויקטים של שירות. ההגדרה הזו מתבצעת בשלב הבא.
  6. בקטע הרשאות רשת VPC, בוחרים את התפקידים שהישויות המורשות שלהם יקבלו את התפקיד compute.networkUser. לסובייקטים ב-IAM מוענק התפקיד Network User (משתמש ברשת) לכל הפרויקט המארח או לתת-רשתות מסוימות בפרויקט המארח, בהתאם למצב השיתוף של רשת ה-VPC. חשבונות המשתמשים האלה נקראים 'אדמינים של פרויקט שירות' בפרויקטים הרלוונטיים של השירות.
  7. בקטע מצב שיתוף רשת VPC, בוחרים באחת מהאפשרויות הבאות:
    1. כדי לשתף את כל רשתות המשנה הנוכחיות והעתידיות ברשתות ה-VPC של הפרויקט המארח עם כל פרויקטי השירות ועם האדמינים של פרויקטי השירות, לוחצים על שיתוף כל רשתות המשנה (הרשאות ברמת הפרויקט).
    2. לוחצים על Individual subnets (subnet-level permissions) (תת-רשתות ספציפיות (הרשאות ברמת תת-הרשת)) אם רוצים לשתף באופן סלקטיבי תת-רשתות מרשתות VPC של הפרויקט המארח עם פרויקטים של שירותים ועם אדמינים של פרויקטים של שירותים. אחר כך בוחרים באפשרות Subnets to share (רשתות משנה לשיתוף).
  8. לוחצים על Save.

gcloud

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. צירוף פרויקט שירות לפרויקט מארח שהופעל בעבר. מחליפים את SERVICE_PROJECT_ID במזהה הפרויקט של פרויקט השירות ואת HOST_PROJECT_ID במזהה הפרויקט של פרויקט המארח.

    gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \
        --host-project HOST_PROJECT_ID
    
  3. מוודאים שפרויקט השירות צורף.

    gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
    
  4. אפשר גם לראות את הפרויקטים של השירותים שמצורפים לפרויקט המארח:

    gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
    
  5. אם הייתם צריכים רק לצרף פרויקט שירות, מומלץ להתנתק מ-gcloud כדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף. אחרת, מדלגים על השלב הזה ומגדירים אדמינים של פרויקט שירות לכל רשתות המשנה או רק לחלק מרשתות המשנה.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. מצרפים פרויקט שירות לפרויקט המארח של ה-VPC המשותף.

    POST https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource
    {
      "xpnResource": {
        "id": "SERVICE_PROJECT"
      }
    }
    

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

    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫SERVICE_PROJECT: מזהה פרויקט השירות לצירוף.

    למידע נוסף, עיינו בשיטה projects.enableXpnResource.

  2. מוודאים שפרויקטי השירות מצורפים לפרויקט המארח.

    GET https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
    

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

    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.

    למידע נוסף, עיינו בשיטה projects.getXpnResources.

Terraform

אפשר להשתמש במשאב של Terraform כדי לצרף פרויקט שירות.

resource "google_compute_shared_vpc_service_project" "service1" {
  host_project    = google_compute_shared_vpc_host_project.host.project
  service_project = var.service_project # Replace this with your service project ID in quotes
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

אדמינים של פרויקט השירות לכל רשתות המשנה

אדמין של VPC משותף יכול להקצות נציג IAM מפרויקט שירות להיות אדמין של פרויקט שירות עם גישה לכל תת-הרשתות בפרויקט המארח. לאדמינים בפרויקט השירות מסוג זה מוקצה התפקיד compute.networkUser עבור כל פרויקט המארח. המשמעות היא שיש להם גישה לכל רשתות המשנה שהוגדרו בפרויקט המארח, וגם לרשתות משנה שיוגדרו בעתיד.

משתמש עם התפקיד compute.networkUser בפרויקט המארח יכול לראות את כל רשתות המשנה בפרויקטים של שירותים שמצורפים אליו.

המסוף

כדי להגדיר חשבון ראשי ב-IAM מפרויקט שירות כאדמין של פרויקט השירות עם גישה לכל רשתות המשנה בפרויקט מארח באמצעות מסוףCloud de Confiance , אפשר לעיין בקטע צירוף פרויקטים של שירותים.

gcloud

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

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. יוצרים קשר בין מדיניות לבין ישות (principal) ב-IAM כדי להפוך ישות מפרויקט השירות לאדמין של פרויקט השירות. מחליפים את HOST_PROJECT_ID במזהה הפרויקט של פרויקט המארח ואת SERVICE_PROJECT_ADMIN בכתובת האימייל של משתמש אדמין בפרויקט השירות.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
    --member "user:SERVICE_PROJECT_ADMIN" \
    --role "roles/compute.networkUser"
    

    אפשר לציין סוגים שונים של חשבונות משתמשים על ידי שינוי הפורמט של הארגומנט --member:

    • משתמשים ב-group: כדי לציין קבוצה ב-Google (לפי כתובת אימייל) כגורם ראשי.
    • משתמשים ב-domain: כדי לציין דומיין Google כגורם ראשי.
    • משתמשים ב-serviceAccount: כדי לציין חשבון שירות. במאמר חשבונות שירות כאדמינים של פרויקט שירות מפורט מידע נוסף על תרחיש השימוש הזה.
  3. חוזרים על השלב הקודם לכל מנהל נוסף של פרויקט שירות שצריך להגדיר.

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

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. מתארים את פרטי מדיניות הפרויקט הקיים ומקליטים אותם. תצטרכו את המדיניות הקיימת ואת הערך etag.

    POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

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

  2. יוצרים קשר בין מדיניות כדי להגדיר את הגורמים המורשים ב-IAM בפרויקט השירות כאדמינים של פרויקט השירות.

    POST https://cloudresourcemanager.s3nsapis.fr/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            PRINCIPAL,
            ...additional principals
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

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

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת.
    • ‫PRINCIPAL: זהות שהתפקיד משויך אליה, כמו משתמש, קבוצה, דומיין או חשבון שירות. מידע נוסף מופיע בשדה members במאמרי העזרה של מנהל המשאבים.
    • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. היא מונעת התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.

    למידע נוסף, עיינו בשיטה projects.setIamPolicy.

אדמינים של פרויקט שירות עבור חלק מרשתות המשנה

אדמין של VPC משותף יכול להקצות למשתמש ראשי ב-IAM מפרויקט שירות את התפקיד אדמין של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט המארח. האפשרות הזו מאפשרת להגדיר אדמינים של פרויקט שירות בצורה פרטנית יותר, על ידי הקצאת התפקיד compute.networkUser רק לחלק מרשתות המשנה בפרויקט המארח.

משתמש עם התפקיד compute.networkUser בפרויקט המארח יכול לראות את כל רשתות המשנה בפרויקטים של שירותים שמצורפים אליו.

המסוף

כדי להגדיר חשבון משתמש ב-IAM מפרויקט שירות כאדמין של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט מארח באמצעות Cloud de Confiance המסוף, אפשר לעיין בקטע צירוף פרויקטים של שירות.

gcloud

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

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. בוחרים את רשת המשנה בפרויקט המארח שאדמינים בפרויקט השירות צריכים לקבל אליה גישה. מקבלים את מדיניות ה-IAM הנוכחית שלו בפורמט JSON. מחליפים את SUBNET_NAME בשם של רשת המשנה בפרויקט המארח ואת HOST_PROJECT_ID במזהה הפרויקט של הפרויקט המארח.

    gcloud compute networks subnets get-iam-policy SUBNET_NAME \
        --region SUBNET_REGION \
        --project HOST_PROJECT_ID \
        --format json
    
  3. מעתיקים את פלט ה-JSON מהשלב הקודם ושומרים אותו בקובץ. כדי שההוראות יהיו ברורות, בשלבים האלה שומרים את הקובץ בשם subnet-policy.json.

  4. משנים את הקובץ subnet-policy.json ומוסיפים את החשבונות הראשיים ב-IAM שיהפכו לאדמינים של פרויקט השירות עם גישה לרשת המשנה. מחליפים כל מופע של SERVICE_PROJECT_ADMIN בכתובת האימייל של משתמש IAM מפרויקט השירות.

    {
      "bindings": [
      {
         "members": [
               "user:[SERVICE_PROJECT_ADMIN]",
               "user:[SERVICE_PROJECT_ADMIN]"
            ],
            "role": "roles/compute.networkUser"
      }
      ],
      "etag": "[ETAG_STRING]"
    }
    

    שימו לב שאפשר לציין סוגים שונים של ישויות IAM (מלבד משתמשים) במדיניות:

    • מחליפים את user: ב-group: כדי לציין קבוצה ב-Google (לפי כתובת אימייל) כחשבון ראשי.
    • מחליפים בין user: לבין domain: כדי לציין דומיין של Google כגורם מרכזי.
    • משתמשים ב-serviceAccount: כדי לציין חשבון שירות. במאמר חשבונות שירות כאדמינים של פרויקט שירות מפורט מידע נוסף על תרחיש השימוש הזה.
  5. מעדכנים את הקישור של המדיניות לרשת המשנה באמצעות התוכן של הקובץ subnet-policy.json.

    gcloud compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \
        --region SUBNET_REGION \
        --project HOST_PROJECT_ID
    
  6. אם סיימתם להגדיר אדמינים של פרויקטים של שירותים, מומלץ להתנתק מ-gcloud כדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף.

    gcloud auth revoke SHARED_VPC_ADMIN
    

API

  1. מתארים את מדיניות רשתות המשנה הקיימת ואז מתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך etag.

    GET https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
    

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

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת.
    • ‫SUBNET_NAME: שם תת-הרשת שרוצים לשתף.
    • ‫SUBNET_REGION: האזור שבו נמצאת רשת המשנה.
  2. כדי לתת לאדמינים של פרויקט השירות גישה לרשתות משנה בפרויקט המארח, צריך לעדכן את מדיניות רשתות המשנה.

    POST https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            PRINCIPAL,
            ...additional principals
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

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

    • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. היא מונעת התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.
    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת.
    • ‫PRINCIPAL: זהות שהתפקיד משויך אליה, כמו משתמש, קבוצה, דומיין או חשבון שירות. מידע נוסף מופיע בשדה members במאמרי העזרה של מנהל המשאבים.
    • ‫SUBNET_NAME: שם תת-הרשת שרוצים לשתף.
    • ‫SUBNET_REGION: האזור שבו נמצאת רשת המשנה.

    למידע נוסף, עיינו בשיטה subnetworks.setIamPolicy.

חשבונות שירות כאדמינים של פרויקט שירות

אדמין של VPC משותף יכול גם להגדיר חשבונות שירות מפרויקטים של שירות כבעלי הרשאות אדמין בפרויקט השירות. בקטע הזה מוסבר איך להגדיר שני סוגים שונים של חשבונות שירות כאדמינים של פרויקט שירות:

אפשר להקצות את התפקיד Service Project Admin‏ (compute.networkUser) לכל רשתות המשנה או לחלק מרשתות המשנה של פרויקט המארח. עם זאת, כדי לפשט את ההסבר, בקטע הזה נראה רק איך מגדירים כל אחד משני סוגי חשבונות השירות כאדמינים של פרויקט השירות עבור כל רשתות המשנה של פרויקט המארח.

חשבונות שירות בניהול המשתמשים כאדמינים של פרויקט שירות

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

המסוף

  1. נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
  2. נכנסים לדף Settings במסוף Cloud de Confiance .
    מעבר לדף ההגדרות
  3. משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין של פרויקט השירות.
  4. מעתיקים את מזהה הפרויקט של פרויקט השירות. לצורך הבהרה, בתהליך הזה מזהה פרויקט השירות נקרא SERVICE_PROJECT_ID.
  5. משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
  6. נכנסים לדף IAM במסוף Cloud de Confiance .
    כניסה לדף IAM
  7. לוחצים על הוספה.
  8. מוסיפים את הערך SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.s3ns.iam.gserviceaccount.com לשדה Principals (חשבונות משתמשים), ומחליפים את הערך SERVICE_ACCOUNT_NAME בשם של חשבון השירות.
  9. בתפריט Roles בוחרים באפשרות Compute Engine > Compute Network User.
  10. לוחצים על הוספה.

gcloud

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. אם אתם לא יודעים מה מזהה פרויקט השירות, אתם יכולים להציג רשימה של כל הפרויקטים בארגון. ברשימה הזו מוצג מזהה הפרויקט של כל אחד מהם.

    gcloud projects list
    
  3. יוצרים קישור למדיניות כדי להגדיר את חשבון השירות כאדמין של פרויקט שירות. מחליפים את HOST_PROJECT_ID במזהה הפרויקט המארח, את SERVICE_ACCOUNT_NAME בשם של חשבון השירות ואת SERVICE_PROJECT_ID במזהה פרויקט השירות.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.s3ns.iam.gserviceaccount.com" \
        --role "roles/compute.networkUser"
    

API

  1. מתארים את פרטי מדיניות הפרויקט הקיים ומקליטים אותם. תצטרכו את המדיניות הקיימת ואת הערך etag.

    POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

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

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

    POST https://cloudresourcemanager.s3nsapis.fr/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.s3ns.iam.gserviceaccount.com",
            ...include additional service accounts
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

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

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת.
    • ‫SERVICE_ACCOUNT_NAME: השם של חשבון השירות.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות שמכיל את חשבון השירות.
    • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. היא מונעת התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.

    למידע נוסף, עיינו בשיטה projects.setIamPolicy.

חשבון שירות של Google APIs כאדמין בפרויקט שירות

בקטע הזה מוסבר איך להגדיר את חשבון השירות של Google APIs כאדמין של פרויקט השירות בכל תת-הרשתות של פרויקט המארח של ה-VPC המשותף. הפיכת חשבון השירות של Google APIs לאדמין של פרויקט שירות היא דרישה לשימוש בקבוצות של מופעים מנוהלים עם VPC משותף, כי משימות כמו יצירת מופעים מבוצעות על ידי חשבון שירות מהסוג הזה. מידע נוסף על הקשר הזה זמין במאמר בנושא קבוצות של מכונות וירטואליות מנוהלות ו-IAM.

המסוף

  1. נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
  2. נכנסים לדף Settings במסוף Cloud de Confiance .
    מעבר לדף ההגדרות
  3. משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין של פרויקט השירות.
  4. מעתיקים את מספר הפרויקט של פרויקט השירות. לצורך הבהרה, בתהליך הזה מספר פרויקט השירות נקרא SERVICE_PROJECT_NUMBER.
  5. משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
  6. נכנסים לדף IAM במסוף Cloud de Confiance .
    כניסה לדף IAM
  7. לוחצים על הוספה.
  8. מוסיפים את SERVICE_PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com לשדה חברים.
  9. בתפריט Roles בוחרים באפשרות Compute Engine > Compute Network User.
  10. לוחצים על הוספה.

gcloud

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של VPC משותף. מחליפים את SHARED_VPC_ADMIN בשם של אדמין ה-VPC המשותף:

    gcloud auth login SHARED_VPC_ADMIN
    
  2. מאתרים את מספר הפרויקט של פרויקט השירות. לשם הבהרה, במסגרת ההליך הזה, מספר פרויקט השירות נקרא SERVICE_PROJECT_NUMBER. מחליפים את SERVICE_PROJECT_ID במזהה הפרויקט של פרויקט השירות.

    gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
    
    • אם אתם לא יודעים את מזהה הפרויקט של פרויקט השירות, אתם יכולים להציג רשימה של כל הפרויקטים בארגון. ברשימה הזו מופיע מספר הפרויקט של כל אחד מהם.

      gcloud projects list
      
  3. יוצרים קישור למדיניות כדי להגדיר את חשבון השירות כאדמין של פרויקט שירות. מחליפים את HOST_PROJECT_ID במזהה הפרויקט של הפרויקט המארח ואת SERVICE_PROJECT_NUMBER במספר פרויקט השירות.

    gcloud projects add-iam-policy-binding HOST_PROJECT_ID \
        --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com" \
        --role "roles/compute.networkUser"
    

API

  1. מתארים את פרטי מדיניות הפרויקט הקיים ומקליטים אותם. תצטרכו את המדיניות הקיימת ואת הערך etag.

    POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
    

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

  2. מציגים את הפרויקט כדי למצוא את מספר הפרויקט.

    GET https://cloudresourcemanager.s3nsapis.fr/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
    

    מחליפים את SERVICE_PROJECT_ID במזהה של פרויקט השירות שבו נמצא חשבון השירות.

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

    POST https://cloudresourcemanager.s3nsapis.fr/v1/projects/HOST_PROJECT_ID:setIamPolicy
    {
      "bindings": [
        ...copy existing bindings
        {
          "members": [
            "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com"
          ],
          "role": "roles/compute.networkUser"
        },
      ],
      "etag": "ETAG",
      "version": 1,
      ...other existing policy details
    }
    

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

    • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת.
    • ‫SERVICE_PROJECT_NUMBER: מספר פרויקט השירות שמכיל את חשבון השירות.
    • ‫ETAG: מזהה ייחודי שקיבלתם כשתיארתם את המדיניות הקיימת. היא מונעת התנגשויות אם נשלחות כמה בקשות עדכון בו-זמנית.

    למידע נוסף, עיינו בשיטה projects.setIamPolicy.

שימוש ב-VPC משותף

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

כל המשימות בקטע הזה צריכות להתבצע על ידי אדמין של פרויקט שירות.

חשוב לציין שאדמין של VPC משותף מעניק לאדמינים של פרויקט השירות את התפקיד Compute Network User ‏(roles/compute.networkUser) לכל הפרויקט המארח או רק לחלק מתת-הרשתות שלו. לאדמינים בפרויקט השירות צריכות להיות גם הרשאות אחרות שנדרשות לניהול פרויקטים של שירותים. לדוגמה, אדמין של פרויקט שירות יכול להיות גם Project Owner, או שלפחות יהיה לו התפקיד Compute Instance Admin (roles/compute.instanceAdmin) בפרויקט.

רשימת רשתות המשנה הזמינות

אדמינים בפרויקט שירות יכולים לראות את רשימת רשתות המשנה שקיבלו עבורן הרשאה, באופן הבא.

המסוף

נכנסים לדף VPC משותף במסוף Cloud de Confiance .

מעבר ל-VPC משותף

gcloud

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של פרויקט שירות. מחליפים את SERVICE_PROJECT_ADMIN בשם של האדמין בפרויקט השירות:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. מריצים את הפקודה הבאה, ומחליפים את HOST_PROJECT_ID במזהה הפרויקט המארח של ה-VPC המשותף:

    gcloud compute networks subnets list-usable --project HOST_PROJECT_ID
    

    בדוגמה הבאה מפורטות רשתות המשנה הזמינות בפרויקט המארח project-1:

    $ gcloud compute networks subnets list-usable --project project-1
    
    PROJECT    REGION       NETWORK  SUBNET    RANGE          SECONDARY_RANGES
    project-1  us-west1     net-1    subnet-1  10.138.0.0/20
    project-1  us-central1  net-1    subnet-2  10.128.0.0/20  r-1 192.168.2.0/24
                                                              r-2 192.168.3.0/24
    project-1  us-east1     net-1    subnet-3  10.142.0.0/20
    

מידע נוסף זמין במאמר בנושא פקודת list-usable במסמכי התיעוד של ה-SDK.

API

מציגים את רשימת רשתות המשנה הזמינות בפרויקט המארח. שולחים את הבקשה כאדמין בפרויקט שירות.

GET https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable

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

למידע נוסף, עיינו בשיטה subnetworks.listUsable.

שמירת כתובת IPv4 או IPv6 פנימית סטטית

אדמינים בפרויקט שירות יכולים לשריין כתובת IPv4 או IPv6 פנימית ברשת משנה של רשת VPC משותפת. אובייקט ההגדרה של כתובת ה-IP נוצר בפרויקט השירות, והערך שלו מגיע מטווח כתובות ה-IPv4 שזמינות ברשת המשנה המשותפת שנבחרה.

כדי לשמור כתובת IP פנימית עצמאית בפרויקט השירות, מבצעים את השלבים הבאים.

המסוף

  1. הגדרת VPC משותף
  2. נכנסים לדף VPC משותף במסוף Cloud de Confiance .

    מעבר ל-VPC משותף

  3. נכנסים כאדמין של VPC משותף.

  4. בוחרים את פרויקט השירות בכלי לבחירת פרויקטים.

  5. כדי לעבור לדף כתובות IP, בוחרים באפשרות רשת VPC > כתובות IP.

  6. לוחצים על הזמנה פנימית.

  7. בשדה Name, מזינים שם לכתובת ה-IP.

  8. ברשימה IP version בוחרים את גרסת ה-IP הנדרשת:

    • כדי לשמור כתובת IPv4 פנימית סטטית, בוחרים באפשרות IPv4.
    • כדי לשמור כתובת IPv6 פנימית סטטית, בוחרים באפשרות IPv6.
  9. לוחצים על הלחצן רשתות ששותפו איתי.

  10. ברשימות Network ו-Subnetwork, בוחרים רשת VPC ורשת משנה בהתאמה.

  11. מציינים איך רוצים לשריין את כתובת ה-IP:

    • אם מזמינים כתובת IPv4, בשדה Static IP address בוחרים אחת מהאפשרויות הבאות:
      • בוחרים באפשרות הקצאה אוטומטית כדי להקצות כתובת IPv4 באופן אוטומטי.
      • בוחרים באפשרות אני רוצה לבחור כדי לבחור כתובת ספציפית. מזינים את הכתובת בשדה כתובת IP מותאמת אישית.
    • אם אתם שומרים כתובת IPv6, בשדה Static IPv6 range (טווח סטטי של כתובות IPv6), בוחרים באחת מהאפשרויות הבאות:
      • בוחרים באפשרות הקצאה אוטומטית (/96) כדי להקצות כתובת IPv6 באופן אוטומטי.
      • בוחרים באפשרות אני רוצה לבחור כדי לבחור כתובת ספציפית. מזינים את הכתובת בשדה כתובת IPv6 מותאמת אישית.
  12. אופציונלי: אם רוצים לשתף כתובת IPv4 פנימית סטטית בכמה ממשקי קצה שונים, בוחרים באפשרות משותפת בייעוד. ברירת המחדל היא לא משותף.

  13. לוחצים על Reserve.

gcloud

  1. אם עדיין לא עשיתם זאת, צריך לבצע אימות ל-Google Cloud CLI בתור אדמין של פרויקט שירות. מחליפים את SERVICE_PROJECT_ADMIN בשם של האדמין בפרויקט השירות:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. משתמשים בפקודה compute addresses create.

    • שמירת כתובות IPv4:

      gcloud compute addresses create IP_ADDR_NAME \
          --project SERVICE_PROJECT_ID \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
          --region=REGION
          --ip-version=IPV4
      
    • שמירת כתובות IPv6:

      gcloud compute addresses create IP_ADDR_NAME \
          --project SERVICE_PROJECT_ID \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
          --region=REGION
          --ip-version=IPV6
      

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

    • ‫IP_ADDR_NAME: שם לאובייקט של כתובת IPv4.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.

פרטים נוספים על יצירת כתובות IP מפורסמים בתיעוד של SDK.

API

משתמשים בשיטה addresses.insert.

  • שמירת כתובת IPv4 פנימית סטטית בתור אדמין בפרויקט שירות:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses
    {
    "name": "ADDRESS_NAME",
    "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
    "addressType": "INTERNAL"
    }
    

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

  • ‫ADDRESS_NAME: שם לכתובת ה-IP הפנימית השמורה.
  • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
  • ‫REGION: האזור שבו תמוקם כתובת ה-IPv4 השמורה ושבו ממוקמת תת-הרשת המשותפת.
  • ‫SERVICE_PROJECT_ID: מזהה פרויקט השירות שבו אתם שומרים את כתובת ה-IPv4.
  • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.

למידע נוסף, עיינו בשיטה addresses.insert.

Terraform

אפשר להשתמש בבלוק נתונים של Terraform כדי לציין את פרטי רשת המשנה של המארח. לאחר מכן משתמשים במשאב של Terraform כדי לשמור כתובת IPv4 פנימית סטטית. אם לא מציינים את הארגומנט האופציונלי address, נבחרת כתובת IPv4 זמינה ומוזמנת.

מציינים את רשת המשנה של המארח:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

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

resource "google_compute_address" "internal" {
  project      = var.service_project
  region       = "us-central1"
  name         = "int-ip"
  address_type = "INTERNAL"
  address      = "10.0.0.8"
  subnetwork   = data.google_compute_subnetwork.subnet.self_link
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

שמירת כתובת IPv4 חיצונית סטטית

משאב בפרויקט שירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית שמוגדרת בפרויקט השירות או בפרויקט המארח. לכן, משאב בפרויקטים המצורפים של השירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית ששמורה בפרויקט המארח.

שמירת כתובת IPv6 חיצונית סטטית

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

המסוף

אפשר לשמור כתובת IPv6 חיצונית עצמאית בפרויקט השירות באמצעות מסוףCloud de Confiance :

  1. הגדרת VPC משותף
  2. במסוף Cloud de Confiance , עוברים לדף VPC משותף.
    כניסה לדף VPC משותף
  3. נכנסים כאדמין של VPC משותף.
  4. בוחרים את פרויקט השירות בכלי לבחירת פרויקטים.
  5. כדי לעבור לדף כתובות IP, בוחרים באפשרות רשת VPC > כתובות IP.
  6. לוחצים על הזמנת חדר חיצוני.
  7. בוחרים שם לכתובת החדשה.
  8. מציינים אם המסלול שנבחר ב-Network Service Tier הוא Premium או Standard.
  9. בקטע IP version, בוחרים באפשרות IPv6.
  10. כדי לשריין כתובת IPv6 גלובלית למאזן עומסים גלובלי, בוחרים באפשרות Global ולוחצים על Reserve (שמירה).
  11. כדי לשמור כתובת IPv6 אזורית למכונה או למאזן עומסים אזורי, לוחצים על Regional (אזורי) ואז מבצעים את הפעולות הבאות:

    1. בוחרים את האזור שבו רוצים ליצור את הכתובת.
    2. בוחרים באפשרות רשתות ששותפו איתי.
    3. בוחרים את רשת ה-VPC ואת תת-הרשת שמהן רוצים לשמור מקום לכתובת ה-IP.
    4. בקטע Static IPv6 range (טווח סטטי של כתובות IPv6), בוחרים באחת מהאפשרויות הבאות:
      • בוחרים באפשרות הקצאה אוטומטית כדי להקצות כתובת IPv6 באופן אוטומטי.
      • בוחרים באפשרות אני רוצה לבחור כדי לבחור כתובת ספציפית. מזינים את הכתובת בשדה כתובת IPv6 בהתאמה אישית.
    5. בקטע Endpoint type (סוג נקודת הקצה), בוחרים באפשרות VM instance (מכונה וירטואלית) או External passthrough Network Load Balancer (מאזן עומסי רשת חיצוני להעברת סיגנל ללא שינוי).

      אופציונלי: אם בוחרים באפשרות VM instance, אפשר לבחור מכונת VM לצירוף כתובת ה-IPv6.

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

gcloud

  1. אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-gcloud כאדמין של פרויקט שירות. מחליפים את SERVICE_PROJECT_ADMIN בשם של האדמין בפרויקט השירות:

    gcloud auth login SERVICE_PROJECT_ADMIN
    
  2. משתמשים בפקודה gcloud compute addresses create:

    gcloud compute addresses create IP_ADDR_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --region=REGION \
        --ip-version=IPV6 \
        --endpoint-type=[VM | NETLB]
    

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

    • ‫IP_ADDR_NAME: שם לאובייקט של כתובת IPv6.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.

API

כדי לשמור כתובת IPv6 פנימית סטטית בתור אדמין בפרויקט שירות, משתמשים בשיטה addresses.insert:

POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses
{
  "name": "ADDRESS_NAME",
  "ipVersion": "IPV6",
  "ipv6EndpointType": "VM|LB",
  "networkTier": "IPV6_NETWORK_TIER",
  "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
  "addressType": "EXTERNAL"
}

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

  • ‫SERVICE_PROJECT_ID: מזהה פרויקט השירות שבו אתם שומרים את כתובת ה-IPv6.
  • ‫REGION: האזור שבו נמצאת כתובת ה-IPv6 השמורה ותת-הרשת המשותפת.
  • ‫ADDRESS_NAME: שם לכתובת ה-IPv6 החיצונית הסטטית השמורה.
  • ‫IPV6_NETWORK_TIER: רמת השירות ברשת של רשת המשנה. יכול להיות STANDARD (תצוגה מקדימה) או PREMIUM.
  • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
  • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.

יצירת מכונה

כשמשתמשים ב-VPC משותף כדי ליצור מופע, חשוב לזכור את הנקודות הבאות:

  • התהליך הרגיל של יצירת מופע כולל בחירה של אזור, רשת ותת-רשת. רשת המשנה והתחום שנבחרו צריכים להיות באותו אזור. כשמשתמש עם הרשאת אדמין בפרויקט שירות יוצר מכונה וירטואלית באמצעות תת-רשת מרשת VPC משותפת, האזור שנבחר למכונה הווירטואלית צריך להיות באותו אזור כמו תת-הרשת שנבחרה.

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

  • אדמינים של פרויקט שירות יכולים ליצור מופעים רק באמצעות רשתות משנה שהם קיבלו הרשאה לגשת אליהן. כדי לראות אילו רשתות משנה זמינות, אפשר לעיין במאמר בנושא רשימת רשתות משנה זמינות.

  • כש- Cloud de Confiance מקבל בקשה ליצור מכונה וירטואלית ברשת משנה של רשת VPC משותפת, הוא בודק אם לישות ה-IAM ששולחת את הבקשה יש הרשאה להשתמש ברשת המשנה המשותפת הזו. אם הבדיקה נכשלת, המופע לא נוצר והפונקציה Cloud de Confianceמחזירה שגיאת הרשאות. לקבלת עזרה, פנו לאדמין של ה-VPC המשותף.

  • סוג ה-stack של המכונה שיוצרים צריך להיות נתמך על ידי רשת המשנה המשותפת שבה יוצרים את המכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של רשת המשנה קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.

המסוף

  1. הגדרת VPC משותף
  2. נכנסים לדף VPC משותף במסוף Cloud de Confiance .

    מעבר ל-VPC משותף

  3. נכנסים כאדמין של VPC משותף.

  4. בוחרים את פרויקט השירות בכלי לבחירת פרויקטים.

  5. כדי לעבור לדף Create an instance, בוחרים באפשרות Compute Engine > VM instances > Create instance.

  6. מציינים שם למכונה.

  7. בשדה Region, בוחרים אזור שמכיל רשת משנה משותפת.

  8. לוחצים על Networking (רשת) בקטע אפשרויות מתקדמות.

  9. בקטע Network interfaces, לוחצים על לחצן הבחירה Networks shared with me.

  10. ברשימה Shared subnetwork, בוחרים את רשת המשנה הנדרשת שבה רוצים ליצור את המופע:

    • במקרה של מופע IPv4 בלבד, בוחרים רשת משנה IPv4 בלבד או רשת משנה עם תמיכה כפולה (IPv4 ו-IPv6).
    • במקרה של מופע עם כתובות IPv4 ו-IPv6, בוחרים רשת משנה עם כתובות IPv4 ו-IPv6 עם סוג הגישה הנדרש ל-IPv6.
    • במקרה של מכונה עם IPv6 בלבד, בוחרים רשת משנה עם תמיכה כפולה או רשת משנה עם IPv6 בלבד עם סוג הגישה הנדרש ל-IPv6.
  11. בוחרים את סוג מחסנית ה-IP:

    • IPv4 (single-stack)
    • ‫IPv4 ו-IPv6 (dual-stack)
    • ‫IPv6 (single-stack)
  12. מציינים את כל הפרמטרים הנדרשים האחרים עבור המופע.

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

gcloud

דוגמאות:

  • יוצרים מכונה עם כתובת IPv4 פנימית זמנית ברשת משנה משותפת של רשת VPC משותפת:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --zone ZONE
    

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

    • ‫INSTANCE_NAME: השם של המכונה.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫ZONE: אזור באזור שצוין.
  • יוצרים מכונה עם כתובת IPv4 פנימית סטטית ושמורה ברשת VPC משותפת:

    1. שומרים כתובת IPv4 פנימית סטטית בפרויקט השירות מתוך טווח הכתובות הזמינות של פרויקט המארח.
    2. יוצרים את המופע:

      gcloud compute instances create INSTANCE_NAME \
          --project SERVICE_PROJECT_ID \
          --private-network-ip IP_ADDR_NAME \
          --zone ZONE \
          --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
      

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

      • ‫INSTANCE_NAME: השם של המכונה.
      • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
      • ‫IP_ADDR_NAME: השם של כתובת ה-IP הסטטית.
      • ‫ZONE: אזור באותו אזור כמו IP_ADDR_NAME.
      • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
      • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
      • ‫SUBNET: השם של רשת המשנה המשותפת שמשויכת לכתובת ה-IPv4 הפנימית הסטטית.
  • יוצרים מכונה עם כתובת IPv4 פנימית ארעית וכתובת IPv6 ארעית:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV4_IPV6 \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --zone ZONE
    

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

    • ‫INSTANCE_NAME: השם של המכונה.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫ZONE: אזור באזור שצוין.
  • יוצרים מכונה עם כתובת IPv6 חיצונית סטטית שמורה:

    gcloud compute instances create INSTANCE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type STACK_TYPE \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
        --ipv6-address IPV6_ADDRESS \
        --external-ipv6-prefix-length=96 \
        --ipv6-network-tier IPV6_NETWORK_TIER \
        --zone ZONE
    

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

    • ‫INSTANCE_NAME: השם של המכונה.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫STACK_TYPE: IPV4_IPV6 או IPV6_ONLY, בהתאם לשאלה אם רוצים שלמופע תהיה גם כתובת IPv4.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫IPV6_ADDRESS: כתובת ה-IPv6 להקצאה למכונה הווירטואלית.
    • ‫IPV6_NETWORK_TIER: רמת השירות ברשת של רשת המשנה. יכול להיות STANDARD (תצוגה מקדימה) או PREMIUM.
    • ‫ZONE: אזור באזור שצוין.

API

דוגמאות:

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

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫ZONE: אזור באזור שצוין.
    • ‫MACHINE_TYPE: סוג מכונה למופע.
    • ‫INSTANCE_NAME: שם למכונה.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫SOURCE_IMAGE: תמונה של המופע.

    למידע נוסף, עיינו בשיטה instances.insert.

  • כדי ליצור מכונה עם כתובת IPv4 פנימית שמורה, מציינים את תת-הרשת ואת השם של כתובת ה-IPv4 השמורה:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "networkIP": "projects/SERVICE_PROJECT_ID/regions/REGION/addresses/ADDRESS_NAME"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫ZONE: אזור באזור שצוין.
    • ‫MACHINE_TYPE: סוג מכונה למופע.
    • ‫INSTANCE_NAME: שם למכונה.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.
    • ‫ADDRESS_NAME: השם של כתובת ה-IPv4 הפנימית השמורה.
    • ‫SOURCE_IMAGE: תמונה של המופע.

    למידע נוסף, עיינו בשיטה instances.insert.

  • כדי ליצור מכונה עם כתובת IPv4 פנימית ארעית וכתובת IPv6 ארעית, צריך לציין את רשת המשנה ואת סוג הערימה:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPV4_IPV6"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫ZONE: אזור באזור שצוין.
    • ‫MACHINE_TYPE: סוג מכונה למופע.
    • ‫INSTANCE_NAME: שם למכונה.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫SOURCE_IMAGE: תמונה של המופע.

    למידע נוסף, עיינו בשיטה instances.insert.

  • כדי ליצור מכונה עם כתובת IPv6 זמנית, מציינים את רשת המשנה ואת סוג המערך:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/zones/ZONE/instances
    {
      "machineType": "MACHINE_TYPE",
      "name": "INSTANCE_NAME",
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPV6_ONLY"
        }
      ],
      "disks": [
        {
          "boot": true,
          "initializeParams": {
            "sourceImage": "SOURCE_IMAGE"
          }
        }
      ]
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫ZONE: אזור באזור שצוין.
    • ‫MACHINE_TYPE: סוג מכונה למופע.
    • ‫INSTANCE_NAME: שם למכונה.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
    • ‫SOURCE_IMAGE: תמונה של המופע.

    למידע נוסף, עיינו בשיטה instances.insert.

Terraform

אפשר להשתמש בבלוק נתונים של Terraform כדי לציין את פרטי רשת המשנה של המארח. אחר כך משתמשים במשאב של Terraform כדי ליצור מכונה וירטואלית בפרויקט שירות.

מציינים את רשת המשנה של המארח:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

יצירת מכונה וירטואלית בפרויקט שירות עם כתובת IPv4 ארעית מתת-הרשת המשותפת של הפרויקט המארח:

resource "google_compute_instance" "ephemeral_ip" {
  project      = var.service_project
  zone         = "us-central1-a"
  name         = "my-vm"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
  }
}

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

resource "google_compute_instance" "reserved_ip" {
  project      = var.service_project
  zone         = "us-central1-a"
  name         = "reserved-ip-instance"
  machine_type = "e2-medium"
  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
    network_ip = google_compute_address.internal.address
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

יצירת תבנית של הגדרות מכונה

כשמשתמשים ב-VPC משותף כדי ליצור תבנית של הגדרות מכונה, כדאי לזכור את הנקודות הבאות:

  • התהליך של יצירת תבנית של מכונה וירטואלית כולל בחירה של רשת ותת-רשת.

    • בתבניות שנוצרות לשימוש ברשת VPC משותפת במצב מותאם אישית, צריך לציין גם את הרשת וגם את רשת המשנה.

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

  • כשחשבון משתמש ב-IAM יוצר תבנית של הגדרות מכונה,Cloud de Confiance לא מתבצעת בדיקת הרשאות כדי לראות אם לחשבון המשתמש יש הרשאה להשתמש בתת-הרשת שצוינה. בדיקת ההרשאות הזו תמיד מתבצעת כשמתקבלת בקשה לקבוצת מופעי מכונה מנוהלים שמשתמשת בתבנית.

  • סוג ה-stack של תבנית של הגדרות מכונה שאתם יוצרים צריך להיות נתמך על ידי רשת המשנה המשותפת שבה אתם יוצרים את תבנית של הגדרות מכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של רשת המשנה קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.

המסוף

  1. הגדרת VPC משותף
  2. במסוף Cloud de Confiance , עוברים לדף VPC משותף.
    כניסה לדף VPC משותף
  3. נכנסים כאדמין של VPC משותף.
  4. בוחרים את פרויקט השירות בכלי לבחירת פרויקטים.
  5. כדי לעבור לדף Create an instance template (יצירת תבנית של הגדרות מכונה), בוחרים באפשרות Compute Engine > Instance templates > Create instance templates (יצירת תבניות של הגדרות מכונה).
  6. מציינים שם לתבנית של הגדרות מכונה.
  7. בקטע אפשרויות מתקדמות, לוחצים על רשת.
  8. בקטע Network interfaces, לוחצים על כפתור הבחירה Networks shared with me.
  9. ברשימה Shared subnetwork, בוחרים את רשת המשנה שבה רוצים ליצור את תבנית של הגדרות מכונה:
    • אם תבנית של הגדרות מכונה היא IPv4 בלבד, בוחרים רשת משנה שהיא IPv4 בלבד או dual-stack‏ (IPv4 ו-IPv6).
    • בתבנית של הגדרות מכונה עם כתובות IPv4 ו-IPv6, בוחרים רשת משנה עם כתובות IPv4 ו-IPv6 עם סוג הגישה הנדרש ל-IPv6.
    • בתבנית של הגדרות מכונה עם IPv6 בלבד, בוחרים רשת משנה עם תמיכה ב-IPv4 ו-IPv6 או רשת משנה עם IPv6 בלבד עם סוג הגישה הנדרש ל-IPv6.
  10. בוחרים את סוג מחסנית ה-IP של תבנית של הגדרות מכונה:
    • IPv4 (single-stack)
    • ‫IPv4 ו-IPv6 (dual-stack)
    • ‫IPv6 (single-stack)
  11. מציינים את כל הפרמטרים הנדרשים האחרים לתבנית של הגדרות מכונה.
  12. לוחצים על יצירה.

gcloud

  • יצירת תבנית של הגדרות מכונה עם IPv4 בלבד לשימוש בכל תת-רשת שנוצרה אוטומטית ברשת VPC משותפת במצב אוטומטי:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --network projects/HOST_PROJECT_ID/global/networks/NETWORK
    

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

    • ‫TEMPLATE_NAME: שם התבנית.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫NETWORK: השם של רשת ה-VPC המשותפת.
  • כדי ליצור תבנית של הגדרות מכונה עם IPv4 בלבד עבור רשת משנה שנוצרה באופן ידני ברשת VPC משותפת (במצב אוטומטי או מותאם אישית):

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --region REGION \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

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

    • ‫TEMPLATE_NAME: שם התבנית.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
  • יוצרים תבנית של הגדרות מכונה עם תמיכה ב-IPv4 ו-IPv6 שמשתמשת ברשת משנה ברשת VPC משותפת במצב מותאם אישית:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV4_IPV6 \
        --region REGION \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

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

    • ‫TEMPLATE_NAME: שם התבנית.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫SUBNET: השם של תת-הרשת המשותפת.
  • יצירת תבנית של הגדרות מכונה עם IPv6 בלבד שמשתמשת ברשת משנה ברשת VPC משותפת במצב מותאם אישית:

    gcloud compute instance-templates create TEMPLATE_NAME \
        --project SERVICE_PROJECT_ID \
        --stack-type IPV6_ONLY \
        --region REGION \
        --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET
    

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

    • ‫TEMPLATE_NAME: שם התבנית.
    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
    • ‫SUBNET: השם של תת-הרשת המשותפת.

API

  • כדי ליצור תבנית של הגדרות מכונה עם IPv4 בלבד שמשתמשת ברשת משנה שנוצרה אוטומטית ברשת VPC משותפת במצב אוטומטי, צריך לציין את רשת ה-VPC:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "network": "projects/HOST_PROJECT_ID/global/networks/NETWORK"
        }
      ]
    ...
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC המשותפת.
    • ‫NETWORK: השם של רשת ה-VPC המשותפת.

    למידע נוסף, עיינו בשיטה instanceTemplates.insert.

  • כדי ליצור תבנית של הגדרות מכונה עם IPv4 בלבד שמשתמשת ברשת משנה שנוצרה באופן ידני ברשת VPC משותפת (מצב אוטומטי או מותאם אישית), צריך לציין את רשת המשנה:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME"
        }
      ]
    ...
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC המשותפת.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.

    למידע נוסף, עיינו בשיטה instanceTemplates.insert.

  • כדי ליצור תבנית של הגדרות מכונה עם תמיכה כפולה שמשתמשת ברשת משנה ברשת VPC משותפת במצב מותאם אישית, צריך לציין את רשת המשנה ואת סוג הסטאק:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPV4_IPV6"
        }
      ]
    ...
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC המשותפת.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.

    למידע נוסף, עיינו בשיטה instanceTemplates.insert.

  • כדי ליצור תבנית של הגדרות מכונה עם IPv6 בלבד שמשתמשת ברשת משנה ברשת VPC משותפת במצב מותאם אישית, צריך לציין את רשת המשנה ואת סוג הערימה:

    POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/global/instanceTemplates
    {
    "properties": {
      "networkInterfaces": [
        {
          "subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
          "stackType": "IPV6_ONLY"
        }
      ]
    ...
    }
    

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

    • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
    • ‫HOST_PROJECT_ID: מזהה הפרויקט שמכיל את רשת ה-VPC המשותפת.
    • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
    • ‫SUBNET_NAME: השם של תת-הרשת המשותפת.

    למידע נוסף, עיינו בשיטה instanceTemplates.insert.

Terraform

אפשר להשתמש בבלוק נתונים של Terraform כדי לציין את פרטי רשת המשנה של המארח. אחר כך משתמשים במשאב של Terraform כדי ליצור תבנית של הגדרות מכונה. כתובות ה-IPv4 של המכונות הווירטואליות מגיעות מרשת המשנה המשותפת של הפרויקט המארח.

רשת המשנה צריכה להיות באותו אזור שבו ייווצרו המכונות הווירטואליות.

מציינים את רשת המשנה של המארח:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

יוצרים תבנית של הגדרות מכונה בפרויקט השירות:

resource "google_compute_instance_template" "default" {
  project      = var.service_project
  name         = "appserver-template"
  description  = "This template is used to create app server instances."
  machine_type = "n1-standard-1"
  disk {
    source_image = "debian-cloud/debian-9"
  }
  network_interface {
    subnetwork = data.google_compute_subnetwork.subnet.self_link
  }
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

יצירת קבוצות של מופעי מכונה מנוהלים

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

  • כדי להשתמש בקבוצות של מכונות מנוהלות עם VPC משותף, צריך להגדיר את חשבון השירות של Google APIs כאדמין בפרויקט השירות, כי משימות כמו יצירה אוטומטית של מכונות באמצעות שינוי גודל אוטומטי מבוצעות על ידי חשבון השירות הזה.

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

  • אדמינים של פרויקט שירות יכולים ליצור רק קבוצות מנוהלות של מופעים שבהן המופעים החברים משתמשים ברשתות משנה שהם קיבלו הרשאה לגשת אליהן. מכיוון שפרטי הרשת ורשת המשנה קשורים לתבנית של הגדרות מכונה, אדמינים של פרויקט שירות יכולים להשתמש רק בתבניות שמפנות לרשתות משנה שיש להם הרשאה להשתמש בהן.

  • כש- Cloud de Confiance מקבל בקשה ליצור קבוצת מופעי מכונה מנוהלים, הוא בודק אם לישות ה-IAM ששולחת את הבקשה יש הרשאה להשתמש ברשת המשנה (באותו אזור כמו הקבוצה) שצוינה בתבנית של הגדרות מכונה. אם הבדיקה נכשלת, קבוצת המופעים המנוהלים לא נוצרת, והפונקציה Cloud de Confiance מחזירה שגיאה: Required 'compute.subnetworks.use' permission for 'projects/SUBNET_NAME.

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

מידע נוסף זמין במאמר יצירת קבוצות של מופעים מנוהלים במסמכי Compute Engine.

יצירת מאזן עומסים מסוג HTTP(S)

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

מידע נוסף על ארכיטקטורות נתמכות של VPC משותף זמין במאמרים הבאים:

יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי

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

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

המסוף

  1. נכנסים לדף Load balancing במסוף Cloud de Confiance .
    כניסה לדף Load balancing

  2. יוצרים מאזן עומסים פנימי של TCP/UDP ומבצעים את השינוי הבא: בקטע Configure frontend services (הגדרת שירותי חזית), בוחרים את רשת המשנה של ה-VPC המשותף שרוצים להשתמש בה בקטע Networks shared by other projects (רשתות שמשותפות עם פרויקטים אחרים) בתפריט Subnet (רשת משנה).

  3. מסיימים ליצור את מאזן העומסים.

gcloud

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

gcloud compute forwarding-rules create FR_NAME \
    --project SERVICE_PROJECT_ID \
    --load-balancing-scheme internal \
    --region REGION \
    --ip-protocol IP_PROTOCOL \
    --ports PORT,PORT,... \
    --backend-service BACKEND_SERVICE_NAME \
    --subnet projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET \
    --address INTERNAL_IP

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

  • ‫FR_NAME: השם של כלל ההעברה.
  • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
  • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
  • ‫IP_PROTOCOL: ‏TCP או UDP, בהתאם לפרוטוקול של השירות לקצה עורפי של מאזן העומסים.
  • ‫PORT: היציאה המספרית או רשימת היציאות של מאזן העומסים.
  • ‫BACKEND_SERVICE_NAME: השם של שירות ה-Backend (שכבר נוצר כחלק מההליך הכללי של יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי).
  • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף.
  • ‫SUBNET: השם של תת-הרשת המשותפת.
  • ‫INTERNAL_IP: כתובת IP פנימית ברשת המשנה המשותפת (אם לא מציינים כתובת, תיבחר כתובת זמינה).

אפשרויות נוספות מפורטות במאמר בנושא הפקודה gcloud compute forwarding-rules create.

API

יוצרים את כלל ההעברה הפנימי ומציינים רשת משנה בפרויקט המארח.

POST https://compute.s3nsapis.fr/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/forwardingRules
{
  "name": "FR_NAME",
  "IPAddress": "IP_ADDRESS",
  "IPProtocol": "IP_PROTOCOL",
  "ports": [ "PORT", ... ],
  "loadBalancingScheme": "INTERNAL",
  "subnetwork": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET",
  "network": "https://www.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/global/networks/NETWORK_NAME",
  "backendService": "https://www.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/us-west1/backendServices/BE_NAME",
  "networkTier": "PREMIUM"
}

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

  • ‫SERVICE_PROJECT_ID: המזהה של פרויקט השירות.
  • ‫REGION: האזור שמכיל את רשת המשנה המשותפת.
  • ‫FR_NAME: שם לכלל ההעברה.
  • ‫IP_ADDRESS: כתובת IP פנימית ברשת המשנה המשותפת.
  • ‫IP_PROTOCOL: ‏TCP או UDP, בהתאם לפרוטוקול של שירות הקצה העורפי של מאזן העומסים.
  • ‫PORT: מספר היציאה או רשימת היציאות של איזון העומסים.
  • ‫HOST_PROJECT_ID: מזהה הפרויקט המארח של ה-VPC המשותף.
  • ‫SUBNET: השם של תת-הרשת המשותפת.
  • ‫NETWORK_NAME: שם הרשת.
  • ‫BE_NAME: השם של שירות לקצה העורפי (שנוצר כבר כחלק מההליך הכללי של יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי).

למידע נוסף, עיינו בשיטה forwardingRules.insert.

Terraform

אפשר להשתמש בבלוק נתונים של Terraform כדי לציין את רשת המשנה של המארח ואת רשת המארח. אחר כך משתמשים במשאב של Terraform כדי ליצור את כלל ההעברה.

מציינים את רשת המארח:

data "google_compute_network" "network" {
  name    = "my-network-123"
  project = var.project
}

מציינים את רשת המשנה של המארח:

data "google_compute_subnetwork" "subnet" {
  name    = "my-subnet-123"
  project = var.project
  region  = "us-central1"
}

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

resource "google_compute_forwarding_rule" "default" {
  project               = var.service_project
  name                  = "l4-ilb-forwarding-rule"
  backend_service       = google_compute_region_backend_service.default.id
  region                = "europe-west1"
  ip_protocol           = "TCP"
  load_balancing_scheme = "INTERNAL"
  all_ports             = true
  allow_global_access   = true
  network               = data.google_compute_network.network.self_link
  subnetwork            = data.google_compute_subnetwork.subnet.self_link
}

כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.

המאמרים הבאים