גרסה 1.10 של Google Distributed Cloud תומכת בהצפנת סודות ללא צורך ב-KMS (Key Management Service) חיצוני או בתלות אחרת.
שימו לב למגבלה הבאה בנוגע לאשכולות מתקדמים:
- גרסה 1.31: הצפנת סודות בזמינות תמידית לא נתמכת באשכולות מתקדמים.
- גרסה 1.32 ומעלה: יש תמיכה בהצפנה תמידית באשכולות מתקדמים.
הפעלת הצפנה של סודות בזמינות תמידית
הצפנת סודות שפועלת תמיד מתבצעת על ידי יצירה אוטומטית של מפתח הצפנה שמשמש להצפנת סודות לפני שהם מאוחסנים במסד הנתונים etcd של האשכול. הסודות מוצפנים באמצעות מפתח להצפנת נתונים (DEK) שנוצר לכל פעולת כתיבה של סוד. המפתח הזה להצפנת נתונים (DEK) משמש במצב AES-GCM להצפנה של אובייקט Secret. מפתח ה-DEK מוצפן באמצעות מפתח להצפנת מפתחות הצפנה (KEK). אלגוריתם ההצפנה הוא A256GCM (AES GCM באמצעות מפתח 256-bit).
גרסת המפתח היא מספר גרסה שמציין את המפתח שנמצא בשימוש כרגע.
אפשר להפעיל הצפנה של סודות גם אחרי שכבר נוצר אשכול.
עבור אשכול האדמין:
עורכים את קובץ התצורה של אשכול האדמין כדי להוסיף את הקטע
secretsEncryption.מריצים את הפקודה
gkectl update.gkectl update admin --config ADMIN_CLUSTER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
עבור אשכול משתמשים:
עורכים את קובץ התצורה של אשכול המשתמשים כדי להוסיף את הקטע
secretsEncryption.מריצים את הפקודה
gkectl update.gkectl update cluster --config USER_CONFIG_FILE --kubeconfig ADMIN_CLUSTER_KUBECONFIG
מחליפים את מה שכתוב בשדות הבאים:
-
ADMIN_KUBECONFIGבנתיב לקובץ kubeconfig של אשכול האדמין. ADMIN_CLUSTER_CONFIGעם הנתיב לקובץ התצורה של אשכול האדמין.-
USER_CLUSTER_CONFIGעם הנתיב לקובץ התצורה של אשכול המשתמשים.
אפשר להשתמש בפקודות gkectl update שמופיעות בקטע הזה גם לעדכונים אחרים של האשכול המתאים.
אחסון מפתחות
מפתחות ההצפנה של אשכול הניהול מאוחסנים בדיסק הנתונים של אשכול הניהול. הדיסק הזה מותקן במכונת האדמין הראשית בנתיב /opt/data, ומפתחות ההצפנה נמצאים בנתיב /opt/data/gke-k8s-kms-plugin/generatedkeys/. חובה לגבות את המפתחות האלה כדי לשמור על הגישה לסודות המוצפנים שמשמשים את המפתח. כדי להבטיח שהדיסקים של מכונות ה-VM במישור הבקרה יהיו מוגנים, מומלץ להפעיל הצפנה של מכונות ה-VM או של האחסון ב-hypervisor או אמצעים דומים.
רוטציית מפתחות
כדי להחליף מפתח הצפנה קיים של אשכול, מגדילים את הערך של keyVersion בקובץ התצורה של אשכול האדמין או בקובץ התצורה של אשכול המשתמש המתאים, ומריצים את הפקודה המתאימה gkectl update. כך נוצר מפתח חדש שתואם למספר הגרסה החדש, כל סוד מוצפן מחדש והמפתח הישן נמחק בצורה מאובטחת. כל הסודות החדשים שנוצרים לאחר מכן מוצפנים באמצעות מפתח ההצפנה החדש.
השבתת ההצפנה התמידית של סודות
כדי להשבית את ההצפנה של סודות באשכול קיים, מוסיפים שדה disabled: true. לאחר מכן, מריצים את הפקודה המתאימה gkectl update. במהלך העדכון, כל סוד קיים מפוענח ונשמר כטקסט רגיל. כל הסודות החדשים שנוצרים לאחר מכן מאוחסנים כטקסט רגיל.
secretsEncryption:
mode: GeneratedKey
generatedKey:
keyVersion: KEY_VERSION
disabled: true