במאמר הזה מוסבר איך ליצור ולהריץ משימה באצווה בתור משתמש שאינו משתמש Root.
כברירת מחדל, Batch מפעיל קבצים להרצה כמשתמש Root. אם רוצים ש-Batch יבצע קבצים להרצה כמשתמשים לא-בסיסיים – למשל, כדי להריץ אפליקציה שלא מאפשרת למשתמשי Root או כדי לעמוד בדרישות אבטחה – צריך ליצור משימה באצווה של Batch שמשתמשת בOS Login. כשמפעילים OS Login בעבודת Batch, OS Login מגדיר בשבילכם חשבון משתמש במכונות הווירטואליות שבהן העבודה פועלת. כל הפריטים שניתנים להרצה בעבודה מורצים על ידי חשבון המשתמש במכונה הווירטואלית במקום על ידי משתמש Root.
לפני שמתחילים
- אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
אם עדיין לא עשיתם זאת, מפעילים את OS Login API באמצעות הפעלת הפקודה הבאה:
gcloud services enable oslogin.googleapis.com
-
כדי לקבל את ההרשאות שדרושות ליצירה ולהרצה של משימה כמשתמש שאינו משתמש root, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- הכלי לעריכת משימות באצווה (
roles/batch.jobsEditor) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות של העבודה, שמוגדר כברירת מחדל כחשבון השירות של Compute Engine - Compute OS Login (
roles/compute.osLogin) או Compute OS Admin Login (roles/compute.osAdminLogin) בפרויקט -
אם אתם מארגון אחר מהפרויקט:
Compute OS Login External User (
roles/compute.osLoginExternalUser) בארגון של הפרויקט
להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.
- הכלי לעריכת משימות באצווה (
יצירת משימה שפועלת כמשתמש לא-בסיסי
כדי ליצור משימה באצווה שמריצה קובצי הפעלה דרך חשבון המשתמש שלכם:
משתמשים ב-Google Cloud CLI או ב-API בארכיטקטורת REST כדי ליצור משימה שכוללת את השדה runAsNonRoot שמוגדר לערך true בגוף הראשי של קובץ ה-JSON:
"runAsNonRoot": true
לדוגמה, למשימה שמריצה קבצים הפעלה כמשתמש שאינו משתמש root יהיה קובץ תצורה בפורמט JSON שדומה לזה:
{
"taskGroups": [
{
"taskSpec": {
"runnables": [
{
"script": {
"text": "echo Hello World! This is task $BATCH_TASK_INDEX executed by $(whoami)."
}
}
]
},
"taskCount": 3,
"runAsNonRoot": true
}
],
"logsPolicy": {
"destination": "CLOUD_LOGGING"
}
}
המאמרים הבאים
- אם נתקלתם בבעיות ביצירה או בהפעלה של משימה, תוכלו להיעזר בפתרון בעיות.
- הצגת משרות ומשימות.
- מידע נוסף על אפשרויות ליצירת משרות