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

כברירת מחדל, כל הנתונים במצב מנוחה ב-Firestore במצב Datastore מוצפנים באמצעות ההצפנה שמוגדרת כברירת מחדל ב-Google. מצב Datastore מטפל בהצפנה הזו ומנהל אותה בשבילכם, בלי שתצטרכו לבצע פעולות נוספות.

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

בדף הזה מתואר CMEK במצב Datastore. מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, זמין במאמרי העזרה הבאים של Cloud KMS:

הוראות לביצוע משימות שקשורות ל-CMEK במצב Datastore מפורטות במאמר שימוש ב-CMEK.

תכונות

תמחור

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

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

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

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

מה מוגן באמצעות CMEK

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

  • נתונים במעבר או בזיכרון
  • מטא-נתונים של מסד נתונים

איך המערכת מטפלת במצב של מפתח לא זמין

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

אם המערכת מזהה שהמפתח לא זמין, כל הקריאות הבאות למסד הנתונים של Firestore, כולל קריאות, כתיבות ושאילתות, מחזירות שגיאת FAILED_PRECONDITION עם ההודעה The customer-managed encryption key required by the requested resource is not accessible, תוך 10 דקות.

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

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

מפתחות נחשבים ללא זמינים בכל מצב שבו נמנעת מ-Firestore באופן מכוון הגישה למפתח. למשל:

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

החזרה של מפתח לפעולה כוללת את הפעולות הבאות, בהתאם למצב:

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

שיקולים לגבי רוטציית מפתחות

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

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

שיקולים לגבי מפתחות חיצוניים

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

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

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

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

גיבוי ושחזור

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

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

מידע נוסף על גיבויים במצב Datastore זמין במאמר גיבוי ושחזור נתונים.

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

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

מידע נוסף על שחזור מסד נתונים במצב Datastore מגיבוי זמין במאמר שחזור נתונים מגיבוי של מסד נתונים. מידע נוסף על שחזור מסד נתונים במצב Datastore שמוגן באמצעות CMEK מגיבוי זמין במאמר שחזור מסד נתונים שמוגן באמצעות CMEK.

שכפל

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

  • שיבוט למסד נתונים עם CMEK עם מפתח חדש שצוין.
  • שיבוט למסד נתונים שאינו CMEK ומשתמש בהצפנת ברירת המחדל של Google.
  • (ברירת מחדל) שיבוט למסד נתונים שמשתמש באותה הצפנה כמו מסד הנתונים של המקור.

מידע נוסף על שיבוט מסד נתונים במצב Datastore זמין במאמר בנושא שיבוט מסד נתונים. מידע נוסף על שיבוט מסד נתונים במצב Datastore שמוגן באמצעות CMEK זמין במאמר בנושא שיבוט מסד נתונים שמוגן באמצעות CMEK.

מעקב אחר מפתחות

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

זמינות של מפתחות ו-CMEK

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

  • אפשר לשנות את ההגדרות של שחזור לנקודת זמן (PITR) במצב Datastore במסד נתונים שמופעלת בו הצפנת CMEK, גם אם המפתח לא זמין. הסיבה לכך היא שההגדרות של PITR הן מטא-נתונים של מסד הנתונים, שלא מוצפנים על ידי CMEK.
  • אפשר למחוק מסד נתונים עם הצפנה באמצעות CMEK שיש בו מפתחות לא זמינים.
  • כשיוצרים מסד נתונים עם הפעלה של CMEK, מפתחות מושבתים לא מופיעים ברשימת המפתחות הזמינים במסוף Google Cloud . אם תזינו ידנית מפתח מושבת, תהליך יצירת מסד הנתונים ייכשל עם השגיאה FAILED_PRECONDITION 400.

מגבלות

  • אי אפשר לשנות מפתח של מסד נתונים שמוגן באמצעות CMEK. אפשר לסובב, להפעיל ולהשבית מפתחות.
  • מסדי נתונים שמוגנים באמצעות CMEK תומכים בKey Visualizer רק עבור נתוני ישויות ומסמכים, ולא עבור נתוני אינדקס.
  • אי אפשר להפעיל CMEK במסדי נתונים קיימים. אפשר להפעיל CMEK רק במסדי נתונים חדשים, וצריך להפעיל אותו כשיוצרים את מסד הנתונים. כדי להעביר נתונים ממסד נתונים קיים שלא מוגן באמצעות CMEK למסד נתונים שמוגן באמצעות CMEK, צריך לייצא את הנתונים ואז לייבא אותם למסד נתונים חדש שמוגן באמצעות CMEK. אפשר גם לשחזר או לשכפל נתונים ממסד נתונים ללא CMEK למסד נתונים עם CMEK.
  • ‫Firestore תומך במספר מוגבל של מסדי נתונים שמוגנים באמצעות CMEK.
  • אנחנו לא תומכים בהגנה באמצעות CMEK בשילוב עם Cloud Functions (דור ראשון). אם רוצים להשתמש בהגנה של CMEK, צריך להשתמש בטריגרים של Firestore ב-Cloud Run Functions (דור שני).

איך נתונים יכולים לצאת ממסדי נתונים שמוגנים באמצעות CMEK

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

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

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