שימוש בצומתי GKE מוגנים

בדף הזה מוסבר איך להשתמש בתכונה צומתי GKE מוגנים. צומתי GKE מוגנים מספקים זהות ותקינות חזקות וניתנות לאימות של הצומת, כדי להגביר את האבטחה של צומתי Google Kubernetes Engine‏ (GKE).

באשכולות GKE Autopilot, התכונה "צומתי GKE מוגנים" מופעלת כברירת מחדל ואי אפשר לשנות אותה. באשכולות GKE Standard, התכונה Shielded GKE Nodes (צומתי GKE מוגנים) מופעלת כברירת מחדל, אבל אפשר לשנות את ההגדרה.

מידע על צומתי GKE מוגנים

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

  • כל צומת באשכול הוא מכונה וירטואלית שפועלת במרכז הנתונים של Google.
  • כל צומת הוא חלק מקבוצת מופעי מכונה מנוהלים (MIG) שהוקצתה לאשכול.
  • ל-kubelet מוקצה אישור לצומת שבו הוא פועל.

כך מוגבלת היכולת של תוקף להתחזות לצומת באשכול, גם אם הוא מצליח לחלץ את פרטי הכניסה של הצומת לאתחול. לפרטי הכניסה של bootstrap, שנכללים במטא-נתונים של הצומת (TPM_BOOTSTRAP_KEY), יש רק אפשרות ליצור בקשות לחתימה על אישורים. אישור האישורים האלה לא יתבצע אוטומטית על ידי מישור הבקרה, והם לא יהפכו לאישורים של צומת עבודה אלא אם יתקיימו התנאים שצוינו קודם ובקשת החתימה (CSR) תכלול אימות (attestation) מvTPM של הצומת. כדי למנוע מה-kubelet בצמתים ליצור אובייקטים של Node באשכול, אתם יכולים להפעיל את יצירת הצומת של מישור הבקרה (תצוגה מקדימה). כך תגבילו את ההשפעה גם אם הצומת ייפגע אחרי אישור ה-CSR.

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

תמחור

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

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

לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:

  • מפעילים את ממשק ה-API של Google Kubernetes Engine.
  • הפעלת Google Kubernetes Engine API
  • כדי להשתמש ב-Google Cloud CLI למשימה הזו, מתקינים ואז מאתחלים את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה gcloud components update כדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.

הפעלה של צומתי GKE מוגנים באשכול חדש

אפשר ליצור אשכול חדש עם צומתי GKE מוגנים מופעל באמצעות ה-CLI של gcloud או המסוף Google Cloud .

gcloud

כשיוצרים אשכול חדש, מציינים את האפשרות --enable-shielded-nodes:

gcloud container clusters create CLUSTER_NAME \
    --enable-shielded-nodes

המסוף

  1. נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .

    מעבר אל יצירת אשכול Kubernetes

  2. בחלונית הניווט, לוחצים על הגדרות מתקדמות.

  3. בשורה Shielded nodes, מסמנים את התיבה Quick enable.

  4. מגדירים את האשכול לפי הצורך.

  5. לוחצים על יצירה.

פרטים נוספים על יצירת אשכולות זמינים במאמר בנושא יצירת אשכול.

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

אפשר להפעיל צומתי GKE מוגנים באשכול קיים באמצעות Google Cloud CLI או מסוף Google Cloud .

איך GKE מפעיל צומתי GKE מוגנים

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

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

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

הפעלת צומתי GKE מוגנים

gcloud

כשמעדכנים את האשכול, מציינים את האפשרות --enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME \
    --enable-shielded-nodes

המסוף

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    מעבר אל Google Kubernetes Engine

  2. לוחצים על השם של האשכול שרוצים לשנות.

  3. בקטע Security, בשדה צומתי GKE מוגנים, לוחצים על עריכת צומתי GKE מוגנים.

  4. מסמנים את התיבה Enable Shielded GKE Nodes.

  5. לוחצים על שמירת השינויים.

אימות שהאפשרות 'צומתי GKE מוגנים' מופעלת

אתם יכולים לוודא שהאשכול משתמש בצומתי GKE מוגנים באמצעות Google Cloud CLI או מסוף Google Cloud .

gcloud

תארו את האוסף:

gcloud container clusters describe CLUSTER_NAME

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

shieldedNodes:
  enabled: true

המסוף

כדי לוודא שאשכול משתמש בצומתי GKE מוגנים:

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    מעבר אל Google Kubernetes Engine

  2. לוחצים על שם האשכול שרוצים לבדוק.

  3. בקטע Security (אבטחה), בשדה Shielded GKE Nodes (צומתי GKE מוגנים), מוודאים שהאפשרות Shielded GKE Nodes Enabled (צומתי GKE מוגנים מופעלים) מסומנת.

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

השבתת צומתי GKE מוגנים

אפשר להשבית את צומתי GKE המוגנים באמצעות Google Cloud CLI או Google Cloud המסוף.

איך GKE משבית צומתי GKE מוגנים

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

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

השבתה של צומתי GKE מוגנים

gcloud

כשמעדכנים את האשכול, מציינים את האפשרות --no-enable-shielded-nodes:

gcloud container clusters update CLUSTER_NAME \
    --no-enable-shielded-nodes

המסוף

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    כניסה ל-Google Kubernetes Engine

  2. לוחצים על השם של האשכול שרוצים לשנות.

  3. בקטע Security, בשדה צומתי GKE מוגנים, לוחצים על עריכת צומתי GKE מוגנים.

  4. מבטלים את הסימון בתיבה Enable Shielded GKE Nodes.

  5. לוחצים על שמירת השינויים.

תקינות הצומת

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

אתחול מאובטח

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

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

  • הפעלת אתחול מאובטח בצמתי Ubuntu חוסמת טעינה של מודולים לא חתומים של ליבת צד שלישי בצמתים האלה.
  • הפעלת אתחול מאובטח בצמתים של מערכת הפעלה שמותאמת לקונטיינרים לא משפיעה על טעינת מודול ליבת המערכת, כי תמונות הצמתים של מערכת הפעלה שמותאמת לקונטיינרים שולטות ביכולת לטעון מודולים של ליבת מערכת של צד שלישי בנפרד מהאתחול המאובטח. אם רוצים לשנות את ההגדרה הזו לצומתי מערכת הפעלה שמותאמת לקונטיינרים, מגדירים טעינה מאובטחת של מודול ליבה (kernel).

כדי להפעיל את האתחול המאובטח, משתמשים ב-Google Cloud CLI או במסוף Google Cloud .

gcloud

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

gcloud container clusters create CLUSTER_NAME \
    --shielded-secure-boot

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

gcloud container node-pools create POOL_NAME \
    --shielded-secure-boot

האתחול המאובטח מושבת כברירת מחדל. אפשר להשבית אותו באופן מפורש כשיוצרים אשכול או מאגר צמתים באמצעות האפשרות --no-shielded-secure-boot.

המסוף

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

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    מעבר אל Google Kubernetes Engine

  2. לוחצים על השם של האשכול שרוצים לשנות.

  3. לוחצים על הוספת מאגר צמתים.

  4. בתפריט הניווט, לוחצים על אבטחה.

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

  6. לוחצים על יצירה.

מעקב אחר תקינות

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

gcloud

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

gcloud container node-pools create POOL_NAME \
    --no-shielded-integrity-monitoring

התכונה 'מעקב אחר תקינות' מופעלת כברירת מחדל. אפשר להפעיל אותה באופן מפורש כשיוצרים מאגר צמתים באמצעות האפשרות --shielded-integrity-monitoring.

המסוף

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

  1. נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .

    מעבר אל Google Kubernetes Engine

  2. לוחצים על השם של האשכול שרוצים לשנות.

  3. לוחצים על הוספת מאגר צמתים.

  4. בחלונית הניווט, לוחצים על אבטחה.

  5. בקטע Shielded options, מבטלים את הסימון של התיבה Enable integrity monitoring.

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