מפתחות הצפנה בניהול הלקוח (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 באמצעות Cloud Firestore מופיעות במאמר שימוש ב-CMEK.

תכונות

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

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

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

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

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

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

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

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

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

אם במסד הנתונים יש כללי מדיניות של אורך חיים (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 תומכים בKey Visualizer רק עבור נתוני ישויות ומסמכים, ולא עבור נתוני אינדקס.
  • אי אפשר להפעיל CMEK במסדי נתונים קיימים. אפשר להפעיל CMEK רק במסדי נתונים חדשים, וצריך להפעיל אותו כשיוצרים את מסד הנתונים. כדי להעביר נתונים ממסד נתונים קיים שלא מוגן באמצעות CMEK למסד נתונים שמוגן באמצעות CMEK, צריך לייצא את הנתונים ואז לייבא אותם למסד נתונים חדש שמוגן באמצעות CMEK. אפשר גם לשחזר נתונים ממסד נתונים שלא מוגדר בו CMEK למסד נתונים שמוגדר בו CMEK.
  • Cloud Firestore תומך במספר מוגבל של מסדי נתונים שמוגנים באמצעות CMEK.
  • אנחנו לא תומכים בהגנה באמצעות CMEK בשילוב עם Cloud Functions (דור ראשון). אם רוצים להשתמש בהגנה של CMEK, צריך להשתמש בפונקציות של Cloud Run Firestore Triggers (דור שני).

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