רוטציית מפתחות
רוטציית מפתחות היא פעולה של שינוי החומר הקריפטוגרפי הבסיסי שכלול במפתח להצפנת מפתחות הצפנה (KEK). היא יכולה להיות מופעלת אוטומטית כחלק מרוטציה מתוזמנת, או באופן ידני, בדרך כלל אחרי אירוע אבטחה שבו יכול להיות שהמפתחות נפרצו. רוטציה של מפתחות מחליפה רק את השדה היחיד במפתח שמכיל את נתוני המפתח הגולמיים להצפנה/לפענוח.
רוטציית מפתחות אוטומטית
AWS Key Management Service (KMS) תומך ברוטציה אוטומטית של מפתחות KMS. אם האפשרות הזו מופעלת, מערכת AWS יוצרת באופן אוטומטי חומר מפתח קריפטוגרפי חדש למפתח שלכם פעם בשנה. לא נדרשות פעולות ידניות.
אחרי רוטציית מפתחות, GKE ב-AWS מצפין כל סוד חדש באמצעות המפתח החדש. כל סוד שנוצר בעבר עדיין מפוענח באמצעות המפתח המקורי שלו. לכן, AWS שומרת את חומר המפתח הישן של CMK ללא הגבלת זמן, וכך מאפשרת לפענח DEK ישנים כשקוראים סודות ישנים.
כדי לראות אם מפתח KMS כולל רוטציה אוטומטית, מריצים את הפקודה הבאה:
aws kms get-key-rotation --key-id KMS_KEY_ID
מחליפים את KMS_KEY_ID במזהה המפתח שלכם ב-AWS KMS.
כדי להפעיל רוטציית מפתחות אוטומטית, מריצים את הפקודה הבאה:
aws kms enable-key-rotation --key-id KMS_KEY_ID
רוטציית מפתחות ידנית
בקטע הזה מוסבר איך להחליף באופן ידני את מפתחות ההגדרה של מישור הבקרה או של מאגר הצמתים.
מפתח להגדרת מישור הבקרה
כדי לבצע רוטציה ידנית של מפתח הגדרת מישור הבקרה:
איך יוצרים מפתח חדש ב-Cloud Key Management Service שומרים את הערך של ה-ARN של מפתח ה-KMS. תצטרכו אותו בהמשך.
מוודאים שלתפקיד ה-IAM שמשויך לאשכול יש הרשאות להצפנה ולפענוח באמצעות המפתח החדש.
משתמשים בפקודה
gcloud container aws clusters updateכדי לעדכן את מפתח ההצפנה.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --config-encryption-kms-key-arn=CONFIG_ENCRYPTION_KMS_KEY_ARNמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול -
GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה,us-west1 -
CONFIG_ENCRYPTION_KMS_KEY_ARN: שם ה-ARN של מפתח ה-KMS החדש
-
נפח הבסיס של מישור הבקרה
כדי לבצע רוטציה ידנית של מפתח נפח הבסיס של מישור הבקרה, פועלים לפי השלבים הבאים:
איך יוצרים מפתח חדש ב-Cloud Key Management Service שומרים את הערך של ה-ARN של מפתח ה-KMS. תצטרכו אותו בהמשך.
מוודאים שלתפקיד ה-IAM שמשויך לאשכול יש הרשאות להצפנה ולפענוח באמצעות המפתח החדש.
משתמשים בפקודה
gcloud container aws clusters updateכדי לעדכן את מפתח ההצפנה.gcloud container aws clusters update CLUSTER_NAME \ --location=GOOGLE_CLOUD_LOCATION \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARNמחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול -
GOOGLE_CLOUD_LOCATION: האזור הנתמך Google Cloud שמנהל את האשכול. לדוגמה,us-west1 -
ROOT_VOLUME_KMS_KEY_ARN: שם משאב Amazon (ARN) של מפתח AWS KMS להצפנת נפח הבסיס
-
מפתח ההגדרות האישיות של מאגר הצמתים
כדי לבצע רוטציה ידנית של המפתח של הגדרת מאגר הצמתים, פועלים לפי השלבים הבאים:
מוודאים שלתפקיד ה-IAM שמשויך לאשכול יש הרשאות להצפנה ולפענוח באמצעות המפתח החדש.
מעדכנים את הכינוי של KMS שנמצא בשימוש:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id CONFIG_ENCRYPTION_KMS_KEY_ARNמחליפים את מה שכתוב בשדות הבאים:
-
KEY_ALIAS: הכינוי של המפתח הקיים -
CONFIG_ENCRYPTION_KMS_KEY_ARN: שם ה-ARN של מפתח ה-KMS החדש
-
כדי לאלץ את האשכול להצפין מחדש את כל הסודות באשכול באמצעות מפתח ההצפנה החדש:
kubectl get secrets --all-namespaces -o json | \ kubectl annotate --overwrite -f - encryption-key-rotation-time=`date +"%Y%m%d-%H%M%S"`משביתים את מפתח AWS KMS הישן. מידע נוסף זמין במאמר הפעלה והשבתה של מפתחות.
נפחי הבסיס של מאגר הצמתים
כדי לסובב ידנית את המפתח של נפח הבסיס של מאגר הצמתים, מבצעים את השלבים הבאים:
מוודאים שלתפקיד ה-IAM שמשויך לאשכול יש הרשאות להצפנה ולפענוח באמצעות המפתח החדש.
מעדכנים את הכינוי של KMS שנמצא בשימוש:
aws kms update-alias --alias-name KEY_ALIAS \ --target-key-id ROOT_VOLUME_KMS_KEY_ARNמחליפים את מה שכתוב בשדות הבאים:
-
KEY_ALIAS: הכינוי של המפתח הקיים -
ROOT_ENCRYPTION_KMS_KEY_ARN: שם ה-ARN של מפתח ה-KMS החדש
-
מעדכנים את מאגר הצמתים:
gcloud container aws node-pools update NODE_POOL_NAME \ --root-volume-kms-key-arn=ROOT_VOLUME_KMS_KEY_ARNמחליפים את מה שכתוב בשדות הבאים:
-
NODE_POOL_NAME: שם מאגר הצמתים -
ROOT_VOLUME_KMS_KEY_ARN: שם משאב Amazon (ARN) של מפתח AWS KMS להצפנת נפח הבסיס
-
משביתים את מפתח AWS KMS הישן. מידע נוסף זמין במאמר הפעלה והשבתה של מפתחות.