בדף הזה מוסבר איך לשתף סוגים וספקי סוגים ששייכים לפרויקט עם פרויקטים אחרים. לדוגמה, נניח שיש לכם פרויקט שאחראי על תחזוקה של ספקי סוגים שאושרו מראש עבור החברה שלכם. אתם רוצים לשתף את ספקי הסוגים האלה מהפרויקט עם פרויקטים אחרים, ולהשתמש בפרויקט כמאגר מרכזי של סוגים. באופן דומה, אפשר להשתמש בשיטה הזו גם כדי לשתף סוגים מורכבים בין פרויקטים.
כדי להגדיר גישה, בעל פרויקט מהפרויקט שכולל את הסוג יצטרך להקצות את התפקיד deploymentmanager.typeViewer (בטא) לחשבון השירות של הפרויקט שרוצה לצרוך את הסוגים. הם גם צריכים להעניק את התפקיד למשתמשים שרוצים לראות ולרשום סוגים מפרויקט אחר.
לפני שמתחילים
- אם רוצים להשתמש בדוגמאות לשורת הפקודה במדריך הזה, צריך להתקין את כלי שורת הפקודה`gcloud`.
- כדי להשתמש בדוגמאות ל-API במדריך הזה, צריך להגדיר גישה ל-API.
- מידע נוסף על הגדרות של Deployment Manager
- מידע על סוגים
- מומלץ לקרוא את חומרי העזר בנושא ניהול זהויות והרשאות גישה (IAM).
מגבלות
ההגבלות הבאות חלות על השימוש בתכונה הזו:
- הענקת התפקיד
deploymentmanager.typeViewerמעניקה הרשאות לכל הסוגים בפרויקט הספציפי. אי אפשר להגביל את השיתוף לסוגים ספציפיים. - אי אפשר להעניק את התפקיד הזה ל
allAuthenticatedUsersאו לallUsers.
הענקת גישה לפרויקט לשימוש בסוגים
כדי להעניק גישה לסוגים ששייכים לפרויקטים אחרים, הבעלים של הפרויקט שכולל את הסוגים הרלוונטיים צריך להעניק את התפקיד deploymentmanager.typeViewer לחשבון השירות של Google APIs של הפרויקט שרוצה להשתמש בסוגים.
- נכנסים לדף IAM במסוף Google Cloud של הפרויקט שבו ייעשה שימוש בסוגים.
- אם מתבקשים, בוחרים את הפרויקט מהרשימה.
מחפשים את חשבון השירות של Google APIs, עם כתובת אימייל בפורמט הבא:
[PROJECT_NUMBER]@cloudservices.gserviceaccount.comחשוב לרשום את כתובת האימייל שמופיעה למעלה. לאחר מכן, בעלי הפרויקט שבו נמצאים הסוגים הרצויים יכולים להעניק לחשבון השירות של Google APIs את התפקיד
roles/deploymentmanager.typeViewer.המסוף
- במסוף Google Cloud , עוברים לדף IAM של הפרויקט שמכיל את הסוגים שרוצים לשתף.
- בוחרים את הפרויקט מרשימת הפרויקטים.
- לוחצים על הלחצן הוספה כדי להוסיף חבר חדש.
- בתיבה Members (חברים), מזינים את כתובת האימייל של חשבון השירות.
- מרחיבים את התפריט הנפתח Roles ובוחרים באפשרות Other > Deployment Manager Types Viewer (beta).
- לוחצים על הוספה כדי להוסיף את החשבון.
gcloud
בעזרת Google Cloud CLI, מוסיפים קשר למדיניות IAM של הפרויקט:
gcloud projects add-iam-policy-binding [PROJECT_ID] \ --member serviceAccount:[SERVICE_ACCOUNT_EMAIL] --role roles/deploymentmanager.typeViewerwhere:
-
[PROJECT_ID]הוא מזהה הפרויקט שמכיל את התמונות שרוצים לשתף. -
[SERVICE_ACCOUNT_EMAIL]היא כתובת האימייל של חשבון השירות בפרויקט שאיתו רוצים לשתף סוגים.
לדוגמה:
gcloud projects add-iam-policy-binding database-images \ --member serviceAccount:123456789012@cloudservices.gserviceaccount.com \ --role roles/deploymentmanager.typeViewerAPI
ב-API, שולחים בקשת
POSTלכתובת ה-URL הבאה, כאשר[PROJECT_ID]הוא מזהה הפרויקט שמכיל את הסוגים שרוצים לשתף.POST https://cloudresourcemanager.googleapis.com/v1/projects/$[PROJECT_ID]:setIamPolicyגוף הבקשה צריך להכיל את רשימת ההתאמות שרוצים להחיל על הפרויקט הזה. התפקיד
roles/deploymentmanager.typeViewerצריך להיות חלק מהקישור. לדוגמה:{ "policy": { "version": "0", "bindings": [ { "role": "roles/owner", "members": [ "user:example@gmail.com" ] }, { "role": "roles/deploymentmanager.typeViewer", "members": [ "serviceAccount:123456789012@cloudservices.gserviceaccount.com" ] } ] }}
שימוש בסוגים מפרויקטים אחרים בהגדרה
אחרי שיש לכם גישה לסוגים, אתם יכולים לציין את הסוג בהגדרות באמצעות התחביר. לסוגים מורכבים:
type: [PROJECT_ID]/composite:[TYPE]
type: [PROJECT_ID]/[TYPE]:[COLLECTION]
כאשר:
-
[PROJECT_ID]הוא מזהה הפרויקט שבבעלותו נמצא הסוג. -
[TYPE]הוא השם של ספק הסוג או הסוג המורכב. -
[COLLECTION]הוא המשאב הספציפי שאתם יוצרים. ההגדרה הזו רלוונטית רק לסוגים בסיסיים. מידע נוסף על הגדרת סוגי בסיס זמין במאמר קריאה לספק סוגים בהגדרה.
לדוגמה, אם מזהה הפרויקט הוא my-type-repository, יכול להיות שתציינו את סוג המפרט הבא:
resources:
- name: a-special-vm
type: my-type-repository/composite:autoscaled-igm
properties:
...הענקת הרשאה למשתמשים להציג סוגים
הענקת התפקיד deploymentmanager.typeViewer לחשבון השירות של הפרויקט מאפשרת לפרויקט לפרוס את הסוגים האלה בהגדרות שלכם, אבל לא מאפשרת למשתמשים להציג או לרשום את הסוגים האלה. אם רוצים להעניק למשתמשים בודדים את היכולת להציג סוגים, צריך להעניק לכל משתמש את התפקיד deploymentmanager.typeViewer.
לדוגמה, כדי שג'יין תוכל להריץ את הפקודה gcloud beta deployment-manager types list --project another-project בפרויקט שלא שייך לה, הבעלים של another-project צריך להקצות לג'יין את התפקיד deploymentmanager.typeViewer.
כדי להעניק לג'יין את התפקיד באמצעות ה-CLI של gcloud, מריצים את הפקודה הבאה:
gcloud projects add-iam-policy-binding another-project \
--member user:jane@gmail.com --role deploymentmanager.typeViewer
הוראות מפורטות להוספה ולהסרה של תפקידים ממשתמשים מופיעות במאמר הענקה, שינוי וביטול של גישה לחברי פרויקט.