שימוש בחשבון שירות חוצה פרויקטים
במאמר הזה מוסבר איך להשתמש בחשבון שירות חוצה פרויקטים כשיוצרים מכונת TPU וירטואלית. חשבון שירות חוצה פרויקטים הוא חשבון שירות שנמצא בפרויקט אחר מזה של מכונת ה-TPU הווירטואלית.
ההוראות האלה לא כוללות שיקולים לגבי VPC משותף או VPC Service Controls. יכול להיות שיידרשו הגדרות או הרשאות נוספות כדי לתמוך בשימוש בהן. מידע נוסף זמין במאמרים בנושא יצירה ושינוי של רשתות VPC משותפות וסקירה כללית על VPC Service Controls.
לפני שמתחילים
- יוצרים שני Google Cloud פרויקטים. אחד שיכיל את מכונת ה-TPU הווירטואלית (
TPU_PROJECT) ואחד שיכיל את חשבון השירות (SERVICE_PROJECT). מידע נוסף זמין במאמר יצירה וניהול של פרויקטים. - יוצרים חשבון שירות ב-
SERVICE_PROJECT. למידע נוסף, קראו את המאמר יצירה וניהול של חשבונות שירות. - יוצרים רשת ומפעילים גישה פרטית ל-Google. מידע נוסף זמין במאמרים יצירה וניהול של רשתות והגדרת גישה פרטית ל-Google לכתובת IP פנימית.
- משביתים את מדיניות הארגון הבאה. מידע נוסף זמין במאמר בנושא אילוצים של מדיניות הארגון.
-
constraints/iam.disableCrossProjectServiceAccountUsageבשני הפרויקטים -
constraints/compute.vmExternalIpAccess(לגישה למכונה הווירטואלית באמצעות SSH, אופציונלי)
-
הגדרת הרשאות IAM
מקצים לחשבון המשתמש את התפקיד משתמש בחשבון שירות כדי לאפשר לו לצרף את חשבון השירות למכונה הווירטואלית.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --project=SERVICE_PROJECT_ID \ --member=user:USER_EMAIL \ --role=roles/iam.serviceAccountUserמחליפים את ה-placeholders הבאים:
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.-
SERVICE_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות. USER_EMAIL: כתובת האימייל של חשבון המשתמש.
אם עומס העבודה שלכם פועל בקונטיינרים של Docker, צריך להעניק לסוכן השירות של Compute Engine גישה לשרת המטא-נתונים.
gcloud iam service-accounts add-iam-policy-binding \ SERVICE_ACCOUNT_EMAIL \ --project=SERVICE_PROJECT_ID \ --role=roles/iam.serviceAccountTokenCreator \ --member=serviceAccount:service-TPU_PROJECT_ID@compute-system.iam.gserviceaccount.comמחליפים את ה-placeholders הבאים:
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.-
SERVICE_PROJECT_ID: מזהה הפרויקט שמכיל את חשבון השירות. -
TPU_PROJECT_ID: מזהה הפרויקט שמכיל את מכונת ה-TPU הווירטואלית.
יצירת TPU VM בפרויקט TPU
יוצרים מכונת TPU וירטואלית בפרויקט ה-TPU באמצעות חשבון השירות בפרויקט השירות.
gcloud compute instances create TPU_NAME \
--machine-type=MACHINE_TYPE \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--service-account=SERVICE_ACCOUNT_EMAIL \
--project=TPU_PROJECT_ID \
--zone=ZONE \
--maintenance-policy=TERMINATE
מחליפים את ה-placeholders הבאים:
-
TPU_NAME: השם של מכונת ה-TPU. -
MACHINE_TYPE: סוג המכונה. -
IMAGE_FAMILY: משפחת תמונות מערכת ההפעלה של ה-TPU VM. כדי להתקין גרסה ספציפית של מערכת הפעלה, משתמשים בדגל--image. -
IMAGE_PROJECT: הפרויקט שמכיל את תמונת מערכת ההפעלה. בתמונות TPU, הערך הואubuntu-os-accelerator-images. SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות.-
TPU_PROJECT_ID: מזהה הפרויקט שמכיל את מכונת ה-TPU הווירטואלית. -
ZONE: האזור של ה-TPU VM.