במדריך הזה מוסבר איך להשתמש בדיירים של App Lifecycle Manager כדי לארגן את היחידות שנפרסו, ואיך לפרוס משאבים בפרויקטים נפרדים של דיירים כדי לבודד ולנהל את המשאבים.
במאמר דיירים ופרויקטים של דיירים מופיעה סקירה כללית על הנושא.
לפני שמתחילים
לפני שיוצרים פרויקטים או משאבים של דיירים:
- יוצרים תצורה של Terraform, מאגר Artifact Registry וארטיפקט שמכיל את אפליקציית ה-SaaS בפרויקט של הספק. במאמר פריסת מופע שירות באמצעות App Lifecycle Manager מוסבר איך להגדיר מוצר SaaS.
מפעילים את ממשקי ה-API שנדרשים ל-App Lifecycle Manager.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמוודאים שיש לכם את חשבונות השירות הנדרשים ואת תפקידי ניהול הזהויות והרשאות הגישה (IAM) שניתנו בפרויקט הבעלים של השירות המנוהל. זה כולל את חשבון השירות שנוצר על ידי המשתמש ואת ההרשאות שניתנו לחשבון
service-PROJECT-NUMBER@gcp-sa-saasservicemgmt.iam.gserviceaccount.comבפרויקט של הספק.
הגדרה של פרויקט דייר (tenant)
כשמקצים את המשאבים של הדייר לפרויקטים נפרדים, המשאבים, מדיניות ה-IAM, המכסות והגדרות הרשת מופרדים לכל אחד מהדיירים, ולכן הסיכוי לפריצות או להגדרות שגויות אצל דייר אחד שישפיעו על דיירים אחרים קטן יותר.
דרושים לך:
- פרויקט אחד של Producer,
פרויקט דייר (tenant) אחד לכל אחד מהדיירים.
המסוף
כדי להגדיר פרויקטים של דיירים ושל שירותים מנוהלים באמצעות מסוף Google Cloud :
- יוצרים פרויקט של ספק ופרויקט דייר (tenant) לכל אחד מהדיירים.
- הפעלת החיוב בפרויקטים של הדייר והספק.
מפעילים את ממשקי ה-API שנדרשים על ידי App Lifecycle Manager בפרויקטים של הדייר.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםמוודאים שלחשבונות השירות של הפרויקטים של הדיירים יש את ההרשאות הנדרשות.
לפרטים, ראו חשבונות שירות של App Lifecycle Manager.
הגדרתם בהצלחה את הדייר ואת פרויקטי ההפקה. אחרי שיוצרים את הפרויקטים של השירות המנוהל והדייר ומפעילים בהם את החיוב, אפשר ליצור משאבים לדייר ולשייך יחידות לדיירים.
gcloud
כדי להגדיר פרויקטים של ספק ודייר באמצעות Google Cloud CLI:
יוצרים את פרויקט הספק ואת פרויקט הדייר לכל אחד מהדיירים:
gcloud projects create PRODUCER_PROJECT_ID --name="SaaS producer project" [--folder=folder-id] gcloud projects create TENANT_PROJECT_ID --name="SaaS tenant A project" [--folder=folder-id]מחליפים את:
-
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט היצרן. -
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של הדייר.
-
מפעילים את החיוב בפרויקטים של הדייר והמפיק:
gcloud beta billing projects link PRODUCER_PROJECT_ID --billing-account=BILLING_ACCOUNT_ID gcloud beta billing projects link TENANT_PROJECT_ID --billing-account=BILLING_ACCOUNT_IDמחליפים את:
-
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט היצרן. -
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של הדייר. -
BILLING_ACCOUNT_ID: המזהה של חשבון החיוב שאתם רוצים לשייך לפרויקט שצוין.
-
מקצים לחשבון השירות של שירות ההפעלה את התפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM) לכל פרויקט דייר (tenant):
gcloud projects add-iam-policy-binding TENANT_PROJECT_ID \ --member='serviceAccount:SERVICE_ACCOUNT@PRODUCER_PROJECT_ID.iam.gserviceaccount.com' \ --role=ROLEמחליפים את:
-
TENANT_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה הפרויקט של הדייר. -
PRODUCER_PROJECT_ID: מזהה מחרוזת שמייצג את מזהה פרויקט היצרן. -
SERVICE_ACCOUNT: חשבון השירות שרוצים להקצות לו תפקידים בפרויקט שצוין.
ROLE: התפקיד בניהול הזהויות והרשאות הגישה שרוצים להקצות.צריך להריץ את הפקודה
gcloud projects add-iam-policy-bindingלכל תפקיד שרוצים להקצות לחשבון השירות שצוין (לדוגמה,--role='roles/compute.admin').
-
הגדרתם בהצלחה את הפרויקטים של הדייר והמפיק. אחרי שיוצרים את הפרויקטים של השירות המנוהל והדייר ומפעילים בהם את החיוב, אפשר ליצור משאבים לדייר ולשייך יחידות לדיירים.
יצירת משאב של דייר
יוצרים משאב tenant בהצעה שלכם ל-SaaS כדי לייצג את הלקוח:
במסוף Google Cloud , עוברים אל App Lifecycle Manager (ניהול מחזור החיים של האפליקציה) > Tenants (דיירים).
לוחצים על יצירה.
בתיבה Tenant name (שם הדייר), מזינים שם למשאב הדייר.
אופציונלי: בתיבה Customer resource (משאב לקוח), מציינים משאב צרכן עם הגדרות שמוגדרות על ידי הצרכן לשילוב.
בתיבה SaaS offering (מוצר SaaS), בוחרים את מוצר ה-SaaS שרוצים לשייך לדייר.
בתפריט הנפתח Region, בוחרים אזור שבו יאוחסנו המטא-נתונים של הדייר.
אופציונלי: לוחצים על הוספת תווית כדי להוסיף תווית של צמד מפתח/ערך לדייר.
לוחצים על יצירה כדי ליצור את משאב הדייר.
יצרתם בהצלחה משאב דייר.
שיוך יחידה לדייר
אחרי שיוצרים דייר ומפריסים יחידה, אפשר לקשר ביניהם. השיוך הזה משמש בעיקר כתג ארגוני שעוזר לכם להבין אילו יחידות שייכות לאיזה דייר.
מידע נוסף על פריסת יחידות זמין במאמר פריסת מכונה וירטואלית באמצעות App Lifecycle Manager.
כדי לשייך יחידה לדייר:
במסוף Google Cloud , עוברים אל App Lifecycle Manager (ניהול מחזור החיים של האפליקציה) > Tenants (דיירים).
לוחצים על שם הדייר שרוצים לשייך ליחידה.
לוחצים על Edit.
בקטע Associated units (יחידות משויכות), לוחצים על Add Unit (הוספת יחידה).
בוחרים את היחידות שרוצים לשייך לדייר הזה.
לוחצים על סיום.
לוחצים על Save.
היחידות שנבחרו משויכות לדייר שצוין.
הקצאת יחידה חדשה באמצעות משתני פרויקט דייר (tenant)
כשמקצים יחידה שמשויכת לדייר, צריך לספק את המשתנה tenant_project_id.
במסוף Google Cloud , נכנסים אל App Lifecycle Manager > Units.
יוצרים יחידה חדשה שמשויכת לסוג היחידה.
לוחצים על הקצאת הרשאות.
בוחרים את הגרסה שרוצים להקצות ליחידת הדייר.
בוחרים את חשבון השירות של הפעלת התהליך שהענקתם לו הרשאות בפרויקט הדייר. כדאי לפעול לפי העיקרון של הרשאות מינימליות ולהעניק רק את התפקידים הדרושים לניהול המשאבים.
בקטע משתני קלט:
- מוודאים שהמשתנה
tenant_project_idמופיע כמו שהגדרתם אותו בקובץ התצורהvariables.tfשל Terraform. - בתיבה Tenant Project ID, מציינים את שם פרויקט הדייר.
- מספקים משתני קלט שמוגדרים בתצורה של Terraform. אם לא הגדרתם משתנים אחרים בתצורת Terraform, אפשר לדלג על השלב הזה.
- מוודאים שהמשתנה
לוחצים על הקצאת הרשאות.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלת התהליך. Infrastructure Manager קורא את המשתנה tenant_project_id ויוצר את המכונה הווירטואלית בתוך פרויקט הדייר הזה.
הקצאה מחדש של יחידה עם גרסה חדשה
כשמקצים מחדש יחידה קיימת עם גרסה חדשה, צריך לספק את המשתנה tenant_project_id.
במסוף Google Cloud , נכנסים אל App Lifecycle Manager > Units.
בוחרים את היחידה שמשויכת לסוג היחידה.
לוחצים על עריכת הקצאת ההרשאות.
בוחרים את הגרסה שיצרתם עם התצורה המעודכנת של Terraform.
בוחרים את חשבון השירות של הפעלת התהליך שהענקתם לו הרשאות בפרויקט הדייר. כדאי לפעול לפי העיקרון של הרשאות מינימליות ולהעניק רק את התפקידים הדרושים לניהול המשאבים.
בקטע משתני קלט:
- מוודאים שהמשתנה
tenant_project_idמופיע כמו שהגדרתם אותו בקובץ התצורהvariables.tfשל Terraform. - בתיבה Tenant Project ID, מציינים את שם פרויקט הדייר.
- מספקים משתני קלט שמוגדרים בתצורה של Terraform. אם לא הגדרתם משתנים אחרים בתצורת Terraform, אפשר לדלג על השלב הזה.
- מוודאים שהמשתנה
לוחצים על עדכון.
App Lifecycle Manager מפעיל את Infrastructure Manager באמצעות חשבון השירות שצוין להפעלת התהליך. Infrastructure Manager קורא את המשתנה tenant_project_id ויוצר את המכונה הווירטואלית בתוך פרויקט הדייר הזה.
המאמרים הבאים
- מידע נוסף על ניהול יחסי תלות בין יחידות
- מידע נוסף על שימוש במשתנים ומיפוי משתנים
- בודקים את ההרשאות שנדרשות לחשבונות שירות.