בדף הזה מוסבר איך להשתמש בתכונה צומתי 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
המסוף
נכנסים לדף Create a Kubernetes cluster במסוף Google Cloud .
בחלונית הניווט, לוחצים על הגדרות מתקדמות.
בשורה Shielded nodes, מסמנים את התיבה Quick enable.
מגדירים את האשכול לפי הצורך.
לוחצים על יצירה.
פרטים נוספים על יצירת אשכולות זמינים במאמר בנושא יצירת אשכול.
הפעלת צומתי GKE מוגנים באשכול קיים
אפשר להפעיל צומתי GKE מוגנים באשכול קיים באמצעות Google Cloud CLI או מסוף Google Cloud .
איך GKE מפעיל צומתי GKE מוגנים
אחרי שמפעילים את התכונה צומתי GKE מוגנים, צמתי העובדים נוצרים מחדש כמכונות וירטואליות מוגנות. הצמתים באשכול נוצרים מחדש באופן הדרגתי כדי לצמצם את זמן ההשבתה.
אחרי שמפעילים צומתי GKE מוגנים, מערכת GKE מעדכנת את האשכול באמצעות השלבים הבאים:
- GKE יוצר מחדש את מישור הבקרה באופן מיידי, בלי להתחשב בזמינות לצורך תחזוקה.
- GKE יוצר מחדש את צומתי העובדים כמכונות וירטואליות מוגנות (Shielded VMs), תוך התחשבות בזמינות לתחזוקה. ב-GKE נעשה שימוש בשדרוגים מצטברים כדי לעדכן כל אחד ממאגרי הצמתים. זה תלוי בזמינות המשאבים. השבתת השדרוגים האוטומטיים של הצמתים לא מונעת את השינוי הזה.
כדי לקבל פרטים על השינוי הספציפי הזה, חפשו את השורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים ובהתאם למדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכוני צמתים.
הפעלת צומתי GKE מוגנים
gcloud
כשמעדכנים את האשכול, מציינים את האפשרות --enable-shielded-nodes:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
בקטע Security, בשדה צומתי GKE מוגנים, לוחצים על edit עריכת צומתי GKE מוגנים.
מסמנים את התיבה Enable Shielded GKE Nodes.
לוחצים על שמירת השינויים.
אימות שהאפשרות 'צומתי 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 Enabled (צומתי GKE מוגנים מופעלים) מסומנת.
אתם יכולים גם לעקוב אחרי התקינות של המכונות הווירטואליות המוגנות שעליהן מבוססים הצמתים. ההוראות מפורטות במאמר מעקב אחרי תקינות במכונות וירטואליות מוגנות.
השבתת צומתי GKE מוגנים
אפשר להשבית את צומתי GKE המוגנים באמצעות Google Cloud CLI או Google Cloud המסוף.
איך GKE משבית צומתי GKE מוגנים
אחרי שמשביתים את צומתי GKE המוגנים, GKE מעדכן את האשכול באופן הבא:
- GKE יוצר מחדש את מישור הבקרה באופן מיידי, בלי להתחשב בזמינות לצורך תחזוקה.
- GKE יוצר מחדש את צמתי ה-worker כמכונות וירטואליות לא מוגנות, בהתאם לזמינות לצורך תחזוקה. ב-GKE נעשה שימוש בשדרוגים מצטברים כדי לעדכן כל אחד ממאגרי הצמתים. הדבר תלוי בזמינות המשאבים. השבתת השדרוגים האוטומטיים של הצמתים לא מונעת את השינוי הזה.
כדי לקבל פרטים על השינוי הספציפי הזה, חפשו את השורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים ובהתאם למדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכוני צמתים.
השבתה של צומתי GKE מוגנים
gcloud
כשמעדכנים את האשכול, מציינים את האפשרות --no-enable-shielded-nodes:
gcloud container clusters update CLUSTER_NAME \
--no-enable-shielded-nodes
המסוף
נכנסים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
בקטע Security, בשדה צומתי GKE מוגנים, לוחצים על edit עריכת צומתי GKE מוגנים.
מבטלים את הסימון בתיבה Enable Shielded GKE Nodes.
לוחצים על שמירת השינויים.
תקינות הצומת
אפשר גם להגדיר בדיקות שלמות של צמתים במאגרי צמתים כדי לספק הגנה משופרת לצמתים מפני 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.
המסוף
כדי להפעיל את האתחול המאובטח כשיוצרים מאגר צמתים:
נכנסים לדף 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.