יצירה והרצה של משימות כמשתמשים שאינם משתמשי root

במאמר הזה מוסבר איך ליצור ולהריץ משימה באצווה בתור משתמש שאינו משתמש Root.

כברירת מחדל, Batch מפעיל קבצים להרצה כמשתמש Root. אם רוצים ש-Batch יבצע קבצים להרצה כמשתמשים לא-בסיסיים – למשל, כדי להריץ אפליקציה שלא מאפשרת למשתמשי Root או כדי לעמוד בדרישות אבטחה – צריך ליצור משימה באצווה של Batch שמשתמשת בOS Login. כשמפעילים OS Login בעבודת Batch, ‏ OS Login מגדיר בשבילכם חשבון משתמש במכונות הווירטואליות שבהן העבודה פועלת. כל הפריטים שניתנים להרצה בעבודה מורצים על ידי חשבון המשתמש במכונה הווירטואלית במקום על ידי משתמש Root.

לפני שמתחילים

  1. אם עוד לא השתמשתם ב-Batch, כדאי לעיין במאמר תחילת העבודה עם Batch ולהפעיל את Batch על ידי השלמת הדרישות המוקדמות לפרויקטים ולמשתמשים.
  2. אם עדיין לא עשיתם זאת, מפעילים את OS Login API באמצעות הפעלת הפקודה הבאה:

    gcloud services enable oslogin.googleapis.com
    
  3. כדי לקבל את ההרשאות שדרושות ליצירה ולהרצה של משימה כמשתמש שאינו משתמש root, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

    להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

    יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

יצירת משימה שפועלת כמשתמש לא-בסיסי

כדי ליצור משימה באצווה שמריצה קובצי הפעלה דרך חשבון המשתמש שלכם:

משתמשים ב-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"
    }
}

המאמרים הבאים