הגדרת OS Login

במאמר הזה מוסבר איך מגדירים OS Login.

שירות OS Login מאפשר לכם לשלוט בגישה למכונות וירטואליות (VM) על סמך הרשאות IAM. מידע נוסף על OS Login זמין במאמר מידע על OS Login.

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

  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא תהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Google Cloud . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים הבאות:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Google Cloud כדי לגשת לשירותים ולממשקי ה-API של Google Cloud , לא צריך להגדיר אימות.

    gcloud

    1. מתקינים את ה-CLI של Google Cloud ואז נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל.
  • Terraform

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של Terraform שבדף הזה, מתקינים ומפעילים את ה-CLI של gcloud, ואז מגדירים את Application Default Credentials באמצעות פרטי הכניסה של המשתמש.

    1. התקינו את ה-CLI של Google Cloud.

    2. הגדירו שה-CLI של gcloud ישתמש בזהות המאוחדת שלכם.

      איך נכנסים ל-CLI של gcloud באמצעות הזהות המאוחדת?

    3. צרו פרטי כניסה לאימות מקומי בחשבון המשתמש:

      gcloud auth application-default login

      אם מוחזרת שגיאת אימות, צריך לוודא ש נכנסתם ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף זמין במאמר הגדרת אימות לסביבת פיתוח מקומית.

מגבלות

אי אפשר להשתמש ב-OS Login עם:
  • פרופילים של OS Login בגודל כולל של יותר מ-32 KiB. הפרופיל ב-OS Login כולל פרטי חשבון POSIX ומפתחות ציבוריים של SSH.
  • מכונות וירטואליות של Compute שמשתמשות בתמונות של מערכות ההפעלה הבאות:
    • ‫Windows Server ו-SQL Server.
    • ‫Fedora CoreOS. כדי לנהל את הגישה למכונות Compute Engine שנוצרו באמצעות קובצי האימג' האלה, משתמשים במערכת ההפעלה Fedora CoreOS.
    • SLES 16. כדי לנהל את הגישה למכונות Compute שנוצרו באמצעות קובצי האימג' האלה, משתמשים ב-SSH שמבוסס על מטא-נתונים.

כדי לוודא שיש תמיכה ב-OS Login בהפצות לינוקס ספציפיות, אפשר לעיין בפרטים על מערכת ההפעלה.

הקצאת תפקידי IAM ל-OS Login

מקצים את כל תפקידי ה-IAM הנדרשים למשתמשים שמתחברים למכונות וירטואליות שמופעל בהן OS Login.

תפקיד משתמשים נדרשים רמת ההרשאה
roles/compute.osLogin או roles/compute.osAdminLogin כל המשתמשים

בפרויקט או במופע.

אם משתמש צריך גישת SSH מ- Google Cloud console או מ-Google Cloud CLI, צריך להקצות לו את התפקידים האלה ברמת הפרויקט, או בנוסף להקצות לו תפקיד ברמת הפרויקט שכולל את ההרשאה compute.projects.get.

roles/iam.serviceAccountUser כל המשתמשים, אם למכונה הווירטואלית יש חשבון שירות בחשבון השירות.

הפעלה של OS Login

כדי להפעיל את השירות OS Login במכונה וירטואלית אחת או בכל המכונות הווירטואליות בפרויקט, צריך להגדיר את enable-oslogin לערך TRUE במטא-נתונים של הפרויקט או של המכונה.

כשמגדירים מטא-נתונים של OS Login, ‏ Compute Engine מוחק את הקבצים authorized_keys של המכונה הווירטואלית ולא מקבל יותר חיבורים ממפתחות SSH ששמורים במטא-נתונים של הפרויקט או המכונה.

חשוב: ב- Google Cloud, אפשר להתחבר באמצעות OS Login רק עם אישורי SSH. בכל מקום שבו מגדירים את enable-oslogin לערך TRUE, צריך להגדיר גם את enable-oslogin-certificates לערך TRUE.

הפעלת OS Login בכל המכונות הווירטואליות בפרויקט

כדי להפעיל את השירות OS Login בכל המכונות הווירטואליות בפרויקט, מגדירים את הערך הבא במטא-נתונים של הפרויקט:

  • מקש: enable-oslogin
  • ערך: TRUE

הפעלת OS Login במכונה וירטואלית אחת

כדי להפעיל את OS Login במכונה וירטואלית אחת, מגדירים את הערך הבא במטא-נתונים של המכונה:

  • מקש: enable-oslogin
  • ערך: TRUE

הפעלת OS Login במהלך יצירת מכונה וירטואלית

מפעילים את OS Login כשיוצרים מכונה וירטואלית באמצעות מסוף Google Cloud או ה-CLI של gcloud.

המסוף

כדי ליצור מכונה וירטואלית שמופעל בה OS Login בזמן ההפעלה, יוצרים מכונה וירטואלית מקובץ אימג' שגלוי לכולם ומציינים את ההגדרות הבאות:

  1. מרחיבים את הקטע אפשרויות מתקדמות.
  2. מרחיבים את הקטע Security.
  3. מרחיבים את הקטע Manage access.
  4. בוחרים את האפשרות Control VM access through IAM permissions.
  5. לוחצים על Create כדי ליצור את המכונה הווירטואלית ולהפעיל אותה.

gcloud

  1. מפעילים את Cloud Shell במסוף Google Cloud .

    הפעלת Cloud Shell

    בחלק התחתון של Google Cloud המסוף יתחיל סשן של Cloud Shell ותופיע הודעה של שורת הפקודה. Cloud Shell היא סביבת מעטפת שבה ה-CLI של Google Cloud מותקן ומוגדרים ערכים לפרויקט הקיים. הסשן יופעל תוך כמה שניות.

  2. כדי ליצור מכונה וירטואלית שבה מופעל OS Login בהפעלה, מריצים את הפקודה gcloud compute instance create הבאה:

    gcloud compute instances create VM_NAME \
       --image-family=IMAGE_FAMILY \
       --image-project=IMAGE_PROJECT \
       --metadata enable-oslogin=TRUE
    

    מחליפים את מה שכתוב בשדות הבאים:

    • ‫VM_NAME: השם של ה-VM החדש.
    • ‫IMAGE_FAMILY: משפחת קובצי האימג' של מערכת הפעלה Linux. כך המכונה הווירטואלית נוצרת מהתמונה העדכנית ביותר של מערכת ההפעלה שלא הוצאה משימוש. למידע על כל משפחות התמונות הציבוריות, אפשר לעיין במאמר פרטים על מערכות הפעלה.
    • ‫IMAGE_PROJECT: פרויקט התמונה שמכיל את משפחת התמונות. לכל מערכת הפעלה יש פרויקט תמונות משלה. לכל הפרויקטים הציבוריים של תמונות, ראו פרטים על מערכת ההפעלה.

Terraform

אפשר להחיל את ערכי המטא-נתונים על הפרויקטים או על מכונות וירטואליות באמצעות אחת מהאפשרויות הבאות:

  • אפשרות 1: מגדירים את enable-oslogin במטא-נתונים ברמת הפרויקט, כך שההגדרה תחול על כל המכונות הווירטואליות בפרויקט.

    משתמשים במשאב Terraform‏ google_compute_project_metadata ומגדירים ערך של מטא-נתונים, כאשר oslogin=TRUE:

    resource "google_compute_project_metadata" "default" {
      metadata = {
        enable-oslogin = "TRUE"
      }
    }

    אפשרות אחרת היא להגדיר את enable-oslogin לערך FALSE כדי להשבית את OS Login.

  • אפשרות 2: מגדירים את enable-oslogin במטא-נתונים של מכונה וירטואלית חדשה או קיימת.

    משתמשים במשאב Terraform‏ google_compute_instance ומגדירים את oslogin=TRUE. מחליפים את oslogin_instance_name בשם של המכונה הווירטואלית.

    resource "google_compute_instance" "oslogin_instance" {
      name         = "oslogin-instance-name"
      machine_type = "f1-micro"
      zone         = "us-central1-c"
      metadata = {
        enable-oslogin : "TRUE"
      }
      boot_disk {
        initialize_params {
          image = "debian-cloud/debian-13"
        }
      }
      network_interface {
        # A default network is created for all GCP projects
        network = "default"
        access_config {
        }
      }
    }

    לחלופין, אתם יכולים להגדיר את enable-oslogin לערך FALSE כדי להחריג את המכונה הווירטואלית משימוש ב-OS Login.

השבתה של OS Login

כדי להשבית את OS Login, מגדירים את enable-oslogin לערך FALSE במטא-נתונים של הפרויקט או של המכונה.

כש-OS Login מושבת, אפשר להתחבר למכונות הווירטואליות באמצעות מפתחות SSH ששמורים במטא-נתונים.

השבתת OS Login בכל המכונות הווירטואליות בפרויקט

כדי להשבית את OS Login בכל המכונות הווירטואליות בפרויקט, מגדירים את הערך הבא במטא-נתונים של הפרויקט:

  • מפתח: enable-oslogin
  • ערך: FALSE

השבתה של OS Login במכונה וירטואלית אחת

כדי להשבית את OS Login במכונה וירטואלית אחת, מגדירים את הערך הבא במטא-נתונים של המכונה:

  • מפתח: enable-oslogin
  • ערך: FALSE

הגדרת enable-oslogin לערך FALSE במטא-נתונים של המכונה משביתה את OS Login במכונה הווירטואלית, גם אם enable-oslogin מוגדר לערך TRUE במטא-נתונים של הפרויקט.

התחברות למכונות וירטואליות שמופעל בהן OS Login

כדי להתחבר למכונות וירטואליות שמופעל בהן OS Login, משתמשים בשיטות שמתוארות במאמר התחברות למכונות וירטואליות של Linux.

כשמתחברים למכונות וירטואליות שמופעל בהן OS Login, ‏ Compute Engine משתמש בערך של google.posix_username מיפוי המאפיינים כשם המשתמש. מידע נוסף על שמות משתמשים זמין במאמר איך OS Login פועל.

פתרון בעיות ב-OS Login

כדי למצוא שיטות לאבחון ולפתרון שגיאות ב-OS Login, ראו פתרון בעיות ב-OS Login.

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