במאמר הזה מוסבר איך להשתמש במפתחות הצפנה בניהול הלקוח (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 מצפינים את סוגי נתוני הלקוחות הבאים שמאוחסנים באחסון קבוע:
- גיבויים: גיבויים מאפשרים לכם לשחזר את הנתונים לנקודת זמן מסוימת, וגם לייצא ולנתח אותם. גיבויים שימושיים גם לתרחישים של תוכנית התאוששות מאסון (DR), העברת נתונים, שיתוף נתונים ותאימות.
- שימור: 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 תלוי במכסה.