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

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

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

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

במאמר שימוש ב-CMEK מוסבר איך מבצעים משימות שקשורות ל-CMEK באמצעות Cloud Firestore.

תכונות

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

תמחור

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

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

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

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

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

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

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

איך מטפלים בסטטוס 'לא זמין' של מפתח

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

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

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

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

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

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

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

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

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

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

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

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

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

אם מפתח שמנוהל באופן חיצוני לא זמין, Cloud Firestore ימשיך לתמוך בפעולות מלאות במסד הנתונים על בסיס 'לפי יכולתנו' למשך שעה אחת.

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

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

גיבוי ושחזור

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

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

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

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

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

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

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

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

CMEK וזמינות המפתחות

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

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

מגבלות

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

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