אישור סוכן המעקב

במדריך הזה מוסבר איך לוודא שסוכן Monitoring, שמתקינים במכונה וירטואלית (VM), מורשה לשלוח נתוני טלמטריה אל Google Cloud Observability.

סקירה כללית בנושא הרשאות

הרשאה היא התהליך שבו קובעים אילו הרשאות יש ללקוח מאומת לגבי קבוצת משאבים. Google Cloud מאשרת את הסוכן של Monitoring במכונה וירטואלית (VM) של Compute Engine באמצעות פרטי כניסה שמוגדרים כברירת מחדל לאפליקציה (ADC).

הסוכן של Monitoring תומך ב-ADC לצורך אימות של חשבון שירות שמצורף למכונה וירטואלית או של מפתח של חשבון שירות.

  • חשבון שירות מצורף הוא חשבון שירות שספציפי למשאב מסוים, כמו מכונה וירטואלית. לחשבון השירות יש פרטי כניסה ייחודיים משלו. ‫ADC משתמש בשרת המטא-נתונים של המכונה הווירטואלית כדי לקבל פרטי כניסה לשירות.
  • מפתח של חשבון שירות הוא מפתח פרטי שמשמש להרשאת זוג המפתחות בחשבון שירות בפרויקט, ומאפשר ליצור אסימון גישה. משתמשים באסימון כדי לספק זהות, וכך אפשר לקיים אינטראקציה עם ממשקי Google Cloud API מטעם חשבון השירות.

מומלץ להגדיר את ADC לאימות באמצעות חשבון שירות מצורף כשאפשר, כי המפתח הפרטי דורש אחסון מקומי, והאחסון הזה עלול להיפרץ. מידע נוסף על מפתחות של חשבונות שירות זמין במאמר שיטות מומלצות לניהול מפתחות של חשבונות שירות.

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

המדריך הזה רלוונטי לכם אם אחד מהמצבים הבאים מתקיים:

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

    במכונות וירטואליות חדשות של Compute Engine, היקפי הגישה והגדרות חשבון השירות מספיקים להרצת הסוכנים.

כדי לאמת את היקפי הגישה:

  1. מריצים את הפקודה הבאה במכונה של Compute Engine כדי לשלוח שאילתה לגבי היקפי הגישה:
    curl --silent --connect-timeout 1 -f -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes
  2. אם היקף הגישה https://www.googleapis.com/auth/cloud-platform מופיע בפלט הפקודה, יש לכם הרשאה מספקת.

    אם https://www.googleapis.com/auth/cloud-platform לא מופיע ברשימה, צריך שני היקפי גישה, אחד מכל אחד מהזוגות הבאים של 'רישום ביומן' ו'מעקב':

    • https://www.googleapis.com/auth/logging.write או
      https://www.googleapis.com/auth/logging.admin
    • https://www.googleapis.com/auth/monitoring.write או
      https://www.googleapis.com/auth/monitoring.admin

כדי לשנות את היקפי הגישה:

  1. נכנסים לדף VM instances במסוף Google Cloud :

    כניסה לדף VM instances

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.

  2. אם צריך, לוחצים על הרשימה הנפתחת של Google Cloud פרויקטים ובוחרים את שם הפרויקט.
  3. בתפריט הניווט, בוחרים באפשרות VM instances, בוחרים בכרטיסייה Instances ואז בוחרים את שם המכונה הווירטואלית.
  4. כדי לכבות את המכונה הווירטואלית, לוחצים על  Stop.
  5. אחרי שהמכונה הווירטואלית מפסיקה לפעול, לוחצים על  עריכה.
  6. בקטע Identity and API access בדף, מאתרים את Access scopes ובוחרים באפשרות Set access for each API.
  7. לרשומות של Stackdriver Logging API ו-Stackdriver Monitoring API, בוחרים באפשרות כתיבה בלבד.
  8. לוחצים על שמירה, ואז מפעילים מחדש את המכונה הווירטואלית על ידי לחיצה על  התחלה/המשך.

שימוש בחשבון שירות

אימות הוא התהליך שבו קובעים את הזהות של הלקוח. לצורך אימות, מומלץ להשתמש בחשבון שירות, שהוא סוג מיוחד של חשבון שמשמש בדרך כלל אפליקציה או עומס עבודה, ולא אדם. מידע נוסף מופיע במאמר סקירה כללית על חשבונות שירות.

אתם יכולים להשתמש בחשבונות שירות לאימות, לא משנה איפה הקוד שלכם פועל: ב-Compute Engine, ב-App Engine או בשרת מקומי. מידע נוסף זמין במאמר אימות ב-Google.

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

יצירה של חשבון שירות

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

  • בוחרים את הפרויקט שבו רוצים ליצור את חשבון השירות. Google Cloud

    • לגבי מופעי Compute Engine, בוחרים את הפרויקט שבו נוצר המופע.
  • בתפריט הנפתח תפקיד, בוחרים בתפקידים הבאים:

    • Monitoring‏ > Monitoring Metric Writer. כך מאשרים את סוכן המעקב.

    אם מתקינים גם את סוכן ה-Logging, צריך להוסיף את התפקיד הבא לסוכן הזה:

    • Logging‏ > Logs Writer. כך מאשרים את השימוש בסוכן Logging.
  • אם אתם מתכננים לבצע אימות באמצעות מפתח של חשבון שירות, בוחרים באפשרות JSON בתור Key type ולוחצים על Create.

    כשלוחצים על Create, קובץ שמכיל מפתח של חשבון שירות מורד למערכת המקומית. מידע נוסף מופיע במאמר יצירה ומחיקה של מפתחות של חשבונות שירות.

בשלב הבא, מגדירים את חשבון השירות וההגדרות בהתאם לשיטת ההרשאה: באמצעות חשבונות שירות מצורפים או באמצעות מפתחות פרטיים של חשבונות שירות.

אימות ושינוי של תפקידים בחשבון שירות קיים

אתם יכולים להשתמש במסוף Google Cloud כדי לקבוע אילו תפקידים יש לחשבון שירות קיים, ולהוסיף תפקידים נדרשים שחסרים:

  1. נכנסים לדף IAM במסוף Google Cloud :

    כניסה לדף IAM

    אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא IAM & Admin.

  2. אם צריך, לוחצים על הרשימה הנפתחת של Google Cloud פרויקטים ובוחרים את שם הפרויקט.

  3. אם לא מופיעה רשימה של ישויות IAM (משתמשים וחשבונות שירות), בוחרים בכרטיסייה הרשאות.

  4. ברשימה View by Principals (תצוגה לפי חשבונות משתמשים), מאתרים את הרשומה של חשבון השירות. בעמודה תפקיד מפורטים התפקידים שניתנו לחשבון השירות.

  5. אם לחשבון השירות שלכם אין את התפקידים הנדרשים לסוכן Monitoring, אתם צריכים להוסיף את התפקידים שמתוארים במאמר יצירת חשבון שירות.

    1. לוחצים על  עריכה ברשומה של חשבון השירות.
    2. לוחצים על הוספת תפקיד נוסף כדי להוסיף תפקידים חסרים.
    3. לוחצים על Save.

הרשאה עם חשבון שירות מצורף

כדי לתת הרשאה לסוכן Monitoring שהותקן במכונה וירטואלית של Compute Engine שמצורף אליה חשבון שירות:

  1. מוודאים שאימתתם את היקפי הגישה של המכונה הווירטואלית.

  2. מקצים לחשבון השירות את התפקידים עם ההרשאות המינימליות הנדרשות ב-IAM. בקטע יצירת חשבון שירות בדף הזה מפורטים התפקידים הנדרשים.

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

  4. אם עדיין לא התקנתם את הסוכן, תצטרכו להתקין אותו. מידע נוסף על התקנת הסוכן זמין במאמר התקנת הסוכן.

הרשאה באמצעות מפתח לחשבון שירות

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

  1. מעבירים את קובץ המפתח של חשבון השירות מהמערכת המקומית למכונה הווירטואלית:

    1. יוצרים משתנה סביבה שיצביע על קובץ המפתח של חשבון השירות במערכת המקומית. בדוגמה הבאה נוצר משתנה בשם CREDS:

      CREDS=~/Downloads/PROJECT-NAME-KEY-ID.json
      
    2. נכנסים לדף VM instances במסוף Google Cloud :

      כניסה לדף VM instances

      אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים את התוצאה עם כותרת המשנה Compute Engine.

      מזהים את כתובת ה-INSTANCE_NAME ואת INSTANCE_ZONE של מכונת ה-VM.

    3. במערכת המקומית, מריצים פקודה של Google Cloud CLI כדי להעתיק את קובץ המפתח מהמערכת המקומית למופע של מכונה וירטואלית:

      REMOTE_USER="$USER"
      INSTANCE="INSTANCE_NAME"
      ZONE="INSTANCE_ZONE"
      gcloud compute scp "$CREDS" "$REMOTE_USER@$INSTANCE:~/temp.json" --zone "$ZONE"
      
    4. במכונה של Compute Engine, מעבירים את קובץ המפתח של חשבון השירות מהמיקום הזמני למיקום קבוע. במערכת Linux, מוודאים שקובץ המפתח של חשבון השירות ניתן לקריאה רק על ידי root.

      אלה המיקומים שבהם הנציג מצפה למצוא את קובץ המפתח:

      • מכונות וירטואליות של Linux: /etc/google/auth/application_default_credentials.json
      • מכונות וירטואליות של Linux: כל מיקום שמאוחסן במשתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS, שחייב להיות גלוי לתהליך של הסוכן. מידע על ההגדרה מופיע במאמר הגדרת GOOGLE_APPLICATION_CREDENTIALS.

      לדוגמה, ב-Linux אפשר להריץ את הסקריפט הבא, שמעביר את קובץ המפתח של חשבון השירות למיקום ברירת המחדל, ואז מגדיר את ההרשאות המתאימות:

      CREDENTIALS_FILE_LOCATION="/etc/google/auth/application_default_credentials.json"
      sudo mkdir -p /etc/google/auth
      sudo mv "$HOME/temp.json" "$CREDENTIALS_FILE_LOCATION"
      sudo chown root:root "$CREDENTIALS_FILE_LOCATION"
      sudo chmod 0400 "$CREDENTIALS_FILE_LOCATION"
      

  2. עכשיו יש למכונה הווירטואלית את קובץ המפתח של חשבון השירות שהסוכן צריך. לאחר מכן, מתקינים או מפעילים מחדש את הסוכן:

הגדרת GOOGLE_APPLICATION_CREDENTIALS

בקטע הזה מוסבר איך להגדיר את משתנה הסביבה GOOGLE_APPLICATION_CREDENTIALS כך שהוא יהיה גלוי לתהליך של הסוכן.

Linux

  1. עורכים את קובץ התצורה הבא, או יוצרים את הקובץ אם הוא לא קיים:

    /etc/default/stackdriver-agent
    
  2. מוסיפים את השורות הבאות לקובץ התצורה:

    GOOGLE_APPLICATION_CREDENTIALS=PATH_TO_CREDENTIAL_FILE
    
  3. מפעילים מחדש את הסוכן על ידי הפעלת הפקודה הבאה במופע ה-VM:

    sudo service stackdriver-agent restart
    

Windows

  1. ב-PowerShell, מריצים את הפקודות הבאות כאדמינים כדי להגדיר את משתנה הסביבה של המערכת GOOGLE_APPLICATION_CREDENTIALS לשימוש של סוכן תפעול:

    [Environment]::SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "PATH_TO_CREDENTIAL_FILE", "Machine")
    
  2. מפעילים מחדש את הסוכן על ידי הפעלת הפקודה הבאה במופע ה-VM:

    Restart-Service -Name StackdriverMonitoring