הצפנת סודות בזמינות תמידית מאפשרת להצפין סודות באשכולות של Google Distributed Cloud לפני שהם נשמרים ב-etcd, בלי שירות ניהול מפתחות (KMS) חיצוני או יחסי תלות אחרים. אתם יכולים להפעיל את התכונה, למצוא איפה מפתחות ההצפנה מאוחסנים כדי לגבות אותם, להחליף מפתחות ולהשבית את ההצפנה. הצפנת סודות בזמינות תמידית זמינה לאשכולות מתקדמים בגרסאות 1.32 ואילך.
הפעלת הצפנה בזמינות תמידית של סודות
הצפנת סודות בזמינות תמידית פועלת על ידי יצירה אוטומטית של מפתח הצפנה שמשמש להצפנת סודות לפני שהם נשמרים במסד הנתונים etcd של אותו אשכול. הסודות מוצפנים באמצעות מפתח להצפנת נתונים (DEK) שנוצר בכל פעם שכותבים סוד. המפתח הזה להצפנת נתונים (DEK) משמש במצב AES-GCM להצפנה של אובייקט Secret. ה-DEK מוצפן באמצעות מפתח להצפנת מפתחות הצפנה (KEK). אלגוריתם ההצפנה הוא A256GCM (AES GCM באמצעות מפתח של 256 ביט).
גרסת המפתח היא מספר גרסה שמציין את המפתח שנמצא בשימוש כרגע.
אפשר להפעיל הצפנת סודות אחרי שכבר נוצר אשכול.
לאשכול האדמין:
עורכים את קובץ התצורה של אשכול האדמין כדי להוסיף את הקטע
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_CLUSTER_KUBECONFIGבנתיב של קובץ ה-kubeconfig של אשכול האדמין. -
ADMIN_CLUSTER_CONFIG_FILEבנתיב של קובץ ההגדרות של אשכול האדמין. -
USER_CONFIG_FILEבנתיב של קובץ התצורה של אשכול המשתמשים.
אפשר להשתמש בפקודות gkectl update שמופיעות בקטע הזה גם לכל עדכון אחר באשכול המתאים.
אחסון מפתחות
מפתחות ההצפנה של אשכול האדמין מאוחסנים בדיסק הנתונים של אשכול האדמין. הדיסק הזה מותקן במכונה הראשית של האדמין בכתובת /opt/data, ומפתחות ההצפנה נמצאים בכתובת /opt/data/gke-k8s-kms-plugin/generatedkeys/. כדי לשמור על הגישה לסודות המוצפנים שמשתמשים במפתח הזה, צריך לגבות את המפתחות האלה. כדאי להפעיל הצפנת VM/אחסון ב-hypervisor או אמצעים דומים כדי לוודא שהדיסקים של ה-VM במישור הבקרה מוגנים.
רוטציית מפתחות
כדי להחליף מפתח הצפנה קיים של אשכול, מגדילים את הערך של keyVersion בקובץ התצורה של אשכול האדמין או בקובץ התצורה של אשכול המשתמש, ומריצים את הפקודה המתאימה של gkectl update. הפעולה הזו יוצרת מפתח חדש שתואם למספר הגרסה החדש, מצפינה מחדש כל סוד ומוחקת באופן מאובטח את המפתח הישן. כל הסודות החדשים שנוצרים לאחר מכן מוצפנים באמצעות מפתח ההצפנה החדש.
השבתת ההצפנה התמידית של סודות
כדי להשבית את ההצפנה של סודות באשכול קיים, מוסיפים שדה disabled: true. לאחר מכן, מריצים את הפקודה gkectl update המתאימה. העדכון הזה מפענח כל סוד קיים ומאחסן כל סוד בטקסט פשוט. כל הסודות החדשים שנוצרים לאחר מכן נשמרים כטקסט פשוט.
secretsEncryption:
mode: GeneratedKey
generatedKey:
keyVersion: KEY_VERSION
disabled: true