מידע על מפתחות הצפנה בניהול הלקוח (CMEK)

במאמר הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud Key Management Service ‏ (Cloud KMS) עבור מופעי Memorystore for Redis. במסמך מפורט גם אילו נתונים מוצפנים באחסון קבוע ואיך המופעים מתנהגים במהלך אירועים במחזור החיים של המפתח.

ב-CMEK אפשר לשלוט במפתחות ההצפנה שמגנים על הנתונים המאוחסנים. ניהול המפתחות שלכם ב-Cloud KMS מאפשר לכם לקבל שליטה רבה יותר על הגישה למפתחות, על הרוטציה שלהם ועל השימוש בהם, וכך לעמוד בדרישות מחמירות של תאימות ותקנות.

הטמעה של CMEK מספקת שכבת אבטחה נוספת ושליטה בנתונים הקבועים, כמו גיבויים וקבצים קבועים. אפשר להפעיל CMEK רק במופעים חדשים. אי אפשר להחיל CMEK על מופעים קיימים.

למי כדאי להשתמש ב-CMEK?

מפתחות CMEK מיועדים לארגונים שמאוחסנים בהם נתונים רגישים או נתונים בפיקוח, ונדרשת שליטה במפתחות ההצפנה שלהם. מידע נוסף על השימוש ב-CMEK להצפנת הנתונים האלה זמין במאמר האם כדאי להשתמש ב-CMEK.

הצפנה בניהול הלקוח

בעזרת CMEK תוכלו להשתמש במפתחות קריפטוגרפיים כדי להגן על נתונים שמאוחסנים במופעים. כדי להצפין את הנתונים האלה, Memorystore for Redis משתמש במפתחות להצפנת נתונים (DEK) בניהול Google ובמפתחות להצפנת מפתחות (KEK) בניהול הלקוח.

אפשר להשתמש ברמות ההצפנה הבאות:

  • הצפנת DEK: מפתחות DEK מצפינים נתונים ב-Memorystore for Redis.
  • הצפנת KEK: מפתחות KEK מצפינים מפתחות DEK.

ב-Memorystore for Redis נעשה שימוש במפתחות KEK להצפנה של מפתחות DEK, ובמפתחות DEK להצפנה של הנתונים המאוחסנים. אם אתם משתמשים ב-CMEK, אתם יכולים לנהל את מפתחות ה-KEK שמצפינים את מפתחות ה-DEK במופע שלכם.

בתרשים הבא מוצג אופן השימוש ב-CMEK להצפנת נתונים במופע. הנתונים שמועלים לתשתית האחסון של Google מחולקים למקטעים, וכל מקטע מוצפן באמצעות מפתח DEK משלו. ‫Cloud KMS מספק את ה-KEK להצפנת ה-DEK, ותשתית האחסון של Google מפיצה את מקטעי הנתונים המוצפנים ואת ה-DEK המוצפנים במערכת.

הנתונים מועלים לתשתית האחסון של Google ומחולקים למקטעים. כל נתח מוצפן באמצעות מפתח הצפנה משלו. לאחר מכן, מפתחות ה-DEK מוצפנים באמצעות מפתח KEK שמאוחזר מ-Cloud KMS. המקטעים המוצפנים והמפתחות המוצפנים (DEK) מפוזרים בתשתית האחסון.

הדיאגרמה הבאה מציגה כיצד Memorystore for Redis מפענח נתונים שמוצפנים באמצעות CMEK. כדי לגשת לנתונים המוצפנים האלה, שירות Memorystore for Redis שולח בקשה ל-Cloud KMS, שמנהל את מפתח ה-KEK, כדי לפענח את מפתח ה-DEK. לאחר מכן, Cloud KMS מחזיר את מפתח ה-DEK המפוענח, והמופע משתמש בו כדי לפענח את הנתונים המאוחסנים.

מקטע נתונים מוצפן באמצעות DEK ומאוחסן עם ה-DEK המוצפן. בקשה לפענוח ה-DEK נשלחת ל-Cloud KMS, שבו מאוחסן ה-KEK. ‫Cloud KMS מחזיר את מפתח ה-DEK המפוענח.

מתי Memorystore פועל עם CMEK?

פעולה תיאור
יצירה של מכונה כשיוצרים מכונה, מגדירים אותה לשימוש ב-CMEK.
עדכון מכונה במהלך עדכונים למכונה שמופעלת בה הצפנה לפי מפתחות בניהול הלקוח (CMEK),‏ Memorystore for Redis בודק את ה-CMEK.

אילו נתונים מוצפנים באמצעות CMEK?

מפתחות CMEK מצפינים את סוגי הנתונים הבאים:

מידע על חשבונות שירות

כשיוצרים מכונה עם CMEK, צריך להעניק את התפקיד cloudkms.cryptoKeyEncrypterDecrypter לחשבון השירות של Memorystore for Redis בפורמט הבא:

  service-PROJECT_NUMBER@cloud-redis.
  

ההרשאה הזו מאפשרת לחשבון השירות לבקש גישה למפתחות מ-Cloud KMS.

הוראות למתן ההרשאה הזו לחשבון השירות מופיעות במאמר מתן גישה לחשבון השירות של Memorystore for Redis למפתח.

מידע על מפתחות

ב-Cloud KMS, צריך ליצור אוסף מפתחות עם מפתח קריפטוגרפי שמשתמש באלגוריתם הצפנה סימטרי. כשיוצרים מכונת Memorystore for Redis, בוחרים את המפתח הזה כדי להצפין את המכונה. אתם יכולים ליצור פרויקט אחד גם למפתחות וגם למופעים, או פרויקטים שונים לכל אחד מהם.

הצפנת CMEK זמינה בכל המיקומים של מכונות Memorystore for Redis. צריך ליצור את אוסף המפתחות ואת המפתח באותו אזור שבו רוצים ליצור את המופע. מפתח לאזור גלובלי או לאזור שכולל מספר אזורים לא יעבוד. אם האזורים או המיקומים לא תואמים, הבקשה ליצירת המופע תיכשל.

מפתח ה-CMEK משתמש בפורמט הבא למזהה המשאב של המפתח:

projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME

אם ל-Memorystore for Redis אין גישה לאף גרסת מפתח שנמצאת בשימוש (לדוגמה, אם משביתים את כל גרסאות המפתח), המערכת משביתה את המכונה של Memorystore for Redis. במסוף Google Cloud , כשמוצגת השעיה של מופע, מופיע תיאור קצר של סימן קריאה אדום בדף Instances. אם מעבירים את העכבר מעל תיאור הכלי, מופיע סטטוס No state. אחרי שהמפתח הופך לזמין, Memorystore for Redis מפעיל מחדש את המכונה באופן אוטומטי.

מפתחות חיצוניים

אתם יכולים להשתמש ב-Cloud External Key Manager‏ (Cloud EKM) כדי להצפין נתונים ב-Google Cloud באמצעות מפתחות חיצוניים שאתם מנהלים.

כשמשתמשים במפתח Cloud EKM, ל-Google אין שליטה על הזמינות של המפתח שמנוהל חיצונית. אם המפתח לא זמין כשיוצרים את המופע, המופע לא נוצר.

מידע נוסף על שיקולים לשימוש במפתחות חיצוניים זמין במאמר בנושא Cloud External Key Manager.

איך אפשר להפוך נתונים מוצפנים באמצעות CMEK לבלתי נגישים באופן קבוע?

יכול להיות שיהיו מצבים שבהם תרצו להפוך נתונים שהוצפנו באמצעות CMEK לבלתי נגישים באופן קבוע. כדי לעשות את זה, משמידים את גרסת המפתח. מידע נוסף על השמדה של גרסאות המפתח זמין במאמר השמדה ושחזור של גרסאות מפתח.

איך מייבאים או מייצאים נתונים במופע שמופעל בו CMEK?

אם אתם רוצים שהנתונים יישארו מוצפנים באמצעות CMEK כשאתם מייצאים נתונים, אתם צריכים להגדיר CMEK בקטגוריה של Cloud Storage לפני שאתם מייצאים אליה נתונים.

אם הנתונים שלכם מאוחסנים במופע שמופעלת בו הצפנת CMEK, לא חלות דרישות או הגבלות מיוחדות על ייבוא נתונים למופע חדש.

התנהגות של גרסת מפתח CMEK

בקטע הזה מוסבר מה קורה כשמשביתים, משמידים, מבצעים רוטציה, מפעילים ומשחזרים גרסה של מפתח.

השבתה או השמדה של גרסת מפתח CMEK

אם רוצים לוודא שלא תהיה גישה לנתונים במופע, צריך להשבית את הגרסה של המפתח הראשי. הפעולה הזו תכבה את המופע. בנוסף, אם מנטרלים או משמידים מפתח CMEK שנמצא בשימוש, מערכת Memorystore for Redis סוגרת את המופע. הפעולה הזו כוללת כל גרסה ישנה של מפתח שמופעלת במופע.

כדי לבדוק אם המכונה שלכם ב-Memorystore for Redis מושעית, אפשר להשתמש באחד מהממשקים הבאים:

  • מסוףGoogle Cloud : בדף Instances, מופיע תיאור קצר עם סימן קריאה אדום ליד המופע. אם מעבירים את העכבר מעל תיאור הכלי, מופיע הסטטוס No state.
  • ה-CLI של gcloud: משתמשים בפקודה gcloud redis instances describe. מוודאים שלא מופיע state: READY, state: REPAIRING או מצב אחר במטא-נתונים של המופע.

הצפנה מחדש של נתונים שמוגנים באמצעות CMEK באופן ידני

‫Memorystore for Redis לא תומך בהצפנה מחדש של נתונים קיימים במצב מנוחה לפי דרישה. אי אפשר להפעיל תהליך באופן ידני כדי להשתמש בגרסה חדשה של מפתח להצפנה מחדש של גיבויים קיימים או קבצים פעילים של נתונים קבועים. עם זאת, אפשר להשתמש בגרסת המפתח החדשה כדי להצפין נתונים חדשים שנכתבו.

החלפה של מפתח KMS מוגן

אם מחליפים מפתח KMS מוגן במפתח KMS אחר או בגרסה חדשה של מפתח ראשי, השינוי הזה יחול ב-Memorystore for Redis רק על פעולות עתידיות.

להחלפת מפתח KMS מוגן יש השפעה על המשאבים שלכם בדרכים הבאות:

  • גיבויים: Memorystore for Redis מייצא גיבויים לדליים ב-Cloud Storage. מפתח ההצפנה של Cloud Storage שולט במפתח שמשמש להצפנת הנתונים.
  • התמדה: בפעם הבאה שהמופע יופעל מחדש או שיתרחש בו אירוע תחזוקה, ייעשה שימוש במפתח ה-KMS החדש.
  • מטמון ראשי: החלפת המפתח הזה לא משפיעה. הצפנה באמצעות CMEK לא חלה על נתונים בזיכרון, כי הנתונים האלה לא נחשבים לנתונים במנוחה.

הפעלה או שחזור של גרסת מפתח CMEK ראשית

אם מפעילים או משחזרים את הגרסה של המפתח הראשי, המכונה כבר לא מוסתרת ב-Memorystore for Redis.

מגבלות שקשורות למדיניות הארגון

‫Memorystore for Redis תומך באילוצים של מדיניות הארגון לגבי CMEK. באמצעות האילוצים האלה, אתם יכולים לאכוף את ההגנה באמצעות CMEK על המכונות הווירטואליות שלכם ולהגביל את מפתחות Cloud KMS שבהם אתם יכולים להשתמש להגנה הזו.

אפשר להגדיר את אילוצי מדיניות הארגון הבאים:

  • constraints/gcp.restrictNonCmekServices: משתמשים באילוץ הזה כדי לאכוף הגנה באמצעות CMEK על המקרים שלכם. אם Memorystore for Redis API מופיע ברשימת השירותים של האילוץ Deny, לא תוכלו ליצור מופעים שלא מוגנים באמצעות CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects: משתמשים באילוץ הזה כדי להגביל את מפתחות Cloud KMS שאפשר להשתמש בהם להגנה באמצעות CMEK. אם מגדירים את האילוץ הזה, המכונות שמשתמשות בהצפנת CMEK חייבות להשתמש במפתח מפרויקט, מתיקייה או מארגון מורשים.

מכיוון של-Memorystore for Redis ול-Memorystore for Redis Cluster יש נקודת קצה משותפת (redis.googleapis.com), אי אפשר לאכוף CMEK למכונות בנפרד מאשכולות ב-Memorystore for Redis Cluster.

מידע נוסף על אילוצים של מדיניות הארגון שקשורים ל-CMEK ומנוהלים על ידי Google עבור Memorystore for Redis זמין במאמר בנושא אילוצים של מדיניות הארגון.

תמחור

החיוב על מכונה עם CMEK ב-Memorystore for Redis זהה לחיוב על כל מכונה אחרת, ואין עלויות נוספות. מידע נוסף מופיע במאמר בנושא תמחור של Memorystore for Redis.

משתמשים ב-Cloud KMS API כדי לנהל את ה-CMEK. כשיוצרים מופע עם CMEK, ‏ Memorystore משתמש במפתח באופן תקופתי כדי להצפין נתונים.

תחויבו על ידי Cloud KMS בעלות המפתח ועל פעולות ההצפנה והפענוח כש-Memorystore for Redis משתמש במפתח. מידע נוסף זמין במאמר תמחור של Cloud KMS.

מגבלות

ההגבלות הבאות חלות כשמשתמשים ב-CMEK עם Memorystore for Redis:

  • אי אפשר להפעיל CMEK במכונה קיימת.
  • המפתח, אוסף המפתחות והמופע צריכים להיות באותו אזור.
  • חובה להשתמש באלגוריתם הצפנה סימטרי בשביל המפתח.
  • קצב ההצפנה והפענוח של Cloud KMS תלוי במכסה.

המאמרים הבאים