במאמר הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (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 המוצפנים במערכת.

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

אילו נתונים מוצפנים באמצעות CMEK?
מפתחות CMEK מצפינים את סוגי נתוני הלקוחות הבאים שמאוחסנים באחסון קבוע:
- גיבויים: גיבויים מאפשרים לכם לשחזר את הנתונים לנקודת זמן מסוימת, וגם לייצא ולנתח אותם. גיבויים שימושיים גם להתאוששות מאסון, להעברת נתונים, לשיתוף נתונים ולתרחישי תאימות.
- שימור: Memorystore for Redis תומך בשימור של מסד נתונים של Redis (RDB), שמאפשר לכם לשמור תמונות מצב של הנתונים באחסון עמיד.
- מטא-נתונים שקשורים לתכונות אבטחה כמו
AUTHוהצפנה בזמן ההעברה. מידע נוסף זמין במאמרים מידע על אימות Redis ומידע על הצפנה בזמן העברה.
רכיבי CMEK
בקטעים הבאים מתוארים הדרישות וההתנהגויות של חשבונות השירות, המפתחות הקריפטוגרפיים, הגרסאות של המפתחות ומדיניות הארגון שמרכיבים את ארכיטקטורת ה-CMEK שלכם.
חשבונות שירות
כדי ליצור מופע עם הפעלה של CMEK, צריך להעניק את התפקיד roles/cloudkms.cryptoKeyEncrypterDecrypter לחשבון השירות של Memorystore for Redis בפורמט הבא:
service-PROJECT_NUMBER@cloud-redis.iam.gserviceaccount.com
ההרשאה הזו מאפשרת לחשבון השירות לבקש גישה למפתחות מ-Cloud KMS.
מקשים
ב-Cloud KMS, צריך ליצור אוסף מפתחות, ואז ליצור מפתח קריפטוגרפי שמשתמש באלגוריתם הצפנה סימטרי. כשיוצרים מכונת Memorystore for Redis, בוחרים את המפתח הזה כדי להצפין את המכונה. אתם יכולים ליצור פרויקט אחד למפתחות ולמכונות, או פרויקטים שונים לכל אחד מהם.
הצפנת CMEK זמינה בכל המיקומים של מכונות Memorystore for Redis. צריך ליצור את אוסף המפתחות ואת המפתח באותו אזור שבו רוצים ליצור את המכונה. מפתח לאזור גלובלי או לאזור שכולל מספר אזורים לא עובד. אם האזורים או המיקומים לא תואמים, הבקשה ליצירת המופע תיכשל.
למזהה המשאב של המפתח, CMEK משתמש בפורמט הבא:
projects/CMEK_ENABLED_PROJECT/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
מידע נוסף על איתור מזהי משאבים של מפתחות קיימים זמין במאמר קבלת מזהה משאב של Cloud KMS.
במסוף Google Cloud , בתיאור הכלי של סימן הקריאה האדום בדף Instances, מוצגות הודעות לגבי מקרים שבהם מופעלת השעיה של מכונה. אם מעבירים את העכבר מעל תיאור הכלי,
מופיע סטטוס No state. אחרי שהמפתח הופך לזמין, Memorystore for Redis מפעיל מחדש את המכונה באופן אוטומטי.
מפתחות חיצוניים
כחלק מאסטרטגיית ה-CMEK, אתם יכולים להשתמש במפתחות חיצוניים. כדי לעשות זאת, אפשר להשתמש ב-Cloud External Key Manager (Cloud EKM) כדי להצפין נתונים ב- Google Cloud באמצעות מפתחות חיצוניים שאתם מנהלים.
כשמשתמשים במפתח Cloud EKM, ל-Google אין שליטה בזמינות של המפתחות שמנוהלים באופן חיצוני. אם מפתח לא זמין כשיוצרים את המכונה, המכונה לא נוצרת ב-Memorystore for Redis. בנוסף, אם המפתח החיצוני לא יהיה זמין בשום שלב אחרי יצירת המכונה, המכונה של Memorystore for Redis תושעה עד שהגישה תוחזר.
למידע נוסף על שיקולים לגבי שימוש במפתחות חיצוניים, אפשר לעיין במאמר שיקולים.
גרסאות מפתח
ב-Cloud KMS, חומרי המפתחות הקריפטוגרפיים שבהם אתם משתמשים כדי להצפין ולפענח את הנתונים מאוחסנים בגרסת מפתח. מפתח יחיד יכול להכיל כמה גרסאות של מפתחות. בכל פעם שמבצעים רוטציה למפתח, נוצרת גרסת מפתח.
בקטעים הבאים מוסבר איך המופעים והנתונים המוגנים שלהם מתנהגים במהלך אירועים במחזור החיים של המפתחות, כמו השבתה, השמדה, הפעלה או שחזור של גרסאות מפתח. בקטעים האלה מוסבר גם על ההשפעה של החלפת מפתח Cloud KMS, יש הנחיות להצפנה מחדש של נתונים באופן ידני ופירוט של אופן הייבוא או הייצוא של נתונים למופע שמופעל בו CMEK.
השבתה או השמדה של גרסת מפתח CMEK
יכול להיות שיהיו מצבים שבהם תרצו להפוך נתונים שהוצפנו באמצעות CMEK לבלתי נגישים באופן קבוע, למשל כשאתם מתקנים דליפת נתונים. כדי להשיג השמדת נתונים ברמת ודאות גבוהה (שנקראת גם השמדה קריפטוגרפית), צריך להשמיד את גרסת המפתח. מידע נוסף על השמדת גרסאות מפתח זמין במאמר השמדה ושחזור של גרסאות מפתח.
כדי לוודא שלא תהיה גישה לנתונים במופע, צריך להשבית את הגרסה של המפתח הראשי. הפעולה הזו תשעה את המופע. בנוסף, אם מפתח CMEK שנמצא בשימוש מושבת או נמחק, המערכת של Memorystore for Redis משעה את המכונה. כולל כל גרסה ישנה יותר של המפתח שמוגדרת במופע.
כדי לבדוק אם המכונה שלכם ב-Memorystore for Redis הושעתה, אפשר להשתמש באחד מהממשקים הבאים:
- מסוףGoogle Cloud : בדף Instances, מופיע תיאור קצר עם סימן קריאה אדום לצד המופע. אם מעבירים את העכבר מעל תיאור הכלי, מופיע הסטטוס אין מצב.
- ה-CLI של gcloud: משתמשים בפקודה
gcloud redis instances describe. בודקים את השדהstate. אם המופע מושעה, לא מוצג בו הסטטוסREADYאוREPAIRING.
החלפת מפתח מוגן של Cloud KMS
אם מחליפים מפתח מוגן של Cloud KMS במפתח אחר או בגרסה חדשה של מפתח ראשי, השינוי הזה יחול ב-Memorystore for Redis רק על פעולות עתידיות.
החלפה של מפתח מוגן משפיעה על המשאבים שלכם בדרכים הבאות:
- גיבויים: Memorystore for Redis מייצא גיבויים ל-Cloud Storage. לכן, הגדרות ההצפנה של מאגר היעד (ולא ה-CMEK של המופע) קובעות איך הנתונים המיוצאים מוצפנים.
- התמדה: בפעם הבאה שהמופע יופעל מחדש או שיתרחש בו אירוע תחזוקה, ייעשה שימוש במפתח החדש.
- מטמון ראשי: להחלפת המפתח הזה אין השפעה. CMEK לא מצפין נתונים בזיכרון כי הנתונים האלה לא נחשבים לנתונים במנוחה.
הצפנה מחדש של נתונים שמוגנים באמצעות CMEK באופן ידני
Memorystore for Redis לא תומך בהצפנה מחדש של נתונים קיימים במנוחה לפי דרישה. אי אפשר להפעיל תהליך באופן ידני כדי להשתמש בגרסה חדשה של מפתח להצפנה מחדש של גיבויים קיימים או קבצים פעילים של נתונים קבועים. עם זאת, אפשר להשתמש בגרסת המפתח החדשה כדי להצפין נתונים חדשים שנכתבו.
ייבוא או ייצוא של נתונים במופע שמופעל בו CMEK
אם רוצים שהנתונים המיוצאים יישארו מוגנים על ידי CMEK, צריך להגדיר CMEK בקטגוריית היעד של Cloud Storage לפני שמייצאים אליה נתונים. אם הנתונים שלכם כבר מאוחסנים במופע עם 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 תלוי במכסה.