במאמר הזה מוסבר איך מציינים את חשבון השירות של משימת Batch, שמשפיע על המשאבים והאפליקציות שלמכונות הווירטואליות של המשימה יש גישה אליהם. אם לא מציינים חשבון שירות בהתאמה אישית, כברירת מחדל העבודות משתמשות בחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine, שמקושר אוטומטית לכל המכונות הווירטואליות בפרויקט כברירת מחדל. לכן, שימוש בחשבון שירות בהתאמה אישית מאפשר שליטה טובה יותר בניהול ההרשאות של עבודה, והוא שיטה מומלצת להגבלת הרשאות.
מידע נוסף על חשבון השירות של משימה
לפני שמתחילים
- אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
-
כדי לקבל את ההרשאות שדרושות בשביל לשלוט בגישה לעבודות באמצעות חשבונות שירות בהתאמה אישית, אתם צריכים לבקש מהאדמין לתת לכם את התפקידים הבאים ב-IAM:
-
כדי ליצור משרה:
- הכלי לעריכת משימות באצווה (
roles/batch.jobsEditor) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות של העבודה, שמוגדר כברירת מחדל כחשבון השירות של Compute Engine
- הכלי לעריכת משימות באצווה (
-
כדי להציג את חשבונות השירות: הצגת חשבונות שירות (
roles/iam.serviceAccountViewer) בפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
-
כדי ליצור משרה:
-
מזהים את חשבון השירות שבו רוצים להשתמש לצורך העבודה. חשוב לוודא שלחשבון השירות הזה יש את כל ההרשאות הנדרשות להרצת העבודה.
מידע נוסף על הצגת חשבונות שירות ועל ההרשאות שנדרשות לחשבון השירות של משימה
יצירת משימה שמשתמשת בחשבון שירות בהתאמה אישית
כדי ליצור משימה שמשתמשת בחשבון שירות מותאם אישית, בוחרים באחת מהשיטות הבאות:
- מציינים את חשבון השירות המותאם אישית בהגדרת העבודה, כמו שמוצג בקטע הזה.
- משתמשים בתבנית של הגדרות מכונה ב-Compute Engine ומציינים את חשבון השירות המותאם אישית גם בתבנית של הגדרות מכונה וגם בהגדרת העבודה.
בקטע הזה מובאת דוגמה לאופן שבו אפשר ליצור משימה שמשתמשת בחשבון שירות בהתאמה אישית. אפשר ליצור משימה שמשתמשת בחשבון שירות בהתאמה אישית באמצעות ה-CLI של gcloud, Batch API, Java, Node.js או Python.
gcloud
כדי ליצור משימה שמשתמשת בחשבון שירות בהתאמה אישית באמצעות ה-CLI של gcloud, משתמשים בפקודה gcloud batch jobs submit ומציינים את חשבון השירות בהתאמה אישית בקובץ ההגדרות של המשימה.
לדוגמה, כדי ליצור משימת סקריפט שמשתמשת בחשבון שירות מותאם אישית:
יוצרים קובץ JSON בספרייה הנוכחית בשם
hello-world-service-account.jsonעם התוכן הבא:{ "taskGroups": [ { "taskSpec": { "runnables": [ { "script": { "text": "echo Hello World! This is task $BATCH_TASK_INDEX." } } ] } } ], "allocationPolicy": { "serviceAccount": { "email": "SERVICE_ACCOUNT_EMAIL" } } }כאשר
SERVICE_ACCOUNT_EMAILהיא כתובת האימייל של חשבון השירות. אם לא מציינים את השדהserviceAccount, הערך שמוגדר הוא חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.מריצים את הפקודה הבאה:
gcloud batch jobs submit example-service-account-job \ --location us-central1 \ --config hello-world-service-account.json
API
כדי ליצור משימה שמשתמשת בחשבון שירות בהתאמה אישית באמצעות Batch API, משתמשים בשיטת jobs.create ומציינים את חשבון השירות בהתאמה אישית בשדה allocationPolicy.
לדוגמה, כדי ליצור משימת סקריפט שמשתמשת בחשבון שירות מותאם אישית, שולחים את הבקשה הבאה:
POST https://batch.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/jobs?job_id=example-service-account-job
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX."
}
}
]
}
}
],
"allocationPolicy": {
"serviceAccount": {
"email": "SERVICE_ACCOUNT_EMAIL"
}
}
}
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט שלכם. -
SERVICE_ACCOUNT_EMAIL: כתובת האימייל של חשבון השירות. אם לא מציינים את השדהserviceAccount, הערך שמוגדר הוא חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine.
Java
Node.js
Python
המאמרים הבאים
- אם נתקלתם בבעיות ביצירה או בהפעלה של משימה, תוכלו להיעזר בפתרון בעיות.
- הצגת משרות ומשימות.
- מידע נוסף על אפשרויות ליצירת משרות