הקצאת VPC משותף
VPC משותף מאפשר לייצא תת-רשתות מרשת של ענן וירטואלי פרטי (VPC) בפרויקט מארח לפרויקטים אחרים של שירות באותו ארגון. למכונות בפרויקטים של השירות יכולים להיות חיבורים לרשתות משנה משותפות בפרויקט המארח. בדף הזה מוסבר איך להגדיר ולהשתמש ב-VPC משותף, כולל כמה פעולות הכנה אדמיניסטרטיביות שצריך לבצע בארגון.
רשת VPC משותפת תומכת בייצוא של תת-רשתות מכל סוג מחסנית.
מידע על ניתוק פרויקטים של שירותים או על הסרה מלאה של הגדרת ה-VPC המשותף זמין במאמר ביטול ההקצאה של VPC משותף.
ב-API ובממשק שורת הפקודה, VPC משותף נקרא גם XPN.
מכסות, מגבלות ומשאבים שעומדים בדרישות
לפני שמתחילים, חשוב להכיר את ה-VPC המשותף ואת IAM, ובמיוחד:
חשוב לשים לב למכסות ולמגבלות שרלוונטיות ל-VPC משותף.
חשוב להבין אילו משאבים יכולים להשתתף.
מוודאים שהפעלתם את Compute Engine API ואת החיוב בפרויקט המארח ובכל פרויקט שירות שאתם מתכננים לצרף לפרויקט המארח.
הכנת הארגון
כשמכינים את הארגון, חשוב לזכור את הפרטים הבאים.
אדמינים ו-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 מופיע במאמר הטלת מנעול למניעת מחיקה על פרויקט במסמכי התיעוד של מנהל המשאבים.
מכיוון שמדיניות ארגון חלה על כל הפרויקטים בארגון, צריך לבצע את השלבים האלה רק פעם אחת כדי להגביל את הסרת מנעול למניעת מחיקה.
מבצעים אימות ל-
gcloudכאדמין ארגוני או כחשבון משתמש ב-IAM עם התפקידorgpolicy.policyAdmin. מחליפים אתORG_ADMINבשם של אדמין בארגון:gcloud auth login ORG_ADMIN
כדי לראות את מספר הארגון, מריצים את הפקודה הבאה.
gcloud organizations list
כדי לאכוף את מדיניות
compute.restrictXpnProjectLienRemovalבארגון, מריצים את הפקודה הבאה. מחליפים אתORG_IDבמספר שקבעתם בשלב הקודם.gcloud resource-manager org-policies enable-enforce \ --organization ORG_ID compute.restrictXpnProjectLienRemovalכדי להגן על החשבון, מומלץ להתנתק מ-
gcloudאחרי שמסיימים לבצע משימות כאדמינים של הארגון.gcloud auth revoke ORG_ADMIN
הגבלת קבצים מצורפים בפרויקט המארח
כברירת מחדל, אדמין של VPC משותף יכול לצרף פרויקט לא מארח לכל פרויקט מארח באותו ארגון. אדמין של מדיניות הארגון יכול להגביל את קבוצת הפרויקטים המארחים שאליהם אפשר לצרף פרויקט לא מארח או פרויקטים לא מארחים בתיקייה או בארגון. מידע נוסף זמין במאמר בנושא constraints/compute.restrictSharedVpcHostProjects constraint.
הגבלת רשתות המשנה בפרויקט המארח שפרויקט שירות יכול להשתמש בהן
כברירת מחדל, אחרי שמגדירים VPC משותף, גורמים ראשיים ב-IAM בפרויקטים של שירות יכולים להשתמש בכל רשת משנה בפרויקט המארח, אם יש להם הרשאות מתאימות ב-IAM.
בנוסף לניהול הרשאות של משתמשים ספציפיים, אדמין של מדיניות הארגון יכול להגדיר מדיניות כדי להגדיר את קבוצת רשתות המשנה שאפשר לגשת אליהן מפרויקט מסוים או מפרויקטים בתיקייה או בארגון.
מידע נוסף זמין במאמר בנושא constraints/compute.restrictSharedVpcSubnetworks constraint.
מניעת כיבוי לא מכוון של פרויקטים מארחים
ניתוק החיוב ברשת VPC משותפת עלול להוביל להשבתה מלאה של כל המשאבים התלויים, כולל פרויקטים של שירותים. כדי למנוע מצב שבו רשת ה-VPC המשותפת תיסגר בטעות בגלל חיוב לא פעיל או מושבת, אפשר לנעול את הקישור בין פרויקט המארח לבין החשבון לחיוב שלו.
המלצה על אדמינים של VPC משותף
אדמין ארגוני יכול להקצות לישות מורשית אחת או יותר ב-IAM את התפקידים אדמין של VPC משותף ואדמין IAM של פרויקט.
התפקיד 'אדמין IAM בפרויקט' מעניק לאדמינים של VPC משותף הרשאה לשתף את כל רשתות המשנה הקיימות והעתידיות, ולא רק רשתות משנה ספציפיות. ההרשאה הזו יוצרת קישור ברמת הארגון או התיקייה, ולא ברמת הפרויקט. לכן, צריך להגדיר את החשבונות הראשיים ב-IAM בארגון, ולא רק בפרויקט בתוך הארגון.
המסוף
כדי להעניק את התפקיד 'אדמין של VPC משותף' ברמת הארגון
נכנסים למסוף Google Cloud כאדמינים ארגוניים, ואז עוברים לדף IAM.
בתפריט הפרויקט, בוחרים את הארגון.
אם בוחרים פרויקט, בתפריט תפקידים מוצגים ערכים שגויים.
לוחצים על הוספה.
מזינים את כתובות האימייל של New principals.
בתפריט תפקידים, בוחרים באפשרות Compute Engine > Compute Shared VPC Admin.
לוחצים על הוספת תפקיד נוסף.
בתפריט הנפתח Roles, בוחרים באפשרות מנהל המשאבים > Project IAM Admin.
לוחצים על Save.
כדי לתת את התפקיד 'אדמין ל-VPC משותף' ברמת התיקייה
נכנסים למסוף Google Cloud כאדמינים ארגוניים, ואז עוברים לדף IAM.
בתפריט הפרויקט, בוחרים את התיקייה.
אם בוחרים פרויקט או ארגון, האפשרויות שמוצגות לא נכונות.
לוחצים על הוספה.
מזינים את כתובות האימייל של New principals.
בקטע Select a role (בחירת תפקיד), בוחרים באפשרות Compute Engine > Compute Shared VPC Admin (Compute Engine > אדמין של רשת VPC משותפת ב-Compute).
לוחצים על הוספת תפקיד נוסף.
בתפריט Roles, בוחרים באפשרות מנהל המשאבים > Project IAM Admin.
לוחצים על הוספת תפקיד נוסף.
בתפריט Roles (תפקידים), בוחרים באפשרות Resource Manager > Compute Network Viewer (צפייה ברשת Compute).
לוחצים על Save.
gcloud
עוברים אימות ב-
gcloudכאדמינים של הארגון. מחליפים אתORG_ADMINבשם של אדמין בארגון:gcloud auth login ORG_ADMIN
כדי לראות את מספר הארגון, בודקים את הפלט של הפקודה הזו.
gcloud organizations list
כדי להקצות את התפקיד 'אדמין של VPC משותף' ברמת הארגון:
הקצאת התפקיד 'אדמין של 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"
כדי להקצות את התפקיד 'אדמין של VPC משותף' ברמת התיקייה:
כדי לדעת מה מזהה התיקייה, בודקים את הפלט של הפקודה הזו.
gcloud resource-manager folders list --organization=ORG_ID
הקצאת התפקיד 'אדמין של 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"
אחרי שמסיימים לבצע משימות להגנה על החשבון, מבטלים את האסימון של חשבון האדמין של הארגון בכלי שורת הפקודה
gcloud.gcloud auth revoke ORG_ADMIN
API
כדי להקצות את התפקיד Shared VPC Admin ברמת הארגון, פועלים לפי השלבים הבאים:
מגלים את מספר מזהה הארגון.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
מתארים את הפרטים של מדיניות הארגון הקיימת ואז מתעדים אותם.
POST https://cloudresourcemanager.googleapis.com/v1/organizations/ORG_ID:getIamPolicy
מחליפים את
ORG_IDבמזהה הארגון.מקצים את התפקיד 'אדמין של VPC משותף'.
POST https://cloudresourcemanager.googleapis.com/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.-
כדי להקצות את התפקיד Shared VPC Admin ברמת התיקייה, משתמשים בבקשה הבאה:
מגלים את מספר מזהה הארגון.
POST https://cloudresourcemanager.googleapis.com/v1/organizations
מאתרים את מזהה התיקייה.
GET https://cloudresourcemanager.googleapis.com/v2/folders?parent=organizations/ORG_ID
מחליפים את
ORG_IDבמזהה הארגון.מתארים את פרטי מדיניות התיקיות הקיימת ורושמים אותם.
POST https://cloudresourcemanager.googleapis.com/v2/folders/FOLDER_ID:getIamPolicy
מחליפים את
FOLDER_IDבמזהה התיקייה.מקצים את התפקיד 'אדמין של VPC משותף'.
POST https://cloudresourcemanager.googleapis.com/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 משותף יכולים גם ליצור ולמחוק פרויקטים אם יש להם את התפקידים 'יצירת פרויקטים' ו'כלי למחיקת פרויקטים' (roles/resourcemanager.projectCreator ו-roles/resourcemanager.projectDeleter) בארגון.
כשמפעילים פרויקט מארח, משאבי הרשת של הפרויקט לא משותפים אוטומטית עם פרויקטי שירות. כדי לשתף רשתות ורשתות משנה נבחרות עם פרויקטי השירות, צריך לצרף פרויקטי שירות לפרויקט המארח.
המסוף
אם עדיין אין לכם את תפקיד האדמין של Compute Shared VPC (roles/compute.xpnAdmin), לא תוכלו לראות את הדף הזה במסוף Google Cloud .
נכנסים לדף VPC משותף במסוף Google Cloud .
נכנסים כאדמין של VPC משותף.
בוחרים את הפרויקט שרוצים להפעיל כפרויקט מארח של VPC משותף מתוך בורר הפרויקטים.
לוחצים על הגדרת VPC משותף.
בדף הבא, לוחצים על שמירה והמשך בקטע הפעלת פרויקט המארח.
בקטע Select subnets (בחירת רשתות משנה), מבצעים אחת מהפעולות הבאות:
- לוחצים על שיתוף כל תת-הרשתות (הרשאות ברמת הפרויקט) אם רוצים לשתף את כל תת-הרשתות הנוכחיות והעתידיות ברשתות ה-VPC של הפרויקט המארח עם פרויקטים של שירות ואדמינים של פרויקטים של שירות שצוינו בשלבים הבאים.
- לוחצים על תת-רשתות נפרדות (הרשאות ברמת תת-הרשת) אם רוצים לשתף באופן סלקטיבי תת-רשתות מרשתות ה-VPC של הפרויקט המארח עם פרויקטים של שירותים ועם אדמינים של פרויקטים של שירותים. אחר כך בוחרים באפשרות Subnets to share (רשתות משנה לשיתוף).
לוחצים על Continue.
מוצג המסך הבא.בקטע Project names (שמות פרויקטים), מציינים את פרויקטי השירות שרוצים לצרף לפרויקט המארח. שימו לב: צירוף פרויקטים של שירות לא מגדיר אדמינים של פרויקטים של שירות. ההגדרה הזו מתבצעת בשלב הבא.
בקטע Select users by role, מוסיפים אדמינים של פרויקט שירות. המשתמשים האלה יקבלו את תפקיד ה-IAM
compute.networkUserברשתות המשנה המשותפות. רק אדמינים של פרויקט שירות יכולים ליצור משאבים בתת-הרשתות של פרויקט המארח של ה-VPC המשותף.לוחצים על Save.
gcloud
מאמתים את עצמכם ב-
gcloudכאדמינים של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם של אדמין ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
מפעילים VPC משותף בפרויקט שרוצים להפוך לפרויקט מארח. מחליפים את
HOST_PROJECT_IDבמזהה הפרויקט.gcloud compute shared-vpc enable HOST_PROJECT_ID
מוודאים שהפרויקט מופיע כפרויקט מארח של הארגון. מחליפים את
ORG_IDבמזהה הארגון (שנקבע על ידיgcloud organizations list).gcloud compute shared-vpc organizations list-host-projects ORG_ID
אם הייתם צריכים להפעיל רק פרויקט מארח, אתם יכולים להתנתק מ-
gcloudכדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף. אם לא, מדלגים על השלב הזה וממשיכים לשלבים של צירוף פרויקטים של שירותים.gcloud auth revoke SHARED_VPC_ADMIN
API
מפעילים VPC משותף בפרויקט באמצעות פרטי כניסה עם הרשאות אדמין של VPC משותף.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
מחליפים את
HOST_PROJECT_IDבמזהה הפרויקט שיהיה פרויקט מארח של VPC משותף.מידע נוסף זמין במאמר בנושא השיטה
projects.enableXpnHost.מוודאים שהפרויקט מופיע כפרויקט מארח.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.מידע נוסף זמין במאמר בנושא השיטה
projects.listXpnHosts.
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי להפעיל פרויקט מארח.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
צירוף פרויקטים של שירות
כדי שמנהלי פרויקט השירות יוכלו להשתמש ב-VPC המשותף, הם צריכים לצרף את פרויקט השירות לפרויקט מארח. אדמין של VPC משותף צריך לבצע את השלבים הבאים כדי להשלים את הצירוף.
פרויקט שירות יכול להיות מצורף רק לפרויקט מארח אחד, אבל פרויקט מארח יכול לתמוך בכמה פרויקטים של שירות. פרטים נוספים מופיעים בקטע מגבלות ספציפיות ל-VPC משותף בדף המכסות של VPC.
המסוף
- נכנסים למסוף Google Cloud כאדמינים של VPC משותף.
- נכנסים לדף VPC משותף במסוף Google Cloud .
כניסה לדף VPC משותף - לוחצים על הכרטיסייה פרויקטים מצורפים.
- בכרטיסייה Attached projects (פרויקטים מצורפים), לוחצים על הלחצן Attach projects (צירוף פרויקטים).
- מסמנים את התיבות של פרויקטי השירות שרוצים לצרף בקטע שמות הפרויקטים. שימו לב: צירוף פרויקטים של שירות לא מגדיר אדמינים של פרויקטים של שירות. ההגדרה הזו מתבצעת בשלב הבא.
- בקטע VPC network permissions, בוחרים את התפקידים שהישויות המורשות שלהם יקבלו את התפקיד
compute.networkUser. לסובייקטים ב-IAM מוענק התפקיד Network User (משתמש ברשת) לכל הפרויקט המארח או לתת-רשתות מסוימות בפרויקט המארח, בהתאם למצב השיתוף של רשת ה-VPC. חשבונות המשתמשים האלה נקראים אדמינים של פרויקט שירות בפרויקטים הרלוונטיים. - בקטע מצב שיתוף רשת VPC, בוחרים באחת מהאפשרויות הבאות:
- לוחצים על שיתוף כל רשתות המשנה (הרשאות ברמת הפרויקט) כדי לשתף את כל רשתות המשנה הנוכחיות והעתידיות ברשתות ה-VPC של הפרויקט המארח עם כל פרויקטי השירות ועם האדמינים של פרויקטי השירות.
- לוחצים על Individual subnets (subnet-level permissions) (תת-רשתות נפרדות (הרשאות ברמת תת-הרשת)) אם רוצים לשתף באופן סלקטיבי תת-רשתות מרשתות VPC של הפרויקט המארח עם פרויקטים של שירותים ואדמינים של פרויקטים של שירותים. אחר כך בוחרים באפשרות Subnets to share (רשתות משנה לשיתוף).
- לוחצים על Save.
gcloud
אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-
gcloudכאדמין של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם האדמין של ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
צירוף פרויקט שירות לפרויקט מארח שהופעל בעבר. מחליפים את
SERVICE_PROJECT_IDבמזהה הפרויקט של פרויקט השירות ואתHOST_PROJECT_IDבמזהה הפרויקט של פרויקט המארח.gcloud compute shared-vpc associated-projects add SERVICE_PROJECT_ID \ --host-project HOST_PROJECT_IDמוודאים שפרויקט השירות צורף.
gcloud compute shared-vpc get-host-project SERVICE_PROJECT_ID
אפשר גם לראות את פרויקטי השירות שמצורפים לפרויקט המארח:
gcloud compute shared-vpc list-associated-resources HOST_PROJECT_ID
אם הייתם צריכים רק לצרף פרויקט שירות, אתם יכולים להתנתק מ-
gcloudכדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף. אחרת, מדלגים על השלב הזה ומגדירים אדמינים של פרויקט שירות לכל רשתות המשנה או רק לחלק מרשתות המשנה.gcloud auth revoke SHARED_VPC_ADMIN
API
מצרפים פרויקט שירות לפרויקט המארח של ה-VPC המשותף.
POST https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT" } }מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף. -
SERVICE_PROJECT: מזהה פרויקט השירות לצירוף.
מידע נוסף זמין במאמר בנושא השיטה
projects.enableXpnResource.-
מוודאים שפרויקטי השירות מצורפים לפרויקט המארח.
GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
מידע נוסף זמין במאמר בנושא השיטה
projects.getXpnResources.-
Terraform
אפשר להשתמש במשאב של Terraform כדי לצרף פרויקט שירות.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
אדמינים של פרויקט שירות לכל רשתות המשנה
אדמין של VPC משותף יכול להקצות ישות (principal) ב-IAM מפרויקט שירות להיות אדמין של פרויקט שירות עם גישה לכל תת-הרשתות בפרויקט המארח. אדמינים של פרויקט שירות מהסוג הזה מקבלים את התפקיד compute.networkUser עבור כל פרויקט המארח. המשמעות היא שיש להם גישה לכל רשתות המשנה שהוגדרו בפרויקט המארח, וגם לרשתות משנה עתידיות.
משתמש עם תפקיד compute.networkUser בפרויקט המארח יכול לראות את כל רשתות המשנה בפרויקטים של שירותים שמצורפים אליו.
המסוף
כדי להגדיר חשבון ראשי ב-IAM מפרויקט שירות כאדמין של פרויקט השירות עם גישה לכל רשתות המשנה בפרויקט מארח באמצעות מסוףGoogle Cloud , אפשר לעיין בקטע צירוף פרויקטים של שירותים.
gcloud
בשלבים האלה מוסבר איך להגדיר חשבון משתמש ב-IAM מפרויקט שירות כאדמין של פרויקט שירות עם גישה לכל רשתות המשנה בפרויקט מארח. לפני שמבצעים את השלבים האלה, צריך להפעיל פרויקט מארח ולצרף את פרויקט השירות לפרויקט המארח.
אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-
gcloudכאדמין של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם האדמין של ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
יוצרים קשירת מדיניות כדי להפוך את הגורם הראשי ב-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:כדי לציין חשבון שירות. מידע נוסף על תרחיש השימוש הזה זמין במאמר חשבונות שירות כאדמינים של פרויקט שירות.
- משתמשים ב-
חוזרים על השלב הקודם לכל מנהל נוסף של פרויקט שירות שצריך להגדיר.
אם סיימתם להגדיר אדמינים של פרויקטים של שירותים, מומלץ להתנתק מ-
gcloudכדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף.gcloud auth revoke SHARED_VPC_ADMIN
API
מתארים את המדיניות הקיימת של הפרויקט ואז מתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך
etag.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.יוצרים קשר בין מדיניות לבין גורם ראשי ב-IAM כדי להגדיר את הגורמים הראשיים בפרויקט השירות כאדמינים של פרויקט השירות.
POST https://cloudresourcemanager.googleapis.com/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 משותף יכול להקצות ישות (principal) ב-IAM מפרויקט שירות להיות אדמין של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט המארח. האפשרות הזו מאפשרת להגדיר אדמינים של פרויקט שירות בצורה פרטנית יותר, על ידי הקצאת התפקיד compute.networkUser רק לחלק מרשתות המשנה בפרויקט המארח.
משתמש עם תפקיד compute.networkUser בפרויקט המארח יכול לראות את כל רשתות המשנה בפרויקטים של שירותים שמצורפים אליו.
המסוף
כדי להגדיר חשבון ראשי ב-IAM מפרויקט שירות כאדמין של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט מארח באמצעותGoogle Cloud המסוף, אפשר לעיין בקטע צירוף פרויקטים של שירות.
gcloud
השלבים האלה מתארים איך להגדיר חשבונות משתמשים ב-IAM מפרויקט שירות כאדמינים של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט מארח. כדי להגדיר אותם, צריך קודם להפעיל פרויקט מארח ולצרף את פרויקט השירות לפרויקט המארח.
אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-
gcloudכאדמין של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם האדמין של ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
בוחרים את רשת המשנה בפרויקט המארח שאליה רוצים לתת גישה לאדמינים של פרויקט השירות. קבלת מדיניות ה-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מעתיקים את פלט ה-JSON מהשלב הקודם ושומרים אותו בקובץ. לצורך הבהרה, השלבים האלה שומרים את הקובץ בשם
subnet-policy.json.משנים את הקובץ
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:כדי לציין חשבון שירות. מידע נוסף על תרחיש השימוש הזה זמין במאמר חשבונות שירות כאדמינים של פרויקט שירות.
- מחליפים את
מעדכנים את הקישור של המדיניות לרשת המשנה באמצעות התוכן של הקובץ
subnet-policy.json.gcloud compute networks subnets set-iam-policy SUBNET_NAME subnet-policy.json \ --region SUBNET_REGION \ --project HOST_PROJECT_IDאם סיימתם להגדיר אדמינים של פרויקטים של שירותים, מומלץ להתנתק מ-
gcloudכדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף.gcloud auth revoke SHARED_VPC_ADMIN
API
מתארים את פרטי מדיניות רשת המשנה הקיימת ואז מתעדים אותם. תצטרכו את המדיניות הקיימת ואת הערך
etag.GET https://compute.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת. -
SUBNET_NAME: שם רשת המשנה שרוצים לשתף. -
SUBNET_REGION: האזור שבו נמצאת רשת המשנה.
-
כדי לתת לאדמינים של פרויקט השירות גישה לרשתות משנה בפרויקט המארח, צריך לעדכן את מדיניות רשתות המשנה.
POST https://compute.googleapis.com/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 משותף יכול גם להגדיר חשבונות שירות מפרויקטים של שירותים כאדמינים של פרויקטים של שירותים. בקטע הזה מוסבר איך להגדיר שני סוגים שונים של חשבונות שירות כאדמינים של פרויקט שירות:
חשבונות שירות בניהול המשתמש בפורמט הבא:
USER_ID@SERVICE_PROJECT_ID.iam.gserviceaccount.comחשבון השירות של Google APIs בפורמט הבא:
SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com
אפשר להעניק את התפקיד Service Project Admin (compute.networkUser) לכל רשתות המשנה או לחלק מרשתות המשנה של פרויקט המארח. עם זאת, כדי להקל על ההבנה, בסעיף הזה נסביר רק איך להגדיר כל אחד משני סוגי חשבונות השירות כאדמינים של פרויקט השירות עבור כל רשתות המשנה של פרויקט המארח.
חשבונות שירות בניהול המשתמשים כאדמינים של פרויקט שירות
בהוראות האלה מוסבר איך להגדיר חשבון שירות בניהול המשתמשים כ-Service Project Admin לכל תת-הרשתות של פרויקט המארח של ה-VPC המשותף.
המסוף
- נכנסים למסוף Google Cloud כאדמינים של VPC משותף.
- נכנסים לדף Settings במסוף Google Cloud .
מעבר לדף ההגדרות - משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין בפרויקט השירות.
- מעתיקים את מזהה הפרויקט של פרויקט השירות. לצורך הבהרה, התהליך הזה מתייחס למזהה פרויקט השירות כ-
SERVICE_PROJECT_ID. - משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
- נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - לוחצים על הוספה.
- מוסיפים את הערך
SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.iam.gserviceaccount.comלשדה Principals (חשבונות משתמשים), ומחליפים אתSERVICE_ACCOUNT_NAMEבשם של חשבון השירות. - בתפריט Roles (תפקידים), בוחרים באפשרות Compute Engine > Compute Network User (Compute Engine > משתמש ברשת Compute).
- לוחצים על הוספה.
gcloud
אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-
gcloudכאדמין של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם האדמין של ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
אם אתם לא יודעים מהו מזהה פרויקט השירות, אתם יכולים להציג רשימה של כל הפרויקטים בארגון. ברשימה הזו מוצג מזהה הפרויקט של כל אחד מהם.
gcloud projects list
יוצרים קישור למדיניות כדי להגדיר את חשבון השירות כאדמין בפרויקט השירות. מחליפים את
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.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
מתארים את המדיניות הקיימת של הפרויקט ואז מתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך
etag.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.יוצרים קישור למדיניות כדי להגדיר חשבונות שירות כאדמינים של פרויקט השירות.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.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.
המסוף
- נכנסים למסוף Google Cloud כאדמינים של VPC משותף.
- נכנסים לדף Settings במסוף Google Cloud .
מעבר לדף ההגדרות - משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין בפרויקט השירות.
- מעתיקים את מספר הפרויקט של פרויקט השירות. לצורך הבהרה, במסגרת ההליך הזה, מספר פרויקט השירות נקרא
SERVICE_PROJECT_NUMBER. - משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
- נכנסים לדף IAM במסוף Google Cloud .
כניסה לדף IAM - לוחצים על הוספה.
- מוסיפים את
SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com לשדה חברים. - בתפריט Roles (תפקידים), בוחרים באפשרות Compute Engine > Compute Network User (Compute Engine > משתמש ברשת Compute).
- לוחצים על הוספה.
gcloud
אם עדיין לא עשיתם זאת, עליכם לבצע אימות ב-
gcloudכאדמין של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם האדמין של ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
מאתרים את מספר הפרויקט של פרויקט השירות. לשם הבהרה, בהליך הזה מספר פרויקט השירות נקרא
SERVICE_PROJECT_NUMBER. מחליפים אתSERVICE_PROJECT_IDבמזהה הפרויקט של פרויקט השירות.gcloud projects describe SERVICE_PROJECT_ID --format='get(projectNumber)'
אם אתם לא יודעים מה מזהה הפרויקט של פרויקט השירות, אתם יכולים להציג רשימה של כל הפרויקטים בארגון. ברשימה הזו מופיע מספר הפרויקט של כל אחד מהם.
gcloud projects list
יוצרים קישור למדיניות כדי להגדיר את חשבון השירות כאדמין בפרויקט השירות. מחליפים את
HOST_PROJECT_IDבמזהה הפרויקט של הפרויקט המארח ואתSERVICE_PROJECT_NUMBERבמספר פרויקט השירות.gcloud projects add-iam-policy-binding HOST_PROJECT_ID \ --member "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
מתארים את המדיניות הקיימת של הפרויקט ואז מתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך
etag.POST https://cloudresourcemanager.googleapis.com/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.מציגים את רשימת הפרויקטים כדי למצוא את מספר הפרויקט.
GET https://cloudresourcemanager.googleapis.com/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
מחליפים את
SERVICE_PROJECT_IDבמזהה של פרויקט השירות שבו נמצא חשבון השירות.יוצרים קישור למדיניות כדי להגדיר חשבונות שירות כאדמינים של פרויקט השירות.
POST https://cloudresourcemanager.googleapis.com/v1/projects/HOST_PROJECT_ID:setIamPolicy { "bindings": [ ...copy existing bindings { "members": [ "serviceAccount:SERVICE_PROJECT_NUMBER@cloudservices.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) לכל הפרויקט המארח או רק לחלק מרשתות המשנה שלו. לאדמינים בפרויקט השירות צריכות להיות גם הרשאות אחרות שנדרשות לניהול פרויקטים של שירותים. לדוגמה, אדמין של פרויקט שירות יכול להיות גם בעלים של פרויקט, או שלפחות יהיה לו התפקיד 'אדמין מכונות של Compute' (roles/compute.instanceAdmin) בפרויקט.
הצגת רשימה של תת-רשתות זמינות
אדמינים בפרויקט שירות יכולים לראות את רשימת רשתות המשנה שקיבלו עבורן הרשאה, באופן הבא.
המסוף
נכנסים לדף VPC משותף במסוף Google Cloud .
gcloud
אם עדיין לא עשיתם זאת, צריך לבצע אימות ב-
gcloudכאדמין של פרויקט שירות. מחליפים אתSERVICE_PROJECT_ADMINבשם של האדמין בפרויקט השירות:gcloud auth login SERVICE_PROJECT_ADMIN
מריצים את הפקודה הבאה, ומחליפים את
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.googleapis.com/compute/v1/projects/HOST_PROJECT_ID/aggregated/subnetworks/listUsable
מחליפים את HOST_PROJECT_ID במזהה של הפרויקט המארח של ה-VPC המשותף.
מידע נוסף זמין במאמר בנושא השיטה subnetworks.listUsable.
שמירת כתובת IPv4 או IPv6 פנימית סטטית
אדמינים בפרויקט שירות יכולים לשריין כתובת IPv4 או IPv6 פנימית ברשת משנה של רשת VPC משותפת. אובייקט ההגדרה של כתובת ה-IP נוצר בפרויקט השירות, והערך שלו מגיע מטווח כתובות ה-IPv4 שזמינות ברשת המשנה המשותפת שנבחרה.
כדי לשריין כתובת IP פנימית עצמאית בפרויקט השירות, מבצעים את השלבים הבאים.
המסוף
- הגדרת VPC משותף
נכנסים לדף VPC משותף במסוף Google Cloud .
נכנסים כאדמין של VPC משותף.
בוחרים את פרויקט השירות מתוך בורר הפרויקטים.
כדי לעבור לדף כתובות IP, בוחרים באפשרות רשת VPC > כתובות IP.
לוחצים על Reserve internal static IP address.
בשדה Name, מזינים שם לכתובת ה-IP.
ברשימה IP version בוחרים את גרסת ה-IP הנדרשת:
- כדי לשמור כתובת IPv4 פנימית סטטית, בוחרים באפשרות IPv4.
- כדי לשמור כתובת IPv6 פנימית סטטית, בוחרים באפשרות IPv6.
לוחצים על הלחצן רשתות ששותפו איתי.
ברשימות Network ו-Subnetwork, בוחרים רשת VPC ורשת משנה בהתאמה.
מציינים איך רוצים לשריין את כתובת ה-IP:
- כדי לציין כתובת IPv4 פנימית סטטית להקצאה, בכתובת IP סטטית בוחרים באפשרות אני רוצה לבחור ומזינים כתובת IP מותאמת אישית. אחרת, המערכת מקצה לכם באופן אוטומטי כתובת IPv4 פנימית סטטית ברשת המשנה.
- לגבי כתובות IPv6, המערכת מקצה באופן אוטומטי כתובת IPv6 פנימית סטטית מתוך טווח כתובות ה-IPv6 הפנימי של תת-הרשת.
אופציונלי: אם רוצים לשתף את כתובת ה-IPv4 הפנימית הסטטית בכמה ממשקי קצה, בוחרים באפשרות משותפת בייעוד. ברירת המחדל היא לא משותף.
לוחצים על Reserve.
gcloud
אם עדיין לא עשיתם זאת, צריך לבצע אימות ל-Google Cloud CLI בתור אדמין של פרויקט שירות. מחליפים את
SERVICE_PROJECT_ADMINבשם של האדמין בפרויקט השירות:gcloud auth login SERVICE_PROJECT_ADMIN
משתמשים בפקודה
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.googleapis.com/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 זמינה.
מציינים את רשת המשנה של המארח:
שמירת כתובת IPv4 מרשת המשנה של הפרויקט המארח לשימוש בפרויקט השירות:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
שמירת כתובת IPv4 חיצונית סטטית
משאב בפרויקט שירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית שמוגדרת בפרויקט השירות או בפרויקט המארח. לכן, משאב בפרויקטים המצורפים של השירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית ששמורה בפרויקט המארח.
שמירת כתובת IPv6 חיצונית סטטית
אדמינים בפרויקט שירות יכולים לשמור כתובת IPv6 חיצונית סטטית בפרויקט שירות. אובייקט ההגדרה של כתובת ה-IPv6 נוצר בפרויקט השירות, והערך שלו מגיע מטווח כתובות ה-IPv6 שזמינות ברשת המשנה המשותפת שנבחרה.
המסוף
אפשר לשמור כתובת IPv6 חיצונית עצמאית בפרויקט השירות באמצעות מסוףGoogle Cloud :
- הגדרת VPC משותף
- במסוף Google Cloud , עוברים לדף VPC משותף.
כניסה לדף VPC משותף - נכנסים כאדמין של VPC משותף.
- בוחרים את פרויקט השירות מתוך בורר הפרויקטים.
- כדי לעבור לדף כתובות IP, בוחרים באפשרות רשת VPC > כתובות IP.
- לוחצים על שמירת כתובת IP חיצונית סטטית.
- בוחרים שם לכתובת החדשה.
- מציינים אם מסלול שירות הרשת הוא Premium או Standard. הזמנה של כתובת IPv6 סטטית נתמכת רק במסלול Premium.
- בקטע IP version, בוחרים באפשרות IPv6.
- מציינים אם כתובת ה-IP הזו היא אזורית או גלובלית.
- אם אתם שומרים כתובת IP סטטית למאזן עומסים גלובלי, בוחרים באפשרות Global.
- אם אתם שומרים כתובת IP סטטית למכונה וירטואלית או למאזן עומסים אזורי, בוחרים באפשרות אזורי ואז בוחרים את האזור שבו רוצים ליצור את הכתובת.
- בוחרים באפשרויות הבאות:
- רשתות בפרויקט הזה: בוחרים באפשרות הזו אם רוצים לשריין כתובת IPv6 חיצונית ברשת משנה של אותה רשת ענן וירטואלי פרטי (VPC) שבה משריינים את כתובת ה-IPv6.
- רשתות ששותפו איתי: בוחרים באפשרות הזו אם רוצים לשריין כתובת IPv6 חיצונית ברשת משנה של רשת VPC משותפת.
בהתאם לבחירה שלכם, בוחרים באחת מהאפשרויות הבאות:
- Network: רשת ה-VPC
- רשת משנה: רשת המשנה שממנה יוקצו כתובת IPv6 אזורית סטטית
- סוג נקודת הקצה: בוחרים באפשרות VM instance (מכונת VM) או Network Load Balancer (מאזן עומסים ברשת)
אופציונלי: אם בחרתם באפשרות VM instance (מכונת VM) כסוג נקודת הקצה, אתם צריכים לבחור מכונת VM לצירוף כתובת ה-IPv6.
לוחצים על Reserve.
gcloud
אם עדיין לא עשיתם זאת, צריך לבצע אימות ב-
gcloudכאדמין של פרויקט שירות. מחליפים אתSERVICE_PROJECT_ADMINבשם של האדמין בפרויקט השירות:gcloud auth login SERVICE_PROJECT_ADMIN
משתמשים בפקודה
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.googleapis.com/compute/v1/projects/SERVICE_PROJECT_ID/regions/REGION/addresses
{
"name": "ADDRESS_NAME",
"ipVersion": "IPV6",
"ipv6EndpointType": "VM|LB",
"networkTier": "PREMIUM",
"subnetwork": "projects/HOST_PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME",
"addressType": "EXTERNAL"
}
מחליפים את מה שכתוב בשדות הבאים:
-
SERVICE_PROJECT_ID: מזהה פרויקט השירות שבו אתם שומרים את כתובת ה-IPv6. -
REGION: האזור שבו נמצאת כתובת ה-IPv6 השמורה ורשת המשנה המשותפת. -
ADDRESS_NAME: שם לכתובת ה-IPv6 החיצונית הסטטית השמורה. -
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף. -
SUBNET_NAME: השם של תת-הרשת המשותפת.
יצירת מופע
חשוב לזכור את הנקודות הבאות כשמשתמשים ב-VPC משותף כדי ליצור מופע:
התהליך הרגיל של יצירת מופע כולל בחירה של אזור, רשת ורשת משנה. רשת המשנה והאזור שנבחרו צריכים להיות באותו אזור. כשמשתמש עם הרשאת אדמין בפרויקט שירות יוצר מכונה וירטואלית באמצעות תת-רשת מרשת VPC משותפת, האזור שנבחר למכונה הווירטואלית צריך להיות באותו אזור כמו תת-הרשת שנבחרה.
כשיוצרים מכונה עם כתובת IPv4 פנימית סטטית שמורה, תת-הרשת והאזור כבר נבחרים כשכתובת ה-IPv4 הסטטית נוצרת. בקטע הזה מופיעה דוגמה לשימוש ב-
gcloudכדי ליצור מכונה עם כתובת IPv4 פנימית סטטית.אדמינים של פרויקטים של שירותים יכולים ליצור מופעים רק באמצעות רשתות משנה שקיבלו לגביהן הרשאה. כדי לראות אילו רשתות משנה זמינות, אפשר לעיין במאמר רשימת רשתות משנה זמינות.
כש- Google Cloud מקבל בקשה ליצור מכונה ברשת משנה של רשת VPC משותפת, הוא בודק אם למשתמש ה-IAM ששולח את הבקשה יש הרשאה להשתמש ברשת המשנה המשותפת הזו. אם הבדיקה תיכשל, המופע לא ייווצר והפונקציה Google Cloudתחזיר שגיאת הרשאות. לקבלת עזרה, פנו לאדמין של ה-VPC המשותף.
סוג ה-stack של המכונה שאתם יוצרים צריך להיות נתמך על ידי תת-הרשת המשותפת שבה אתם יוצרים את המכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של תת-הרשת קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.
המסוף
- הגדרת VPC משותף
נכנסים לדף VPC משותף במסוף Google Cloud .
נכנסים כאדמין של VPC משותף.
בוחרים את פרויקט השירות מתוך בורר הפרויקטים.
כדי לעבור לדף Create an instance, בוחרים באפשרות Compute Engine > VM instances > Create instance.
מציינים שם למכונה.
בשדה Region, בוחרים אזור שמכיל רשת משנה משותפת.
בקטע אפשרויות מתקדמות, לוחצים על Networking.
בקטע Network interfaces, לוחצים על לחצן הבחירה Networks shared with me.
ברשימה Shared subnetwork, בוחרים את רשת המשנה הנדרשת שבה רוצים ליצור את המופע:
- במקרה של מופע IPv4 בלבד, בוחרים תת-רשת IPv4 בלבד או תת-רשת עם תמיכה כפולה (IPv4 ו-IPv6).
- במקרה של מופע עם כתובות IPv4 ו-IPv6, בוחרים רשת משנה עם כתובות IPv4 ו-IPv6 עם סוג הגישה הנדרש ל-IPv6.
- במקרה של מכונה עם IPv6 בלבד, בוחרים רשת משנה עם תמיכה כפולה או רשת משנה עם IPv6 בלבד עם סוג הגישה הנדרש ל-IPv6.
בוחרים את סוג מחסנית ה-IP:
- IPv4 (single-stack)
- IPv4 ו-IPv6 (dual-stack)
- IPv6 (single-stack)
מציינים את כל הפרמטרים הנדרשים האחרים עבור המופע.
לוחצים על יצירה.
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 משותפת:
- שמירת כתובת IPv4 פנימית סטטית בפרויקט השירות מתוך טווח הכתובות הזמינות של פרויקט המארח.
יוצרים את המופע:
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 PREMIUM \ --zone ZONEמחליפים את מה שכתוב בשדות הבאים:
-
INSTANCE_NAME: השם של המכונה. -
SERVICE_PROJECT_ID: המזהה של פרויקט השירות. -
STACK_TYPE:IPV4_IPV6אוIPV6_ONLY(תצוגה מקדימה), בהתאם לשאלה אם רוצים שלמופע תהיה גם כתובת IPv4. -
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף. -
REGION: האזור שכולל את תת-הרשת המשותפת. -
SUBNET: השם של תת-הרשת המשותפת. -
IPV6_ADDRESS: כתובת ה-IPv6 להקצאה למכונה הווירטואלית. -
ZONE: אזור באזור שצוין.
-
API
דוגמאות:
כדי ליצור מכונה עם כתובת IPv4 פנימית ארעית, מציינים רק את רשת המשנה:
POST https://compute.googleapis.com/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.googleapis.com/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.googleapis.com/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.googleapis.com/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 כדי ליצור מכונה וירטואלית בפרויקט שירות.
מציינים את רשת המשנה של המארח:
יצירת מכונה וירטואלית בפרויקט שירות עם כתובת IPv4 ארעית מתת-הרשת המשותפת של הפרויקט המארח:
יוצרים מכונה וירטואלית בפרויקט שירות עם כתובת IPv4 סטטית שמורה מרשת המשנה המשותפת של הפרויקט המארח:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
יצירת תבנית של הגדרות מכונה
כשמשתמשים ב-VPC משותף כדי ליצור תבנית של הגדרות מכונה, חשוב לזכור את הנקודות הבאות:
התהליך של יצירת תבנית של הגדרות מכונה כולל בחירה של רשת ותת-רשת.
בתבניות שנוצרות לשימוש ברשת VPC משותפת במצב מותאם אישית, צריך לציין גם את הרשת וגם את רשת המשנה.
בתבניות שנוצרו לשימוש ברשת VPC משותפת במצב אוטומטי, אפשר לדחות את הבחירה של רשת משנה. במקרים האלה, רשת משנה נבחרת באופן אוטומטי באותו אזור כמו כל קבוצת מופעי מכונה מנוהלת שמשתמשת בתבנית. לרשתות במצב אוטומטי יש רשת משנה בכל אזור, בהגדרה.
כשחשבון משתמש ב-IAM יוצר תבנית של הגדרות מכונה,Google Cloud לא מבצע בדיקת הרשאות כדי לראות אם לחשבון המשתמש יש הרשאה להשתמש בתת-הרשת שצוינה. בדיקת ההרשאות הזו תמיד מתבצעת כשמתבצעת בקשה לקבוצת מופעי מכונה מנוהלים שמשתמשת בתבנית.
סוג ה-stack של תבנית של הגדרות מכונה שאתם יוצרים צריך להיות נתמך על ידי רשת המשנה המשותפת שבה אתם יוצרים את תבנית של הגדרות מכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של תת-הרשת קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.
המסוף
- הגדרת VPC משותף
- במסוף Google Cloud , עוברים לדף VPC משותף.
כניסה לדף VPC משותף - נכנסים כאדמין של VPC משותף.
- בוחרים את פרויקט השירות מתוך בורר הפרויקטים.
- כדי לעבור לדף Create an instance template (יצירת תבנית של הגדרות מכונה), בוחרים באפשרות Compute Engine > Instance templates > Create instance templates (יצירת תבניות של הגדרות מכונה).
- מציינים שם לתבנית של הגדרות מכונה.
- בקטע אפשרויות מתקדמות, לוחצים על רשת.
- בקטע Network interfaces, לוחצים על כפתור הבחירה Networks shared with me.
- ברשימה Shared subnetwork, בוחרים את רשת המשנה שבה רוצים ליצור את תבנית המכונה:
- אם תבנית של הגדרות מכונה היא IPv4 בלבד, בוחרים תת-רשת IPv4 בלבד או תת-רשת עם תמיכה כפולה (IPv4 ו-IPv6).
- לתבנית של הגדרות מכונה עם כתובות IPv4 ו-IPv6, בוחרים רשת משנה עם כתובות IPv4 ו-IPv6 עם סוג הגישה הנדרש ל-IPv6.
- בתבנית של הגדרות מכונה עם IPv6 בלבד, בוחרים תת-רשת עם תמיכה בשני הפרוטוקולים או תת-רשת עם IPv6 בלבד, עם סוג הגישה הנדרש ל-IPv6.
- בוחרים את סוג מחסנית ה-IP של תבנית המכונה:
- IPv4 (single-stack)
- IPv4 ו-IPv6 (dual-stack)
- IPv6 (single-stack)
- מציינים את כל הפרמטרים הנדרשים האחרים לתבנית של הגדרות מכונה.
- לוחצים על יצירה.
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: השם של תת-הרשת המשותפת.
-
יוצרים תבנית של הגדרות מכונה עם תמיכה בשני סוגי כתובות שמשתמשת ברשת משנה ברשת 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.googleapis.com/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.googleapis.com/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.googleapis.com/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.googleapis.com/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 של מכונות ה-VM מגיעות מרשת המשנה המשותפת של פרויקט המארח.
רשת המשנה צריכה להיות באותו אזור שבו ייווצרו המכונות הווירטואליות.
מציינים את רשת המשנה של המארח:
יוצרים תבנית של הגדרות מכונה וירטואלית בפרויקט השירות:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
יצירת קבוצות של מופעי מכונה מנוהלים
כשיוצרים קבוצה של מופעי מכונה מנוהלים באמצעות VPC משותף, חשוב לזכור את הנקודות הבאות:
כדי להשתמש בקבוצות מופעי מכונה מנוהלים עם VPC משותף, צריך להגדיר את חשבון השירות של Google APIs כאדמין בפרויקט השירות, כי משימות כמו יצירה אוטומטית של מכונות באמצעות התאמה אוטומטית לעומס מבוצעות על ידי חשבון השירות הזה.
התהליך הרגיל של יצירת קבוצת מופעים מנוהלים כולל בחירה של אזור או אזור משנה, בהתאם לסוג הקבוצה, ותבנית של הגדרות מכונה. (פרטי הרשת ורשת המשנה משויכים לתבנית של המופע). תבניות של הגדרות מכונה שעומדות בדרישות מוגבלות לאלה שמפנות לרשתות משנה באותו אזור שבו נעשה שימוש בקבוצת מופעי מכונה מנוהלים.
אדמינים של פרויקט שירות יכולים ליצור רק קבוצות מנוהלות של מופעים שבהן המופעים החברים משתמשים ברשתות משנה שהם קיבלו הרשאה לגשת אליהן. מכיוון שפרטי הרשת ורשת המשנה קשורים לתבנית של הגדרות מכונה, אדמינים של פרויקט שירות יכולים להשתמש רק בתבניות שמפנות לרשתות משנה שיש להם הרשאה להשתמש בהן.
כש- Google Cloud מקבל בקשה ליצור קבוצת מופעי מכונה מנוהלים, הוא בודק אם לישות המורשית ב-IAM ששולחת את הבקשה יש הרשאה להשתמש ברשת המשנה (באותו אזור כמו הקבוצה) שצוינה בתבנית של הגדרות מכונה. אם הבדיקה נכשלת, קבוצת המופעים המנוהלים לא נוצרת, והפונקציה Google Cloud מחזירה שגיאה:
Required 'compute.subnetworks.use' permission for 'projects/SUBNET_NAME.מציגים רשימה של רשתות משנה זמינות כדי לקבוע באילו מהן אפשר להשתמש, ופונים לאדמין של ה-VPC המשותף אם לחשבון השירות נדרשת גישה נוספת. מידע נוסף זמין במאמר חשבונות שירות כאדמינים של פרויקט שירות.
מידע נוסף זמין במאמר יצירת קבוצות של מופעים מנוהלים במאמרי העזרה של Compute Engine.
יצירת מאזן עומסים מסוג HTTP(S)
יש הרבה דרכים להגדיר מאזני עומסים חיצוניים של אפליקציות (ALB) ברשת VPC משותפת. לא משנה מה סוג הפריסה, כל הרכיבים של איזון העומסים צריכים להיות באותו ארגון ובאותה רשת VPC משותפת.
מידע נוסף על ארכיטקטורות נתמכות של VPC משותף זמין במאמרים הבאים:
- ארכיטקטורת VPC משותף למאזני עומסים חיצוניים של אפליקציות.
- ארכיטקטורת VPC משותף למאזני עומסים פנימיים של אפליקציות.
יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
בדוגמה הבאה מוסבר מה צריך לקחת בחשבון כשיוצרים מאזן עומסי רשת פנימי מסוג passthrough ברשת VPC משותפת. אדמינים בפרויקט שירות יכולים ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי שמשתמש ברשת משנה (בפרויקט המארח) שיש להם גישה אליה. כלל ההעברה הפנימי של מאזן העומסים מוגדר בפרויקט השירות, אבל ההפניה לתת-הרשת שלו מצביעה על תת-רשת ברשת VPC משותפת של הפרויקט המארח.
לפני שיוצרים מאזן עומסי רשת פנימי מסוג passthrough בסביבת VPC משותפת, כדאי לעיין בארכיטקטורה של VPC משותף.
המסוף
עוברים לדף איזון עומסים במסוף Google Cloud .
לדף איזון עומסיםיוצרים מאזן עומסים פנימי מסוג TCP/UDP ומבצעים את השינוי הבא: בקטע Configure frontend services (הגדרת שירותי חזית), בוחרים את רשת המשנה של ה-VPC המשותף שרוצים להשתמש בה בקטע Networks shared by other projects (רשתות שמשותפות עם פרויקטים אחרים) בתפריט Subnet (רשת משנה).
מסיימים ליצור את מאזן העומסים.
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.googleapis.com/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 כדי ליצור את כלל ההעברה.
מציינים את רשת המארח:
מציינים את רשת המשנה של המארח:
בפרויקט השירות, יוצרים כלל העברה ברשת וברשת המשנה של הפרויקט המארח:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
המאמרים הבאים
- מידע נוסף על VPC משותף זמין במאמר VPC משותף.
- הוראות להגדרת אשכולות Google Kubernetes Engine עם VPC משותף מופיעות במאמר הגדרת אשכולות עם VPC משותף.
- כאן אפשר ללמוד איך להגדיר גישה לרשת VPC משותפת מ-Cloud Run, מ-פונקציות Cloud Run או מסביבת App Engine standard.
- הוראות למחיקת הגדרת VPC משותף זמינות במאמר ביטול הקצאת משאבים של VPC משותף.