מידע על מטא-נתונים של מכונות וירטואליות

כל מכונה של Compute Engine מאחסנת את המטא-נתונים שלה בשרת מטא-נתונים. הנתונים האלה חיוניים להגדרה ולניהול של מופעי המחשוב. המטא-נתונים כוללים פרטים כמו מאפייני המופע, הגדרות הרשת ונתונים שהוגדרו על ידי המשתמש. למופעי החישוב יש גישה אוטומטית ל-API של שרת המטא-נתונים בלי הרשאה נוספת.

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

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

שימושים במטא-נתונים של מכונות וירטואליות

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

סקריפטים להפעלה ולכיבוי

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

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

תחזוקת המארח

שרת המטא-נתונים מספק מידע על אפשרות התזמון של מכונה וירטואלית בספריית המטא-נתונים scheduling/ באמצעות המפתח maintenance-event. אתם יכולים להשתמש בערכי המטא-נתונים האלה כדי לקבל התראה כשאירוע תחזוקה עומד לקרות, וכך תוכלו להכין את הסביבה שלכם לאירוע. מידע נוסף זמין במאמר בנושא קבלת הודעות על מיגרציה פעילה.

מאפייני אורחים

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

מאפייני השותף

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

שיקולי אבטחה לגבי מטא-נתונים

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

עם זאת, לכל תהליך שיכול לשאול את כתובת ה-URL של המטא-נתונים יש גישה לכל הערכים בשרת המטא-נתונים. הנתונים האלה כוללים ערכים של מטא-נתונים בהתאמה אישית, אישורי לקוח ומפתחות פרטיים שאתם כותבים לשרת. ‫Google ממליצה לנקוט משנה זהירות כשכותבים ערכים רגישים לשרת המטא-נתונים או כשמריצים תהליכים של צד שלישי. צריך להפעיל ארגז חול לכל תהליך שלא אמורה להיות לו גישה לשרת המטא-נתונים.

תמחור

אינטראקציה עם שרת המטא-נתונים מתוך מכונה וירטואלית לא כרוכה בעלויות ולא משפיעה על המכסות של Compute Engine API. ההגבלה הזו רלוונטית גם לשליחת שאילתות לגבי רשומות של מטא-נתונים וגם לכתיבת מאפייני אורח.

עם זאת, ניהול מטא-נתונים באמצעות gcloud CLI או Compute Engine API מחוץ למכונה הווירטואלית עדיין כפוף למכסות API רגילות בפרויקט.

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

  • עלויות: לא חלים חיובים על תעבורת נתונים יוצאת או על שירותים עבור קריאות לשרת המטא-נתונים, כולל קריאות באמצעות שם ה-DNS ‏(metadata.google.internal) או כתובות ה-IP ‏(169.254.169.254 או fd20:ce::254).
  • מכסת Compute Engine API: קריאות לשרת המטא-נתונים לא צורכות מכסות אזוריות או מגבלות קצב של compute.googleapis.com API.
  • מכסת IAM API: שרת המטא-נתונים לא מקיים אינטראקציה עם מכסות גלובליות של Identity and Access Management API.
  • הגבלת קצב העברת נתונים: לשרת המטא-נתונים יש מגבלות פנימיות, אבל דפוסי בדיקה רגילים לא אמורים לגרום להגבלת קצב העברת נתונים.

נקודות הקצה של שרת המטא-נתונים

אפשר לגשת לשרת המטא-נתונים מנקודות קצה של HTTP וגם של HTTPS.

נקודות הקצה של שרת המטא-נתונים ב-HTTP

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

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

  • שם DNS (מומלץ): http://metadata.google.internal/computeMetadata/v1
  • כתובת IPv4: http://169.254.169.254/computeMetadata/v1
  • כתובת IPv6 (רק למכונות וירטואליות עם IPv6 בלבד): http://[fd20:ce::254]/computeMetadata/v1

נקודות הקצה של שרת המטא-נתונים של HTTPS

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

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

  • שם DNS (מומלץ): https://metadata.google.internal/computeMetadata/v1
  • כתובת IPv4: https://169.254.169.254/computeMetadata/v1
  • כתובת IPv6 (רק למכונות וירטואליות עם IPv6 בלבד): https://[fd20:ce::254]/computeMetadata/v1

יתרונות השימוש בנקודת הקצה של שרת המטא-נתונים מסוג HTTPS

שימוש בנקודת הקצה מסוג HTTPS לשליחת שאילתה לשרת המטא-נתונים מספק את היתרונות הבאים:

  • שיפור האבטחה: עוזרת למנוע גישה לא מורשית למטא-נתונים רגישים. היא מונעת מתוקף לבצע את הפעולות הבאות:

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

איך התהליך עובד

במכונות וירטואליות מוגנות שמותקנת בהן סביבת האורח, התהליכים הבאים מתבצעים ב-VM:

  1. ‫Compute Engine יוצר שלוש תעודות באופן הבא:

    • אישור בסיס בחתימה עצמית: אישור ייחודי שנוצר על ידי Compute Engine עבור המכונה הווירטואלית. ‫Compute Engine יוצר את האישור הזה רק בהפעלה הראשונה של המכונה הווירטואלית, והוא תקף ל-50 שנה.
    • אישור זהות של השרת: אישור לשרת המטא-נתונים.
    • אישור זהות של לקוח: אישור של הלקוח. שרת המטא-נתונים לא שומר את האישור הזה במטמון. סביבת האורח מקבלת אישור חדש משרת המטא-נתונים בכל קריאה לנקודת הקצה של אישור הלקוח. האישור הזה תקף ל-7 ימים. סביבת האורח צריכה לקרוא לנקודת הקצה לפחות אחת ל-7 ימים כדי לקבל אישור חדש ולשמור על אישור תקף.

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

  2. באיתחול הראשון, Compute Engine מעביר את החלק הציבורי של אישור הבסיס לסביבת האורח של ה-VM באמצעות משתנה UEFI שנוצר על ידי Google. לאחר מכן, אישור הבסיס הזה נשמר במכונה הווירטואלית.

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

כשמבצעים שאילתה לנקודת הקצה של שרת המטא-נתונים מסוג HTTPS, מציינים את אישורי הזהות של הלקוח, שבהם משתמשים שרת המטא-נתונים והמכונה הווירטואלית כדי לוודא שהשאילתה הזו מורשית.

הפעלה של הגדרת אישורים אוטומטית

אם רוצים שהמכונות או הפרויקטים יגדירו באופן אוטומטי את אישורי ה-HTTPS MDS, צריך להגדיר את מפתח המטא-נתונים disable-https-mds-setup במכונה או בפרויקט לערך FALSE.

מידע נוסף זמין במאמר בנושא מפתחות מטא-נתונים מוגדרים מראש.

איפה מאוחסנים האישורים

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

אישורי בסיס

‫CentOS/RHEL/Rocky

אישורים בסיסיים למכונות וירטואליות של CentOS,‏ Red Hat Enterprise Linux‏ (RHEL) ו-Rocky Linux מאוחסנים במיקום הבא:

/run/google-mds-mtls/root.crt

‫Debian/Ubuntu

אישורים בסיסיים למכונות וירטואליות של Debian ו-Ubuntu מאוחסנים במיקום הבא:

/run/google-mds-mtls/root.crt

Fedora

אישורי הבסיס למכונות וירטואליות של Fedora מאוחסנים במיקום הבא:

/run/google-mds-mtls/root.crt

SLES

אישורי הבסיס למכונות וירטואליות של SUSE Linux Enterprise Server‏ (SLES) מאוחסנים במיקום הבא:

/run/google-mds-mtls/root.crt

Windows

אישורי הבסיס למכונות וירטואליות של Windows מאוחסנים במיקום הבא:

C:\ProgramData\Google\ComputeEngine\mds-mtls-root.crt

אישורי זהות לקוח

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

Linux

אישורי זהות של לקוחות למכונות וירטואליות של Linux מאוחסנים במיקום הבא:

/run/google-mds-mtls/client.key

Windows

אישורי זהות של לקוחות למכונות וירטואליות של Windows מאוחסנים במיקומים הבאים:

  • C:\ProgramData\Google\ComputeEngine\mds-mtls-client.key

הפעלת אחסון של אישורי בסיס במאגר האישורים של מערכת ההפעלה

אם רוצים ש-Compute Engine יוסיף אוטומטית את אישור הבסיס של שרת המטא-נתונים של HTTPS למאגר האישורים המהימנים של מערכת ההפעלה, צריך להגדיר את מפתח המטא-נתונים enable-https-mds-native-cert-store במכונה או בפרויקט לערך TRUE.

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

‫CentOS/RHEL/Rocky

/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem

‫Debian/Ubuntu

/etc/ssl/certs/ca-certificates.crt

Fedora

/etc/pki/tls/certs/ca-bundle.crt

SLES

/etc/ssl/ca-bundle.pem

Windows

Cert:\LocalMachine\Root

מידע נוסף זמין במאמר בנושא מפתחות מטא-נתונים מוגדרים מראש.

רוטציה של אישור בסיס

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

מפתחות מטא-נתונים מוגדרים מראש ומותאמים אישית

כל רשומה של מטא-נתונים מאוחסנת בשרת המטא-נתונים כצמדי מפתח/ערך. המפתחות של המטא-נתונים הם תלויי אותיות רישיות. המפתחות יכולים להיות מפתחות מטא-נתונים מוגדרים מראש או מותאמים אישית.

מפתחות מטא-נתונים מוגדרים מראש

מפתחות מטא-נתונים מוגדרים מראש הם מפתחות מטא-נתונים שנוצרו על ידי Compute Engine. כשיוצרים מכונת VM, ‏ Compute Engine מגדיר באופן אוטומטי את ערכי המטא-נתונים של חלק מהמפתחות האלה במכונת ה-VM – לדוגמה, מזהה מכונת ה-VM או מזהה הפרויקט. למפתחות מוגדרים מראש שבהם Compute Engine לא מגדיר ערך באופן אוטומטי, אפשר לבחור מתוך קבוצת ערכים שזמינים בהתאם להגדרת המערכת. לדוגמה, כדי להפעיל OS Login במכונה וירטואלית, אפשר להגדיר את הערך של המפתח המוגדר מראש enable-oslogin ל-TRUE במכונה הווירטואלית הזו. כדי להשבית את OS Login במכונה וירטואלית מסוימת, אפשר לעדכן את הערך של המפתח ל-FALSE. אפשר לעדכן רק את הערכים של המפתחות האלה, אבל לא את המפתחות עצמם.

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

מפתחות מטא-נתונים בהתאמה אישית

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

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

סוגי מטא-נתונים

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

מטא-נתונים של הפרויקט

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

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

מטא-נתונים אזוריים

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

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

מטא-נתונים של מופע

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

אפשר להשתמש במפתחות מטא-נתונים שהוגדרו מראש ובמפתחות מטא-נתונים מותאמים אישית כדי להגדיר מטא-נתונים של מופע. מידע נוסף על מפתחות מטא-נתונים מוגדרים מראש של מופעים ועל הגדרת מטא-נתונים מותאמים אישית של מופעים

איך המטא-נתונים מסודרים

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

סוג המטא-נתונים ספרייה
מטא-נתונים של פרויקטים ואזורים
  • נקודת קצה (endpoint) של HTTP:
    http://metadata.google.internal/computeMetadata/v1/project
  • נקודת קצה (endpoint) של HTTPS:
    https://metadata.google.internal/computeMetadata/v1/project
מטא-נתונים של מופע
  • נקודת קצה (endpoint) של HTTP:
    http://metadata.google.internal/computeMetadata/v1/instance
  • נקודת קצה (endpoint) של HTTPS:
    https://metadata.google.internal/computeMetadata/v1/instance

כל ספרייה מאחסנת רשומות של מטא-נתונים בצורה של צמדי מפתח/ערך. חלק מהרשומות של המטא-נתונים הן גם ספריות שמכילות מפתחות אחרים של מטא-נתונים. רשומות המטא-נתונים שמשמשות כספריות מסומנות בקו נטוי (/) בסוף שם מפתח המטא-נתונים. לדוגמה, /project/attributes/ היא ספרייה בספרייה project/ שמכילה מפתחות אחרים של מטא-נתונים. כדי ליצור רשימת מטא-נתונים משלכם, צריך להשתמש בלוכסן בסוף (/) בשם מפתח המטא-נתונים כשיוצרים את רשומת המטא-נתונים בהתאמה אישית.

כששולחים שאילתה לנקודת קצה של מטא-נתונים, הפורמט של גוף התגובה תלוי בנקודת הקצה. אם שולחים שאילתה לנקודת קצה שמאחסנת ערך יחיד, כמו hostname, גוף התשובה מכיל את הערך הזה כטקסט פשוט. אם שולחים שאילתה לנקודת קצה שמשמשת כספרייה, כמו /project/attributes/, גוף התשובה מכיל רשימה של הערכים בספרייה הזו, עם ערך אחד בכל שורה.

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

רשומות של מטא-נתונים ברמת הפרויקט וברמת האזור מאוחסנות באותה ספרייה, project/. אם מגדירים ערכים שונים לאותם מפתחות של מטא-נתונים בהתאמה אישית למכונות וירטואליות ברמת הפרויקט וברמת האזור, ערכי המטא-נתונים האזוריים של המפתחות האלה מקבלים עדיפות על פני ערכי המטא-נתונים של הפרויקט באזורים הרלוונטיים.

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

לדוגמה, נניח שהגדרתם זוג מטא-נתונים של פרויקט: key-1=value-1. נניח שאתם מגדירים גם זוג מטא-נתונים אזוריים key-1=zonal-value-1 רק לאזור us-central1-a. כל המכונות הווירטואליות באזור us-central1-a בפרויקט שלכם יקבלו בירושה את key-1=zonal-value1 כזוג מטא-נתונים. צמד המטא-נתונים נשאר key-1=value-1 לכל מכונות ה-VM באזורים אחרים שבהם לא הגדרתם מטא-נתונים אזוריים ל-key-1.

מה השלב הבא?