הקצאת 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 משותף' ברמת הארגון
נכנסים למסוף Cloud de Confiance כאדמינים ארגוניים, ואז עוברים לדף IAM.
בתפריט הפרויקט, בוחרים את הארגון.
אם בוחרים פרויקט, בתפריט תפקידים מוצגים ערכים שגויים.
לוחצים על הוספה.
מזינים את כתובות האימייל של New principals.
בתפריט Roles, בוחרים באפשרות Compute Engine > Compute Shared VPC Admin.
לוחצים על הוספת תפקיד נוסף.
בתפריט הנפתח Roles (תפקידים), בוחרים באפשרות Resource Manager (ניהול משאבים) > Project IAM Admin (אדמין של IAM בפרויקט).
לוחצים על Save.
כדי לתת את התפקיד 'אדמין של VPC משותף' ברמת התיקייה
נכנסים למסוף Cloud de Confiance כאדמינים ארגוניים, ואז עוברים לדף IAM.
בתפריט הפרויקט, בוחרים את התיקייה.
אם בוחרים פרויקט או ארגון, האפשרויות שמוצגות לא נכונות.
לוחצים על הוספה.
מזינים את כתובות האימייל של New principals.
בקטע Select a role, בוחרים באפשרות Compute Engine > Compute Shared VPC Admin.
לוחצים על הוספת תפקיד נוסף.
בתפריט Roles, בוחרים באפשרות מנהל המשאבים > Project IAM Admin.
לוחצים על הוספת תפקיד נוסף.
בתפריט Roles (תפקידים), בוחרים באפשרות Resource Manager > Compute Network Viewer (מנהל המשאבים > צפייה ברשת Compute).
לוחצים על Save.
gcloud
עוברים אימות ב-
gcloudכאדמינים של הארגון. מחליפים אתORG_ADMINבשם של אדמין בארגון:gcloud auth login ORG_ADMIN
כדי לדעת מה מספר הארגון, צריך לעיין בפלט של הפקודה הזו.
gcloud organizations list
כדי להקצות את התפקיד Shared VPC Admin ברמת הארגון:
הקצאת התפקיד 'אדמין ל-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.s3nsapis.fr/v1/organizations
מתארים את פרטי מדיניות הארגון הקיימת ואז מתעדים אותם.
POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations/ORG_ID:getIamPolicy
מחליפים את
ORG_IDבמזהה הארגון.מקצים את התפקיד 'אדמין של 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.-
כדי להקצות את התפקיד Shared VPC Admin ברמת התיקייה, משתמשים בבקשה הבאה:
מגלים את מספר מזהה הארגון.
POST https://cloudresourcemanager.s3nsapis.fr/v1/organizations
מאתרים את מזהה התיקייה.
GET https://cloudresourcemanager.s3nsapis.fr/v2/folders?parent=organizations/ORG_ID
מחליפים את
ORG_IDבמזהה הארגון.מתארים את פרטי מדיניות התיקיות הקיימת ומקליטים אותם.
POST https://cloudresourcemanager.s3nsapis.fr/v2/folders/FOLDER_ID:getIamPolicy
מחליפים את
FOLDER_IDבמזהה התיקייה.מקצים את התפקיד 'אדמין של 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) בארגון.
כשמפעילים פרויקט מארח, משאבי הרשת של הפרויקט לא משותפים אוטומטית עם פרויקטי שירות. כדי לשתף רשתות ורשתות משנה נבחרות עם פרויקטי השירות, צריך לצרף פרויקטי שירות לפרויקט המארח.
המסוף
אם עדיין אין לכם את תפקיד האדמין של Compute VPC משותף (roles/compute.xpnAdmin), לא תוכלו לראות את הדף הזה במסוף Cloud de Confiance .
נכנסים לדף VPC משותף במסוף Cloud de Confiance .
נכנסים כאדמין של 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.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/enableXpnHost
מחליפים את
HOST_PROJECT_IDבמזהה הפרויקט שיהיה פרויקט מארח של VPC משותף.למידע נוסף, עיינו בשיטה
projects.enableXpnHost.מוודאים שהפרויקט מופיע כפרויקט מארח.
POST https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/listXpnHosts
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.למידע נוסף, עיינו בשיטה
projects.listXpnHosts.
Terraform
אתם יכולים להשתמש במשאב של Terraform כדי להפעיל פרויקט מארח.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
צירוף פרויקטים של שירות
כדי שמנהלי פרויקט השירות יוכלו להשתמש ב-VPC המשותף, הם צריכים לצרף את פרויקט השירות לפרויקט מארח. אדמין של VPC משותף צריך לבצע את השלבים הבאים כדי להשלים את הצירוף.
פרויקט שירות יכול להיות מצורף רק לפרויקט מארח אחד, אבל פרויקט מארח יכול לתמוך בכמה פרויקטים של שירות. פרטים נוספים מופיעים בקטע מגבלות ספציפיות ל-VPC משותף בדף המכסות של VPC.
המסוף
בהמשך מוסבר איך לשנות את ההגדרה של פרויקט מארח קיים.- נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
- נכנסים לדף VPC משותף במסוף Cloud de Confiance .
כניסה לדף VPC משותף - לוחצים על הכרטיסייה פרויקטים מצורפים.
- בכרטיסייה Attached projects (פרויקטים מצורפים), לוחצים על הכפתור Attach projects (צירוף פרויקטים).
- בקטע שמות הפרויקטים, מסמנים את התיבות של פרויקטי השירות שרוצים לצרף. שימו לב: צירוף פרויקטים של שירות לא מגדיר אדמינים של פרויקטים של שירות. הפעולה הזו מתבצעת בשלב הבא.
- בקטע הרשאות רשת VPC, בוחרים את התפקידים שהישויות המורשות שלהם יקבלו את התפקיד
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.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/enableXpnResource { "xpnResource": { "id": "SERVICE_PROJECT" } }מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף. -
SERVICE_PROJECT: מזהה פרויקט השירות לצירוף.
למידע נוסף, עיינו בשיטה
projects.enableXpnResource.-
מוודאים שפרויקטי השירות מצורפים לפרויקט המארח.
GET https://compute.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/getXpnResources
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה פרויקט המארח של ה-VPC המשותף.
למידע נוסף, עיינו בשיטה
projects.getXpnResources.-
Terraform
אפשר להשתמש במשאב של Terraform כדי לצרף פרויקט שירות.
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
אדמינים של פרויקט שירות לכל רשתות המשנה
אדמין של VPC משותף יכול להקצות נציג IAM מפרויקט שירות להיות אדמין של פרויקט שירות עם גישה לכל תת-הרשתות בפרויקט המארח. לאדמינים בפרויקט השירות מסוג זה מוקצה התפקיד compute.networkUser עבור כל פרויקט המארח. המשמעות היא שיש להם גישה לכל רשתות המשנה שהוגדרו בפרויקט המארח, וגם לרשתות משנה שיוגדרו בעתיד.
משתמש עם תפקיד compute.networkUser בפרויקט המארח יכול לראות את כל רשתות המשנה בפרויקטים של שירותים שמצורפים אליו.
המסוף
כדי להגדיר חשבון ראשי ב-IAM מפרויקט שירות כאדמין של פרויקט השירות עם גישה לכל רשתות המשנה בפרויקט מארח באמצעות מסוףCloud de Confiance , אפשר לעיין בקטע צירוף פרויקטים של שירותים.
gcloud
בשלבים האלה מוסבר איך להגדיר חשבון משתמש ב-IAM מפרויקט שירות כאדמין של פרויקט שירות עם גישה לכל רשתות המשנה בפרויקט מארח. לפני שמבצעים את השלבים האלה, צריך להפעיל פרויקט מארח ולצרף את פרויקט השירות לפרויקט המארח.
אם עדיין לא עשיתם זאת, עליכם לעבור אימות ב-
gcloudכאדמינים של VPC משותף. מחליפים אתSHARED_VPC_ADMINבשם של אדמין ה-VPC המשותף:gcloud auth login SHARED_VPC_ADMIN
יוצרים קשר בין מדיניות לבין ישות (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:כדי לציין חשבון שירות. מידע נוסף על תרחיש השימוש הזה זמין במאמר חשבונות שירות כאדמינים של פרויקט שירות.
- משתמשים ב-
חוזרים על השלב הקודם לכל מנהל נוסף של פרויקט שירות שצריך להגדיר.
אם סיימתם להגדיר אדמינים של פרויקטים של שירותים, מומלץ להתנתק מ-
gcloudכדי להגן על פרטי הכניסה של חשבון האדמין של ה-VPC המשותף.gcloud auth revoke SHARED_VPC_ADMIN
API
מתארים את המדיניות הקיימת של הפרויקט ומתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך של
etag.POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.יוצרים קשר בין מדיניות לבין גורם ראשי ב-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 מפרויקט שירות כאדמינים של פרויקט שירות עם גישה רק לחלק מרשתות המשנה בפרויקט מארח. כדי להגדיר אותם, צריך קודם להפעיל פרויקט מארח ולצרף את פרויקט השירות לפרויקט המארח.
אם עדיין לא עשיתם זאת, עליכם לעבור אימות ב-
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.s3nsapis.fr/compute/v1/projects/HOST_PROJECT_ID/regions/SUBNET_REGION/subnetworks/SUBNET_NAME/getIamPolicy
מחליפים את מה שכתוב בשדות הבאים:
-
HOST_PROJECT_ID: מזהה הפרויקט המארח שמכיל את רשת ה-VPC המשותפת. -
SUBNET_NAME: שם תת-הרשת שרוצים לשתף. -
SUBNET_REGION: האזור שבו נמצאת רשת המשנה.
-
כדי לתת לאדמינים של פרויקט השירות גישה לרשתות משנה בפרויקט המארח, צריך לעדכן את מדיניות רשתות המשנה.
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 משותף יכול גם להגדיר חשבונות שירות מפרויקטים של שירות כבעלי הרשאות אדמין בפרויקט השירות. בקטע הזה מוסבר איך להגדיר שני סוגים שונים של חשבונות שירות כאדמינים של פרויקט שירות:
חשבונות שירות בניהול המשתמש בפורמט הבא:
USER_ID@SERVICE_PROJECT_ID.s3ns.iam.gserviceaccount.comחשבון השירות של Google APIs, בפורמט הבא:
SERVICE_PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com
אפשר להעניק את התפקיד Service Project Admin (compute.networkUser) לכל רשתות המשנה או לחלק מרשתות המשנה של פרויקט המארח. עם זאת, כדי להקל על ההבנה, בסעיף הזה נסביר רק איך להגדיר כל אחד משני סוגי חשבונות השירות כאדמינים של פרויקט השירות עבור כל רשתות המשנה של פרויקט המארח.
חשבונות שירות בניהול המשתמשים כאדמינים של פרויקט שירות
בהוראות האלה מוסבר איך להגדיר חשבון שירות בניהול המשתמשים כ-Service Project Admin לכל תת-הרשתות של פרויקט המארח של ה-VPC המשותף.
המסוף
- נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
- נכנסים לדף Settings במסוף Cloud de Confiance .
מעבר לדף ההגדרות - משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין בפרויקט השירות.
- מעתיקים את מזהה הפרויקט של פרויקט השירות. לצורך הבהרה, בתהליך הזה מזהה פרויקט השירות נקרא
SERVICE_PROJECT_ID. - משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
- נכנסים לדף IAM במסוף Cloud de Confiance .
כניסה לדף IAM - לוחצים על הוספה.
- מוסיפים את הערך
SERVICE_ACCOUNT_NAME@SERVICE_PROJECT_ID.s3ns.iam.gserviceaccount.comלשדה Principals (חשבונות משתמשים), ומחליפים אתSERVICE_ACCOUNT_NAMEבשם של חשבון השירות. - בתפריט Roles (תפקידים), בוחרים באפשרות Compute Engine > Compute Network User (Compute Engine > משתמש ברשת מחשוב).
- לוחצים על הוספה.
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.s3ns.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
מתארים את המדיניות הקיימת של הפרויקט ומתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך של
etag.POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.יוצרים קישור למדיניות כדי להגדיר חשבונות שירות כאדמינים של פרויקט השירות.
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.
המסוף
- נכנסים למסוף Cloud de Confiance כאדמינים של VPC משותף.
- נכנסים לדף Settings במסוף Cloud de Confiance .
מעבר לדף ההגדרות - משנים את הפרויקט לפרויקט השירות שמכיל את חשבון השירות שצריך להגדיר כאדמין בפרויקט השירות.
- מעתיקים את מספר הפרויקט של פרויקט השירות. לצורך הבהרה, במסגרת ההליך הזה, מספר פרויקט השירות נקרא
SERVICE_PROJECT_NUMBER. - משנים את הפרויקט לפרויקט המארח של ה-VPC המשותף.
- נכנסים לדף IAM במסוף Cloud de Confiance .
כניסה לדף IAM - לוחצים על הוספה.
- מוסיפים את
SERVICE_PROJECT_NUMBER@cloudservices.s3ns-system.iam.gserviceaccount.com לשדה חברים. - בתפריט Roles (תפקידים), בוחרים באפשרות Compute Engine > Compute Network User (Compute Engine > משתמש ברשת מחשוב).
- לוחצים על הוספה.
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.s3ns-system.iam.gserviceaccount.com" \ --role "roles/compute.networkUser"
API
מתארים את המדיניות הקיימת של הפרויקט ומתעדים את הפרטים שלה. תצטרכו את המדיניות הקיימת ואת הערך של
etag.POST https://cloudresourcemanager.s3nsapis.fr/v2/projects/HOST_PROJECT_ID:getIamPolicy
מחליפים את
HOST_PROJECT_IDבמזהה של הפרויקט המארח של ה-VPC המשותף.מציגים את רשימת הפרויקטים כדי למצוא את מספר הפרויקט.
GET https://cloudresourcemanager.s3nsapis.fr/v1/projects?filter=projectId="SERVICE_PROJECT_ID"
מחליפים את
SERVICE_PROJECT_IDבמזהה של פרויקט השירות שבו נמצא חשבון השירות.יוצרים קישור למדיניות כדי להגדיר חשבונות שירות כאדמינים של פרויקט השירות.
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 .
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.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 פנימית עצמאית בפרויקט השירות, מבצעים את השלבים הבאים.
המסוף
- הגדרת VPC משותף.
נכנסים לדף VPC משותף במסוף Cloud de Confiance .
נכנסים כאדמין של 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.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 זמינה.
מציינים את רשת המשנה של המארח:
שומרים כתובת IPv4 מרשת המשנה של פרויקט המארח לשימוש בפרויקט השירות:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
שמירת כתובת IPv4 חיצונית סטטית
משאב בפרויקט שירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית שמוגדרת בפרויקט השירות או בפרויקט המארח. לכן, משאב בפרויקטים המצורפים של השירות יכול להשתמש בכתובת IPv4 חיצונית סטטית אזורית ששמורה בפרויקט המארח.
שמירת כתובת IPv6 חיצונית סטטית
אדמינים בפרויקט שירות יכולים לשמור כתובת IPv6 חיצונית סטטית בפרויקט שירות. אובייקט ההגדרה של כתובת IPv6 נוצר בפרויקט השירות, והערך שלו מגיע מטווח כתובות ה-IPv6 שזמינות ברשת המשנה המשותפת שנבחרה.
המסוף
אפשר לשמור כתובת IPv6 חיצונית עצמאית בפרויקט השירות באמצעות מסוףCloud de Confiance :
- הגדרת VPC משותף.
- במסוף Cloud de Confiance , עוברים לדף VPC משותף.
כניסה לדף VPC משותף - נכנסים כאדמין של VPC משותף.
- בוחרים את פרויקט השירות מתוך כלי לבחירת פרויקטים.
- כדי לעבור לדף כתובות IP, בוחרים באפשרות רשת VPC > כתובות IP.
- לוחצים על שמירת כתובת IP חיצונית סטטית.
- בוחרים שם לכתובת החדשה.
- מציינים אם מסלול שירות הרשת הוא Premium או Standard. שמירת כתובת IPv6 סטטית נתמכת רק במסלול פרימיום.
- בקטע IP version, בוחרים באפשרות IPv6.
- מציינים אם כתובת ה-IP הזו היא אזורית או גלובלית.
- אם אתם שומרים כתובת IP סטטית למאזן עומסים גלובלי, בוחרים באפשרות Global.
- אם אתם משריינים כתובת IP סטטית למופע או למאזן עומסים אזורי, בוחרים באפשרות אזורי ואז בוחרים את האזור שבו רוצים ליצור את הכתובת.
- בוחרים באפשרויות הבאות:
- רשתות בפרויקט הזה: בוחרים באפשרות הזו אם רוצים לשריין כתובת IPv6 חיצונית ברשת משנה של אותה רשת ענן וירטואלי פרטי (VPC) שבה אתם משריינים את כתובת ה-IPv6.
- רשתות ששותפו איתי: בוחרים באפשרות הזו אם רוצים לשריין כתובת IPv6 חיצונית ברשת משנה של רשת VPC משותפת.
בהתאם לבחירה שלכם, בוחרים באחת מהאפשרויות הבאות:
- Network: רשת ה-VPC
- רשת משנה: רשת המשנה שממנה תוקצה כתובת IPv6 אזורית סטטית
- סוג נקודת הקצה: בוחרים באפשרות מכונת VM או מאזן עומסים ברשת.
אופציונלי: אם בחרתם באפשרות VM instance כסוג נקודת הקצה, בוחרים מכונת 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.s3nsapis.fr/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 פנימית סטטית.אדמינים של פרויקטים של שירותים יכולים ליצור מופעים רק באמצעות רשתות משנה שהם קיבלו הרשאה לגשת אליהן. כדי לראות אילו רשתות משנה זמינות, אפשר לעיין במאמר רשימת רשתות משנה זמינות.
כש- Cloud de Confiance מקבל בקשה ליצור מכונה ברשת משנה של רשת VPC משותפת, הוא בודק אם למשתמש ה-IAM ששולח את הבקשה יש הרשאה להשתמש ברשת המשנה המשותפת הזו. אם הבדיקה תיכשל, המופע לא ייווצר והפונקציה Cloud de Confianceתחזיר שגיאת הרשאות. לקבלת עזרה, פנו לאדמין של VPC משותף.
סוג ה-stack של המכונה שאתם יוצרים צריך להיות נתמך על ידי רשת המשנה המשותפת שבה אתם יוצרים את המכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של תת-הרשת קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.
המסוף
- הגדרת VPC משותף.
נכנסים לדף VPC משותף במסוף Cloud de Confiance .
נכנסים כאדמין של 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.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 כדי ליצור מכונה וירטואלית בפרויקט שירות.
מציינים את רשת המשנה של המארח:
יצירת מכונה וירטואלית בפרויקט שירות עם כתובת IPv4 ארעית מתת-הרשת המשותפת של הפרויקט המארח:
יוצרים מכונה וירטואלית בפרויקט שירות עם כתובת IPv4 סטטית שמורה מתת-הרשת המשותפת של פרויקט המארח:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
יצירת תבנית של הגדרות מכונה
כשמשתמשים ב-VPC משותף כדי ליצור תבנית של הגדרות מכונה, כדאי לקחת בחשבון את הנקודות הבאות:
התהליך של יצירת תבנית של מכונה וירטואלית כולל בחירה של רשת ותת-רשת.
בתבניות שנוצרות לשימוש ברשת VPC משותפת במצב מותאם אישית, צריך לציין גם את הרשת וגם את רשת המשנה.
בתבניות שנוצרות לשימוש ברשת VPC משותפת במצב אוטומטי, אפשר לדחות את הבחירה של רשת משנה. במקרים האלה, רשת משנה נבחרת באופן אוטומטי באותו אזור כמו כל קבוצת מופעי מכונה מנוהלים שמשתמשת בתבנית. (לרשתות במצב אוטומטי יש רשת משנה בכל אזור, בהגדרה).
כשחשבון משתמש ב-IAM יוצר תבנית של הגדרות מכונה,Cloud de Confiance לא מבצע בדיקת הרשאות כדי לראות אם לחשבון המשתמש יש הרשאה להשתמש ברשת המשנה שצוינה. בדיקת ההרשאות הזו תמיד מתבצעת כשמתקבלת בקשה לקבוצת מופעי מכונה מנוהלים שמשתמשת בתבנית.
סוג ה-stack של תבנית של הגדרות מכונה שאתם יוצרים צריך להיות נתמך על ידי רשת המשנה המשותפת שבה אתם יוצרים את תבנית של הגדרות מכונה. מידע נוסף זמין במאמר בנושא סוגים של רשתות משנה. במכונות עם כתובות IPv6, סוג הגישה ל-IPv6 של תת-הרשת קובע אם כתובת ה-IPv6 שהוקצתה למכונה היא כתובת IPv6 פנימית או חיצונית.
המסוף
- הגדרת VPC משותף.
- במסוף Cloud de Confiance , עוברים לדף 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: השם של תת-הרשת המשותפת.
-
יוצרים תבנית של הגדרות מכונה עם תמיכה ב-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 של המכונות הווירטואליות מגיעות מרשת המשנה המשותפת של הפרויקט המארח.
רשת המשנה צריכה להיות באותו אזור שבו ייווצרו המכונות הווירטואליות.
מציינים את רשת המשנה של המארח:
יוצרים תבנית של הגדרות מכונה בפרויקט השירות:
כדי ללמוד איך להחיל הגדרות ב-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 משותף זמין במאמרים הבאים:
- ארכיטקטורת VPC משותף למאזני עומסים חיצוניים של אפליקציות.
- ארכיטקטורת VPC משותף למאזני עומסים פנימיים של אפליקציות.
יצירת מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי
בדוגמה הבאה מוסבר מה צריך לקחת בחשבון כשיוצרים מאזן עומסי רשת פנימי מסוג passthrough ברשת VPC משותפת. אדמינים של פרויקט שירות יכולים ליצור מאזן עומסי רשת פנימי להעברת סיגנל ללא שינוי שמשתמש בתת-רשת (בפרויקט המארח) שיש להם גישה אליה. כלל ההעברה הפנימי של מאזן העומסים מוגדר בפרויקט השירות, אבל ההפניה לתת-הרשת שלו מצביעה על תת-רשת ברשת VPC משותפת של הפרויקט המארח.
לפני שיוצרים מאזן עומסי רשת פנימי מסוג passthrough בסביבת VPC משותפת, כדאי לעיין בארכיטקטורה של VPC משותף.
המסוף
נכנסים לדף Load balancing במסוף Cloud de Confiance .
כניסה לדף Load balancingיוצרים מאזן עומסים פנימי מסוג 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.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 כדי ליצור את כלל ההעברה.
מציינים את רשת המארח:
מציינים את רשת המשנה של המארח:
בפרויקט השירות, יוצרים כלל העברה ברשת וברשת המשנה של הפרויקט המארח:
כדי ללמוד איך להחיל הגדרות ב-Terraform או להסיר אותן, ראו פקודות בסיסיות ב-Terraform.
המאמרים הבאים
- מידע נוסף על VPC משותף זמין במאמר VPC משותף.
- הוראות להגדרת אשכולות Google Kubernetes Engine עם VPC משותף מופיעות במאמר הגדרת אשכולות עם VPC משותף.
- כאן אפשר ללמוד איך להגדיר גישה לרשת VPC משותפת מ-Cloud Run, מ-Cloud Run functions או מהסביבה הרגילה של App Engine.
- הוראות למחיקת הגדרת VPC משותף זמינות במאמר ביטול ההקצאה של VPC משותף.