בדף הזה מוסבר איך להשתמש בתכונה צומתי GKE מוגנים. צומתי GKE מוגנים מספקים זהות ושלמות חזקות וניתנות לאימות של הצומת, כדי לשפר את האבטחה של צומתי Google Kubernetes Engine (GKE).
באשכולות GKE Autopilot, התכונה Shielded GKE Nodes מופעלת כברירת מחדל ואי אפשר לשנות את זה. באשכולות GKE Standard, התכונה Shielded GKE Nodes (צומתי GKE מוגנים) מופעלת כברירת מחדל, אבל אפשר לשנות את ההגדרה הזו.
מידע על צומתי GKE מוגנים
צומתי GKE מוגנים מבוססים על מכונות וירטואליות מוגנות ב-Compute Engine. בלי Shielded GKE Nodes, תוקף יכול לנצל נקודת חולשה ב-Pod כדי להעביר פרטי כניסה של bootstrap ולהתחזות לצמתים באשכול, וכך להשיג גישה לסודות של האשכול. כשהתכונה Shielded GKE Nodes מופעלת, מישור הבקרה של GKE מאמת באופן קריפטוגרפי את הדברים הבאים:
- כל צומת באשכול הוא מכונה וירטואלית שפועלת במרכז הנתונים של Google.
- כל צומת הוא חלק מקבוצת מופעים מנוהלת (MIG) שהוקצתה לאשכול.
- ל-kubelet מוקצה אישור לצומת שבו הוא פועל.
כך מצטמצמת היכולת של תוקף להתחזות לצומת באשכול, גם אם הוא מצליח לחלץ את פרטי הכניסה של הצומת. לפרטי הכניסה לאתחול, שנמצאים במטא-נתונים של הצומת (TPM_BOOTSTRAP_KEY), יש רק אפשרות ליצור בקשות לחתימה על אישורים. אישור האישורים האלה לא יתבצע באופן אוטומטי על ידי מישור הבקרה, והם לא יהפכו לאישורים של צומת עבודה אלא אם יתקיימו התנאים שצוינו קודם, ובקשת חתימה על אישור (CSR) תכיל אישור מ-vTPM של הצומת. אפשר גם למנוע מ-kubelet בצמתים ליצור אובייקטים של Node באשכול על ידי הפעלת יצירת צומת של מישור הבקרה (תצוגה מקדימה). כך מצמצמים את ההשפעה גם אם צומת נפרץ אחרי אישור בקשת חתימה על אישור (CSR).
צמתים של רמת הבקרה של אשכול GKE תמיד משתמשים בצמתים מוגנים של GKE, גם אם משביתים את התכונה באשכול. הפעלה או השבתה של Shielded GKE Nodes משפיעה רק על השימוש בתכונה בצומתי העובדים שמריצים את עומסי העבודה.
תמחור
אין עלות נוספת להפעלת צמתים מוגנים של GKE. עם זאת, צומתי GKE מוגנים יוצרים כ-0.5KB יותר של יומנים בהפעלה בהשוואה לצמתים רגילים. פרטים נוספים מופיעים בדף התמחור של Cloud Logging.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק Google Kubernetes Engine API. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את gcloud CLI. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
הפעלה של צומתי GKE מוגנים באשכול חדש
אפשר ליצור אשכול חדש עם Shielded GKE Nodes מופעל באמצעות gcloud CLI או מסוף Google Cloud .
gcloud
כשיוצרים אשכול חדש, מציינים את האפשרות --enable-shielded-nodes:
gcloud container clusters create CLUSTER_NAME \
--enable-shielded-nodes
המסוף
נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
בחלונית הניווט, בקטע Cluster, לוחצים על Security.
מסמנים את תיבת הסימון Enable Shielded GKE Nodes (הפעלת צומתי GKE מוגנים).
מגדירים את האשכול לפי הצורך.
לוחצים על יצירה.
פרטים נוספים על יצירת אשכולות זמינים במאמר בנושא יצירת אשכול.
הפעלת צומתי GKE מוגנים באשכול קיים
אפשר להפעיל Shielded GKE Nodes באשכול קיים באמצעות Google Cloud CLI או מסוף Google Cloud .
איך GKE מאפשר צומתי GKE מוגנים
אחרי שמפעילים את התכונה Shielded GKE Nodes, צמתי העובדים נוצרים מחדש כ-Shielded VMs. הצמתים באשכול נוצרים מחדש באופן הדרגתי כדי לצמצם את זמן ההשבתה.
אחרי שמפעילים צומתי GKE מוגנים, מערכת GKE מעדכנת את האשכול באמצעות השלבים הבאים:
- מערכת GKE יוצרת מחדש באופן מיידי את מישור הבקרה, בלי להתחשב בזמינות לצורך תחזוקה.
- GKE יוצר מחדש את צומתי ה-worker כ-Shielded VMs, תוך התחשבות בזמינות לתחזוקה. ב-GKE נעשה שימוש בשדרוגים מצטברים כדי לעדכן כל אחד ממאגרי הצמתים. זה תלוי בזמינות המשאבים. השבתת השדרוגים האוטומטיים של הצמתים לא מונעת את השינוי הזה.
פרטים על השינוי הספציפי הזה מופיעים בשורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים בהתאם למדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכוני צמתים.
הפעלת צומתי GKE מוגנים
gcloud
כשמעדכנים את האשכול, מציינים את האפשרות --enable-shielded-nodes:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
המסוף
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
בקטע אבטחה, בשדה צומתי GKE מוגנים, לוחצים על edit עריכת צומתי GKE מוגנים.
מסמנים את תיבת הסימון Enable Shielded GKE Nodes (הפעלת צומתי GKE מוגנים).
לוחצים על שמירת השינויים.
אימות שהאפשרות 'צומתי GKE מוגנים' מופעלת
אתם יכולים לוודא שהאשכול משתמש בצמתי GKE מוגנים באמצעות Google Cloud CLI או Google Cloud המסוף.
gcloud
תארו את האשכול:
gcloud container clusters describe CLUSTER_NAME
אם צומתי GKE מוגנים מופעלים, הפלט של הפקודה יכלול את השורות הבאות:
shieldedNodes:
enabled: true
המסוף
כדי לוודא שאשכול משתמש בצומתי GKE מוגנים:
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לבדוק.
בקטע Security (אבטחה), בשדה Shielded GKE Nodes (צומתי GKE מוגנים), מוודאים שהאפשרות Shielded GKE Nodes (צומתי GKE מוגנים) מופעלת.
אפשר גם לעקוב אחרי השלמות של מכונות וירטואליות מוגנות (Shielded VMs) בבסיס הצמתים. ההליך מפורט במאמר מעקב אחר תקינות במכונות וירטואליות מוגנות.
השבתה של צומתי GKE מוגנים
אפשר להשבית את הצמתים המוגנים של GKE באמצעות Google Cloud CLI או Google Cloud המסוף.
איך GKE משבית צומתי GKE מוגנים
אחרי שמשביתים את צומתי GKE המוגנים, GKE מעדכן את האשכול באמצעות השלבים הבאים:
- מערכת GKE יוצרת מחדש באופן מיידי את מישור הבקרה, בלי להתחשב בזמינות לצורך תחזוקה.
- GKE יוצר מחדש את צמתי העובדים כמכונות וירטואליות לא מוגנות, בהתאם לזמינות לצורך תחזוקה. ב-GKE נעשה שימוש בשדרוגים מצטברים כדי לעדכן כל אחד ממאגרי הצמתים. זה תלוי בזמינות המשאבים. השבתת השדרוגים האוטומטיים של הצמתים לא מונעת את השינוי הזה.
פרטים על השינוי הספציפי הזה מופיעים בשורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים בהתאם למדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכוני צמתים.
השבתה של צומתי GKE מוגנים
gcloud
כשמעדכנים את האשכול, מציינים את האפשרות --no-enable-shielded-nodes:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
המסוף
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
בקטע אבטחה, בשדה צומתי GKE מוגנים, לוחצים על edit עריכת צומתי GKE מוגנים.
מסירים את הסימון בתיבת הסימון הפעלת צומתי GKE מוגנים.
לוחצים על שמירת השינויים.
תקינות הצומת
אפשר גם להגדיר בדיקות שלמות של צמתים במאגרי צמתים כדי לספק הגנה משופרת מפני rootkit ו-bootkit לצמתים. צמתי GKE מוגנים, הפעלה מאובטחת וניטור תקינות הם תכונות עצמאיות שאפשר להפעיל או להשבית כל אחת מהן בנפרד.
הפעלה מאובטחת
הפעלה מאומתת היא הגדרה של מאגר צמתים שמאמתת את רכיבי ההפעלה של המכונות הווירטואליות של הצמתים, כמו הליבה ותוכנת האתחול, במהלך תהליך ההפעלה. האפשרות 'אתחול מאובטח' מושבתת כברירת מחדל במאגרי צמתים.
לפני שמפעילים את האתחול המאובטח במאגרי הצמתים, חשוב לקחת בחשבון את הנקודות הבאות:
- הפעלת אתחול מאובטח בצמתי Ubuntu חוסמת טעינה של מודולים לא חתומים של ליבת צד שלישי בצמתים האלה.
- הפעלת אתחול מאובטח בצמתים של מערכת הפעלה שמותאמת לקונטיינרים לא משפיעה על טעינת מודול הליבה, כי תמונות הצמתים של מערכת הפעלה שמותאמת לקונטיינרים שולטות ביכולת לטעון מודולים של ליבה של צד שלישי בנפרד מהאתחול המאובטח. אם רוצים לשנות את ההגדרה הזו בצמתים של Container-Optimized OS, צריך להגדיר טעינה מאובטחת של מודול ליבת המערכת.
כדי להפעיל את האתחול המאובטח, משתמשים ב-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.
המסוף
כדי להפעיל את האתחול המאובטח כשיוצרים מאגר צמתים:
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
לוחצים על add_box הוספת מאגר צמתים.
בתפריט הניווט, לוחצים על אבטחה.
בקטע אפשרויות מוגנות, מסמנים את תיבת הסימון הפעלת אתחול מאובטח.
לוחצים על יצירה.
מעקב אחר תקינות
מעקב אחר שלמות היא הגדרה של מאגר צמתים שמופעלת כברירת מחדל ב-GKE. אפשר להשבית את מעקב השלמות באמצעות Google Cloud CLI או מסוף Google Cloud .
gcloud
כדי להשבית את המעקב אחר תקינות של רכיבי מערכת כשיוצרים מאגר צמתים:
gcloud container node-pools create POOL_NAME \
--no-shielded-integrity-monitoring
המעקב אחר שלמות האפליקציה מופעל כברירת מחדל. אפשר להפעיל אותו באופן מפורש כשיוצרים מאגר צמתים באמצעות האפשרות --shielded-integrity-monitoring.
המסוף
כדי להשבית את מעקב התקינות כשיוצרים מאגר צמתים:
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
לוחצים על add_box הוספת מאגר צמתים.
בחלונית הניווט, לוחצים על אבטחה.
בקטע Shielded options (אפשרויות מוגנות), מבטלים את הסימון בתיבת הסימון Enable integrity monitoring (הפעלת מעקב אחר שלמות).