בדף הזה מוסבר איך להשתמש בתכונה צומתי GKE מוגנים. צמתים מוגנים ב-GKE מספקים זהות ושלמות חזקות וניתנות לאימות של הצמתים, כדי לשפר את האבטחה של הצמתים ב-Google Kubernetes Engine (GKE).
באשכולות GKE Autopilot, התכונה צומתי GKE מוגנים מופעלת כברירת מחדל ואי אפשר לשנות את זה. באשכולות GKE Standard, התכונה צומתי GKE מוגנים מופעלת כברירת מחדל, אבל אפשר לשנות את ההגדרה הזו.
מידע על צומתי GKE מוגנים
צומתי GKE מוגנים מבוססים על מכונות וירטואליות מוגנות ב-Compute Engine. בלי צומתי GKE מוגנים, תוקף יכול לנצל נקודת חולשה ב-Pod כדי להעביר פרטי כניסה של bootstrap ולהתחזות לצמתים באשכול, וכך לקבל גישה לסודות של האשכול. כשמפעילים את התכונה צומתי GKE מוגנים, מישור הבקרה של GKE מאמת באופן קריפטוגרפי את הדברים הבאים:
- כל צומת באשכול הוא מכונה וירטואלית שפועלת במרכז הנתונים של Google.
- כל צומת הוא חלק מקבוצת מופעי מכונה מנוהלים (MIG) שהוקצתה לאשכול.
- ל-kubelet מוקצה אישור לצומת שבו הוא פועל.
כך מצטמצמת היכולת של תוקף להתחזות לצומת באשכול שלכם, גם אם הוא מצליח להוציא את פרטי הכניסה של הצומת. לפרטי הכניסה של האתחול, שנמצאים במטא-נתונים של הצומת (TPM_BOOTSTRAP_KEY), יש אפשרות ליצור רק בקשות לחתימה על אישורים. אישור האישורים האלה לא יתבצע באופן אוטומטי על ידי מישור הבקרה, והם לא יהפכו לאישורים של צומת עובד אלא אם יתקיימו התנאים שצוינו קודם ובקשת חתימה על אישור (CSR) תכלול אישור מ-vTPM של הצומת.
צמתים של מישור הבקרה של אשכול GKE תמיד משתמשים בצומתי GKE מוגנים, גם אם משביתים את התכונה באשכול. הפעלה או השבתה של צומתי GKE מוגנים משפיעה רק על השימוש בתכונה בצומתי העובדים שמריצים את עומסי העבודה.
תמחור
אין עלות נוספת להפעלת צומתי GKE מוגנים. עם זאת, צומתי GKE מוגנים יוצרים כ-0.5KB יותר של יומנים בהפעלה בהשוואה לצמתים רגילים. פרטים נוספים מופיעים בדף התמחור של Cloud Logging.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את הפעולות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- אם רוצים להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז להפעיל את ה-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 .
בחלונית הניווט, בקטע Cluster, לוחצים על Security.
מסמנים את תיבת הסימון הפעלת צומתי GKE מוגנים.
מגדירים את האשכול לפי הצורך.
לוחצים על יצירה.
פרטים נוספים על יצירת אשכולות זמינים במאמר בנושא יצירת אשכול.
הפעלת צומתי GKE מוגנים באשכול קיים
אפשר להפעיל צומתי GKE מוגנים באשכול קיים באמצעות Google Cloud CLI או מסוף Google Cloud .
איך GKE מאפשר צומתי GKE מוגנים
אחרי שמפעילים צומתי GKE מוגנים, צומתי העובדים נוצרים מחדש כ-VM מוגנים. הצמתים באשכול נוצרים מחדש באופן הדרגתי כדי לצמצם את זמן ההשבתה.
אחרי שמפעילים את צומתי GKE מוגנים, GKE מעדכן את האשכול באמצעות השלבים הבאים:
- מערכת GKE יוצרת מחדש את מישור הבקרה באופן מיידי, בלי להתחשב בזמינות לצורך תחזוקה.
- GKE יוצר מחדש את צומתי ה-worker כמכונות וירטואליות מוגנות, תוך התחשבות בזמינות לתחזוקה. ב-GKE נעשה שימוש בשדרוגים מצטברים כדי לעדכן כל אחד ממאגרי הצמתים. זה תלוי בזמינות המשאבים. השבתה של שדרוגים אוטומטיים של צמתים לא מונעת את השינוי הזה.
פרטים על השינוי הספציפי הזה מופיעים בשורה המתאימה בטבלה שינויים ידניים שיוצרים מחדש את הצמתים באמצעות אסטרטגיית שדרוג צמתים בהתאם למדיניות התחזוקה. מידע נוסף על עדכוני צמתים זמין במאמר תכנון שיבושים בעדכון צמתים.
הפעלת צומתי GKE מוגנים
gcloud
כשמעדכנים את האשכול, מציינים את האפשרות --enable-shielded-nodes:
gcloud container clusters update CLUSTER_NAME \
--enable-shielded-nodes
המסוף
עוברים לדף Google Kubernetes Engine במסוף Google Cloud .
לוחצים על השם של האשכול שרוצים לשנות.
בקטע אבטחה, בשדה צומתי GKE מוגנים, לוחצים על edit עריכת צומתי GKE מוגנים.
מסמנים את תיבת הסימון הפעלת צומתי 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 מוגנים) מופעלת.
אפשר גם לעקוב אחרי השלמות של מכונות וירטואליות מוגנות בבסיס הצמתים. ההליך מפורט במאמר מעקב אחר התקינות במכונות וירטואליות מוגנות.
השבתה של צומתי 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 מוגנים, Secure Boot ומעקב תקינות הן תכונות עצמאיות שאפשר להפעיל או להשבית כל אחת מהן בנפרד.
הפעלה מאובטחת
הפעלה מאובטחת היא הגדרה של מאגר צמתים שמאמתת את רכיבי האתחול של המכונות הווירטואליות של הצמתים, כמו הליבה ותוכנת האתחול, במהלך תהליך האתחול. האפשרות 'אתחול מאובטח' מושבתת כברירת מחדל במאגרי צמתים.
לפני שמפעילים את האתחול המאובטח במאגרי הצמתים, חשוב לקחת בחשבון את הנקודות הבאות:
- הפעלת אתחול מאובטח בצמתי Ubuntu חוסמת טעינה של מודולים לא חתומים של ליבת צד שלישי בצמתים האלה.
- להפעלת אתחול מאובטח בצמתים של מערכת הפעלה שמותאמת לקונטיינרים אין השפעה על טעינת מודול ליבה, כי תמונות הצמתים של מערכת ההפעלה שמותאמת לקונטיינרים שולטות ביכולת לטעון מודולי ליבה של צד שלישי בנפרד מהאתחול המאובטח. אם רוצים לשנות את ההגדרה הזו בצמתים של מערכת הפעלה שמותאמת לקונטיינרים, צריך להגדיר טעינה מאובטחת של מודול ליבת המערכת.
כדי להפעיל את האתחול המאובטח, משתמשים ב-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 (הפעלת מעקב אחר תקינות).