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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • גיבויים: גיבויים מאפשרים לכם לשחזר את הנתונים לנקודת זמן מסוימת, ולייצא ולנתח נתונים. גיבויים שימושיים גם לתרחישים של תוכנית התאוששות מאסון (DR), העברת נתונים, שיתוף נתונים ותאימות.
  • עמידות: ב-Memorystore for Valkey יש תמיכה בשני סוגים של עמידות:
    • שימור ב-RDB: שמירת תמונות מצב של הנתונים באחסון עמיד.
    • שימור נתונים בפורמט AOF: אחסון נתונים באופן עמיד על ידי תיעוד כל פקודת כתיבה בקובץ יומן שנקרא קובץ להוספה בלבד (AOF). אם מתרחשת כשל במערכת או הפעלה מחדש, השרת מפעיל מחדש את הפקודות בקובץ ה-AOF באופן רציף כדי לשחזר את הנתונים.

רכיבי CMEK

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

חשבונות שירות

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

service-PROJECT_NUMBER@gcp-sa-memorystore.iam.gserviceaccount.com

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

מקשים

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

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

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

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

מידע נוסף על איתור מזהי משאבים של מפתחות קיימים זמין במאמר קבלת מזהה משאב של Cloud KMS.

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

כחלק מאסטרטגיית ה-CMEK, אתם יכולים להשתמש במפתחות חיצוניים. כדי לעשות זאת, אפשר להשתמש ב-Cloud External Key Manager (Cloud EKM) כדי להצפין נתונים ב- Google Cloud באמצעות מפתחות חיצוניים שאתם מנהלים.

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

גרסאות מפתח

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

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

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

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

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

גיבויים

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

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

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

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

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

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

ביטול הגישה למפתח Cloud KMS

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

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

רוטציה של הגרסה הראשית של מפתח ה-CMEK

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

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

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

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

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

גיבויים

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

התמדה

כדי לחייב את המופע להשתמש במפתח חדש של Cloud KMS, אפשר להריץ תחזוקה מדומה במופע. אחרי שתסיימו את הפעולה הזו, תוכלו להשתמש ב-Memorystore for Valkey כדי לכתוב נתוני התמדה באמצעות הגרסה המעודכנת של המפתח הראשי.

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

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

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

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

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

אם מפעילים או משחזרים את גרסת המפתח הראשית של מפתח CMEK, התנאים הבאים חלים על גיבויים ועל נתונים קבועים:

  • תוכלו ליצור שוב גיבויים לפי דרישה וגיבויים אוטומטיים.
  • מערכת Memorystore for Valkey מבצעת עדכון שדומה לזה שמשמש לתחזוקה, ומפעילה מחדש את ההתמדה.

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

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

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

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

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

תמחור

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

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

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

מגבלות

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

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

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