מפתחות הצפנה בניהול הלקוח (CMEK)
כברירת מחדל, כל הנתונים במצב מנוחה ב-Firestore מוצפנים באמצעות ההצפנה שמוגדרת כברירת מחדל ב-Google. Firestore מטפל בהצפנה הזו ומנהל אותה בשבילכם בלי שתצטרכו לבצע פעולות נוספות.
אם יש לכם דרישות תאימות או רגולציה ספציפיות שקשורות למפתחות שמגנים על הנתונים שלכם, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) עבור Firestore. במקום ש-Google תנהל את מפתחות ההצפנה שמגנים על הנתונים שלכם, מסד הנתונים של Firestore מוגן באמצעות מפתח שאתם שולטים בו ומנהלים אותו ב-Cloud Key Management Service (Cloud KMS).
בדף הזה מתואר CMEK ל-Firestore. מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, מופיע במסמכי התיעוד הבאים של Cloud KMS:
הוראות לביצוע משימות שקשורות ל-CMEK ב-Firestore זמינות במאמר שימוש ב-CMEK.
תכונות
- שליטה בנתונים: בעזרת CMEK אפשר לנהל את מפתח ה-KMS. אתם יכולים לבצע רוטציה של המפתח שמשמש להצפנת הנתונים במנוחה במסד הנתונים שלכם ב-Firestore, להשבית אותו ולהשמיד אותו.
- ביצועים: CMEK לא משפיע על הסכם רמת השירות (SLA) של Firestore.
- יכולת ביקורת: אם מפעילים רישום ביומן הביקורת של Cloud KMS, כל הפעולות שמתבצעות במפתח נרשמות ביומן וניתנות לצפייה ב-Cloud Logging.
- אילוצים על מדיניות הארגון: אתם יכולים להשתמש באילוצים על מדיניות הארגון ל-CMEK כדי לציין דרישות תאימות להצפנה של מסדי נתונים של Firestore בארגון שלכם.
תמחור
ב-Cloud KMS יש עלויות על המפתח ועל כל הפעולות הקריפטוגרפיות שמבוצעות באמצעות המפתח הזה. מידע נוסף זמין במאמר בנושא תמחור Cloud KMS.
תחויבו בעלויות הפעולה כש-Firestore יבקש ממפתח Cloud KMS לבצע פעולת הצפנה או פענוח. פעולת ההצפנה/הפענוח באמצעות מפתח בניהול הלקוח מתבצעת כל 5 דקות ולא מסונכרנת עם בקשות למסד הנתונים. העלויות בדרך כלל נמוכות, בהתחשב במספר הצפוי של פעולות קריפטוגרפיות שנוצרות על ידי Firestore. העלויות של יומני הביקורת של Cloud הן הוצאה נוספת, אבל בדרך כלל הן נמוכות, בהתחשב במספר הצפוי של פעולות ההצפנה.
אין עלויות נוספות ל-Firestore על שימוש במסד נתונים שמוגן באמצעות CMEK, והתמחור של Firestore ממשיך לחול.
אם מבטלים את המפתח למסד נתונים, עלות האחסון תחויב על סמך הגודל של היום האחרון שבו המפתח היה זמין. תמשיכו לשלם על אחסון בנפח הזה של מסד הנתונים עד שהוא יימחק או עד שהמפתח יהיה זמין שוב.
מה מוגן באמצעות CMEK
כשיוצרים מסד נתונים ב-Firestore שמוגן באמצעות 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 באופן מכוון הגישה למפתח. למשל:
- השבתה או השמדה של גרסת המפתח שנמצאת בשימוש. חשוב להיזהר כשמשמידים גרסת מפתח, כי הפעולה הזו עלולה לגרום לאובדן נתונים שלא ניתן לשחזור.
- הסרת ההרשאה לגשת למפתח מחשבון השירות של Firestore.
אם המפתח מוחזר, פעולת הסקר מזהה שהמפתח זמין שוב. הגישה מופעלת מחדש, בדרך כלל תוך דקות, אבל במקרים נדירים יכול להיות שיעברו כמה שעות. חשוב לזכור שחלק מהפעולות על מפתחות Cloud KMS, כמו השבתה או השמדה של מפתח, יכולות להימשך עד 3 שעות. מערכת Firestore לא מזהה שינויים עד שהם נכנסים לתוקף ב-Cloud KMS.
החזרה של מפתח לפעולה כוללת את הפעולות הבאות, בהתאם למצב:
- הפעלה מחדש של גרסת מפתח שהושבתה.
- שחזור של גרסת מפתח שהושמדה. לפני שגרסת מפתח מושמדת באופן סופי, היא מתוזמנת להשמדה. אפשר לשחזר מפתח רק במהלך התקופה שבה גרסת מפתח מתוזמנת להשמדה. אי אפשר לשחזר מפתח שכבר הושמד באופן סופי.
- הענקת הרשאה מחדש לסוכן השירות של Firestore לגשת למפתח.
שיקולים לגבי רוטציית מפתחות
כשמבצעים רוטציה למפתח CMEK, Firestore מצפין מחדש את מסד הנתונים באמצעות הגרסה הראשית העדכנית של מפתח ה-CMEK. במהלך תהליך ההצפנה מחדש, חשוב להשאיר את הגרסה הישנה והגרסה החדשה של המפתח זמינות. אחרי שההצפנה מחדש מסתיימת, השבתה או מחיקה של הגרסאות הישנות של מפתח ה-CMEK לא ישביתו את הגישה למסד הנתונים, כי הוא מוצפן באמצעות הגרסה הראשית החדשה של המפתח.
אפשר גם לראות את גרסאות המפתחות שמשמשות להגנה על מסד נתונים. מידע נוסף מופיע במאמר בנושא הצגת המפתח שנמצא בשימוש.
שיקולים לגבי מפתחות חיצוניים
כשמשתמשים במפתח Cloud EKM, ל-Google אין שליטה בזמינות של המפתח שמנוהל חיצונית במערכת של השותף החיצוני לניהול מפתחות.
אם מפתח שמנוהל חיצונית לא זמין, Firestore ממשיך לתמוך בפעולות מלאות במסד הנתונים כמיטב יכולתו למשך שעה אחת לכל היותר.
אם אחרי שעה עדיין לא תהיה אפשרות להתחבר ל-Cloud KMS מ-Firestore, המערכת תתחיל להעביר את מסד הנתונים למצב אופליין כאמצעי הגנה. הקריאות למסד הנתונים ייכשלו עם שגיאה FAILED_PRECONDITION
שכוללת פרטים נוספים.
מידע נוסף על שימוש במפתחות חיצוניים זמין במאמרי העזרה בנושא Cloud External Key Manager.
גיבוי ושחזור
הגיבוי משתמש באותו מנגנון הצפנה כמו מסד הנתונים שממנו הוא נוצר. כשיוצרים גיבוי של מסד נתונים ב-Firestore שמוגן באמצעות CMEK, הגיבוי מוצפן באמצעות גרסת המפתח הראשית שבה נעשה שימוש בזמן יצירת הגיבוי.
מערכת Firestore יוצרת את הגיבוי הראשון של מסד נתונים עם CMEK אחרי 24 שעות מהרגע שבו מפעילים את לוחות הזמנים של הגיבוי.
מידע נוסף על גיבויים של Firestore זמין במאמר גיבוי ושחזור נתונים.
מסד נתונים שמשוחזר מגיבוי משתמש באותו מנגנון הצפנה כמו הגיבוי כברירת מחדל. כשמשחזרים מסד נתונים, אפשר לציין סוג הצפנה שונה באחת מהדרכים הבאות:
- שחזור למסד נתונים עם CMEK עם מפתח חדש שצוין.
- שחזור למסד נתונים שאינו CMEK ומשתמש בהצפנת ברירת המחדל של Google.
- שחזור למסד נתונים שמשתמש באותה הצפנה כמו הגיבוי.
מידע נוסף על שחזור מסד נתונים של Firestore מגיבוי זמין במאמר שחזור נתונים מגיבוי של מסד נתונים. מידע נוסף על שחזור מסד נתונים של Firestore שמוגן באמצעות CMEK מגיבוי זמין במאמר שחזור מסד נתונים שמוגן באמצעות CMEK.
שכפל
כברירת מחדל, מסד נתונים שמשוכפל ממסד נתונים אחר משתמש באותו מנגנון הצפנה כמו מסד הנתונים המקורי. כשמשכפלים מסד נתונים, אפשר לציין סוג הצפנה שונה באחת מהדרכים הבאות:
- שיבוט למסד נתונים עם CMEK עם מפתח חדש שצוין.
- שיבוט למסד נתונים שאינו CMEK ומשתמש בהצפנת ברירת המחדל של Google.
- (ברירת מחדל) שיבוט למסד נתונים שמשתמש באותה הצפנה כמו מסד הנתונים של המקור.
מידע נוסף על שיבוט מסד נתונים של Firestore מופיע במאמר שיבוט מסד נתונים. מידע נוסף על שיבוט מסד נתונים של Firestore שמוגן באמצעות CMEK מופיע במאמר שיבוט מסד נתונים שמוגן באמצעות CMEK.
מעקב אחר מפתחות
אתם יכולים להשתמש במעקב אחרי מפתחות כדי לראות משאבים, למשל מסדי נתונים של Firestore, שהמפתח מגן עליהם. מידע נוסף על מעקב אחר מפתחות זמין במאמר הצגת השימוש במפתחות.
זמינות של מפתחות ו-CMEK
כשמפתחות לא זמינים או מושבתים, חשוב לשים לב להתנהגויות הבאות שיכולות להתרחש במסדי נתונים שמופעל בהם CMEK:
- אפשר לשנות את ההגדרות של שחזור לנקודת זמן (PITR) ב-Firestore במסד נתונים שמופעלת בו הצפנת CMEK, גם אם המפתח לא זמין. הסיבה לכך היא שההגדרות של PITR הן מטא-נתונים של מסד הנתונים, שלא מוצפנים על ידי CMEK.
- אפשר למחוק מסד נתונים עם הצפנה באמצעות CMEK שיש בו מפתחות לא זמינים.
- כשיוצרים מסד נתונים עם הפעלה של CMEK, מפתחות מושבתים לא מופיעים ברשימת המפתחות הזמינים במסוף Google Cloud . אם תזינו ידנית מפתח מושבת, תהליך יצירת מסד הנתונים ייכשל עם השגיאה
FAILED_PRECONDITION400.
מגבלות
- אי אפשר לשנות מפתח של מסד נתונים שמוגן באמצעות 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.