בדף הזה נסביר על מפתחות הצפנה בניהול הלקוח (CMEK) ב-Spanner. מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, זמין במסמכי התיעוד של Cloud Key Management Service.
כברירת מחדל, Spanner מצפין את התוכן של הלקוחות במנוחה. Spanner מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.
אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Spanner. שימוש במפתחות של Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. שימוש ב-Cloud KMS מאפשר לכם גם לעקוב אחרי השימוש במפתחות, לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות להצפנת מפתחות (KEK) סימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שמגדירים את המשאבים עם CMEK, חוויית הגישה למשאבי Spanner דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
כדי ללמוד איך להשתמש במפתחות CMEK שנוצרו באופן ידני כדי להגן על משאבי Spanner, אפשר לעיין במאמר הגנה על מסד נתונים באמצעות CMEK.
CMEK עם Cloud KMS Autokey
אתם יכולים ליצור מפתחות CMEK באופן ידני כדי להגן על משאבי Spanner, או להשתמש ב-Cloud KMS Autokey. באמצעות Autokey, אוספי מפתחות ומפתחות נוצרים לפי דרישה כדי לתמוך ביצירת משאבים ב-Spanner. אם סוכני השירות שמשתמשים במפתחות לפעולות הצפנה ופענוח לא קיימים, הם נוצרים ומקבלים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף מופיע במאמר סקירה כללית על Autokey.
Spanner תואם ל-Cloud KMS Autokey רק כשיוצרים משאבים באמצעות Terraform או API בארכיטקטורת REST. אי אפשר להשתמש ב-Cloud KMS Autokey כדי ליצור כמה מפתחות אזוריים (אזור יחיד) של Cloud KMS למסד נתונים ב-Spanner.
כדי להשתמש במפתחות CMEK שנוצרו על ידי Cloud KMS Autokey כדי להגן על משאבי Spanner, אפשר להיעזר בשלבים שמופיעים במאמר שימוש ב-Autokey עם משאבי Secret Manager.
תכונות
- בקרת גישה לנתונים: אדמינים יכולים להחליף את המפתח שמשמש להגנה על נתונים באחסון ב-Spanner, לנהל את הגישה אליו ולהשבית או להשמיד אותו.
- יכולת ביקורת: אם מפעילים רישום ביומן ביקורת עבור Cloud KMS API בפרויקט, כל הפעולות שמתבצעות במפתח, כולל אלה שמתבצעות על ידי Spanner, נרשמות ביומן וניתן לראות אותן ב-Cloud Logging. מפתחות Cloud EKM תומכים ב-Key Access Justification, שמוסיף שדה הצדקה לכל בקשות המפתחות. עם שותפים נבחרים לניהול מפתחות חיצוניים, אתם יכולים לאשר או לדחות את הבקשות האלה באופן אוטומטי, על סמך ההצדקה.
- ביצועים: אין שינויים בביצועים של Spanner או בהסכם רמת השירות בשימוש ב-CMEK.
- תמיכה במספר מפתחות אזוריים: אתם יכולים ליצור מספר מפתחות אזוריים (אזור יחיד) של Cloud KMS כדי להגן על מסד נתונים בהגדרה של מופע Spanner בהתאמה אישית, בשני אזורים או במספר אזורים.
תמחור
החיוב ב-Spanner עבור מסדי נתונים שמופעל בהם CMEK זהה לחיוב עבור כל מסד נתונים אחר. אין עלויות נוספות של Spanner על הפעלת CMEK. מידע נוסף זמין במאמר תמחור של Spanner.
תחויבו על ידי Cloud KMS גם על עלות המפתח וגם על כל פעולה קריפטוגרפית במפתח הזה (בכל פעם ש-Spanner משתמש במפתח להצפנה או לפענוח). אנחנו צופים שהעלויות האלה יהיו מינימליות, בהתבסס על המספר הצפוי של פעולות קריפטוגרפיות שנוצרות על ידי Spanner. מידע נוסף זמין במאמר תמחור של Cloud KMS.
מה מוגן באמצעות CMEK
במסד נתונים שמופעל בו CMEK, Spanner משתמש במפתחות Cloud KMS שלכם כדי להגן על נתונים באחסון. כולל נתונים במסד נתונים שמאוחסנים בדיסק או בפלאש.
יש כמה מקרים חריגים. הסוגים הבאים של נתונים מוגנים על ידי הצפנה במנוחה כברירת מחדל של Google, ולא על ידי מפתח CMEK:
- קבוצת משנה של מפתחות שורות שמסמנים את גבולות הטווח
- ניפוי באגים בנתונים, כולל קובצי dump של הליבה ויומנים תפעוליים
- נתונים במעבר או בזיכרון
- מטא-נתונים של מסד נתונים
ב-Spanner יש שלוש שכבות של הצפנה. הנתונים באחסון מחולקים למקטעים של תתי-קבצים לצורך אחסון, וכל מקטע מוצפן ברמת האחסון באמצעות מפתח הצפנה יחיד. המפתח שמשמש להצפנת הנתונים במקטע נקרא מפתח להצפנת נתונים (DEK). בגלל הכמות הגדולה של מפתחות Google, ובגלל הצורך בזמן אחזור קצר ובזמינות גבוהה, המפתחות האלה נשמרים לצד הנתונים שהם מצפינים. מפתחות ה-DEK מוצפנים באמצעות (או ארוזים על ידי) מפתח להצפנת מפתחות הצפנה (KEK). לבסוף, כל מפתח KEK מוצפן באמצעות מפתח ה-CMEK שלכם.
כשמבצעים רוטציה למפתח CMEK, Spanner מצפין מחדש רק את מפתחות ה-KEK הביניים עם הגרסה הראשית האחרונה של מפתח ה-CMEK. אחרי שההצפנה מחדש מסתיימת, השבתה או מחיקה של הגרסאות הקודמות של מפתח ה-CMEK לא ישביתו את הגישה למסד הנתונים. אפשר גם לראות את גרסאות המפתחות שמשמשות להגנה על מסד נתונים.
עם CMEK

ללא CMEK

הפעלת CMEK
כדי להשתמש ב-CMEK במסדי נתונים של Spanner, צריך ליצור מסד נתונים חדש ולציין את מפתח Cloud KMS בזמן יצירת מסד הנתונים.
אחרי שתעניקו את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) לחשבון שירות של Spanner שמנוהל על ידי Google, ל-Spanner תהיה גישה למפתח בשמכם.
הוראות מפורטות זמינות במאמר בנושא אבטחת מסד נתונים באמצעות CMEK.
ממשקי ה-API של Spanner לגישה לנתונים, כמו אלה שמשמשים לניהול סשנים ולביצוע טרנזקציות על נתונים, זהים בדיוק גם ל-CMEK וגם ל- Google-owned and Google-managed encryption keys. אפליקציות לא צריכות לציין מפתחות או הגדרות הצפנה כשקוראים או כותבים נתונים. השירות מטפל בכל ההצפנה.
ניהול מפתחות
פעולות ניהול המפתחות מבוצעות באמצעות Cloud KMS. מערכת Spanner לא יכולה לזהות שינויים במפתחות או לפעול לפיהם עד שהם מועברים על ידי Cloud KMS. חלק מהפעולות, כמו השבתה או השמדה של מפתח, יכולות להימשך עד שלוש שעות. שינויים בהרשאות בדרך כלל מופצים הרבה יותר מהר.
אחרי שיוצרים את מסד הנתונים, Spanner קורא ל-Cloud KMS כל חמש דקות בערך כדי לוודא שהמפתח עדיין תקף.
אם Spanner מזהה שהמפתח שלכם ב-Cloud KMS הושבת או נמחק, מתחילה מיד פעולה כדי למנוע גישה למסד הנתונים. כל הקריאות הבאות למסד הנתונים, כולל סשנים, קריאות וכתיבות, מחזירות שגיאה FAILED_PRECONDITION: KMS key required by the
Spanner resource is not accessible. אם הקריאות של Spanner ל-Cloud KMS מזהות שמפתח שהושבת בעבר הופעל מחדש, Cloud KMS משחזר את הגישה למסד הנתונים של Spanner באופן אוטומטי.
בנוסף, אם מסד נתונים מוגן על ידי כמה מפתחות אזוריים וכל המפתחות מושבתים או נהרסים, Spanner מתחיל באופן מיידי להפוך את מסד הנתונים ללא נגיש. אם Spanner מזהה שרק קבוצת משנה של המפתחות במסד הנתונים מושבתת או נהרסת, הוא משבית את מסד הנתונים במשך תקופה של עד 12 שעות. לא מומלץ להשבית או להשמיד רק קבוצת משנה של מפתחות במסד נתונים שמופעל בו CMEK, כי זה עלול לגרום להתנהגות לא צפויה. כדי למנוע את זה, אפשר להשתמש במדד Spanner CMEK Keys (instance/replica/cmek/total_keys) כדי להפעיל התראה אם קבוצת משנה של מפתחות מושבתת או מושמדת. מידע נוסף זמין במאמר יצירת התראה על השבתה של קבוצת משנה של CMEK.
יצירת התראה להשבתה של קבוצת משנה של CMEK
אפשר להשתמש במדד Spanner CMEK Keys (/instance/replica/cmek/total_keys) כדי להפעיל התראה אם קבוצת משנה של מפתחות CMEK מושבתת או נהרסת. כדי ליצור את מדיניות ההתראות הזו, מרחיבים את השלבים וההגדרות הבאים:
הגדרות של מדיניות התראות בנושא CMEK.
| תנאי חדש שדה |
ערך |
|---|---|
| משאב ומדד | בתפריט Resources בוחרים באפשרות Spanner Instance. בתפריט Metric categories בוחרים באפשרות Instance. בתפריט Metrics בוחרים באפשרות CMEK Keys. (The metric.type is spanner.googleapis.com/instance/replica/cmek/total_keys).
|
| מסנן | instance_id = INSTANCE_IDis_key_revoked = TRUE |
| בסדרות עיתיות קיבוץ סדרות עיתיות לפי |
database |
| בסדרות של נתונים על ציר הזמן צבירה של נתונים על ציר הזמן |
sum |
| חלון מתגלגל | 10 m |
| פונקציה אנליטית (חלון נע) | mean |
| הגדרת טריגר להתראה שדה |
ערך |
|---|---|
| סוג התנאי | Threshold |
| טריגר להתראה | Any time series violates |
| מיקום הסף | Above threshold |
| סף | 0
|
| חלון הבדיקה מחדש | 1 hr |
| תנאי חדש שדה |
ערך |
|---|---|
| משאב ומדד | בתפריט Resources בוחרים באפשרות Spanner Instance. בתפריט Metric categories בוחרים באפשרות Instance. בתפריט Metrics בוחרים באפשרות CMEK Keys. (The metric.type is spanner.googleapis.com/instance/replica/cmek/total_keys).
|
| מסנן | instance_id = INSTANCE_IDis_key_revoked = FALSE |
| בסדרות עיתיות קיבוץ סדרות עיתיות לפי |
database |
| בסדרות של נתונים על ציר הזמן צבירה של נתונים על ציר הזמן |
sum |
| חלון מתגלגל | 10 m |
| פונקציה אנליטית (חלון נע) | mean |
| הגדרת טריגר להתראה שדה |
ערך |
|---|---|
| סוג התנאי | Threshold |
| טריגר להתראה | Any time series violates |
| מיקום הסף | Above threshold |
| סף | 0
|
| חלון הבדיקה מחדש | 1 hr |
| הגדרת טריגר להתראה שדה |
ערך |
|---|---|
| טריגר עם כמה תנאים | All conditions are met |
אחרי שיוצרים את ההתראה, אם Spanner מזהה שבוטל חלק ממערך המפתחות לניהול הצפנה (CMEK), מופיע סיכום אירוע בטבלה Incidents בדף Policy details של ההתראה. אפשר גם להגדיר ערוצי התראות אופציונליים. מידע נוסף זמין במאמר בנושא יצירה וניהול של ערוצי התראות.
איך המערכת מטפלת במצב של מפתח לא זמין
בתרחישים נדירים, למשל בתקופות שבהן Cloud KMS לא זמין, יכול להיות ש-Spanner לא יוכל לאחזר את הסטטוס של המפתח מ-Cloud KMS.
אם מסד הנתונים של Spanner מוגן באמצעות מפתח שמופעל בזמן שבו Spanner לא מצליח לתקשר עם Cloud KMS, Spanner ממשיך לתמוך בפעולות מלאות במסד הנתונים למשך שעה לכל היותר, על בסיס המאמץ המרבי, כדי למזער את ההשפעה של אירוע כזה על עומס העבודה. אם אחרי שעה עדיין לא תהיה אפשרות להתחבר ל-Cloud KMS מ-Spanner, Spanner יתחיל להעביר את מסד הנתונים למצב אופליין כאמצעי הגנה. הנתונים במסד הנתונים של Spanner נשארים לא נגישים עד שמסד הנתונים יוכל להתחבר מחדש ל-Cloud KMS, ו-Cloud KMS יגיב שהמפתח פעיל.
לעומת זאת, אם מסד הנתונים של Spanner מוגן באמצעות מפתח שמושבת בזמן שבו Spanner לא מצליח לתקשר עם Cloud KMS, מסד הנתונים שלכם נשאר לא נגיש עד שהוא יוכל להתחבר מחדש ל-Cloud KMS ותפעילו מחדש את המפתח.
אם אתם משתמשים בכמה מפתחות אזוריים כדי להגן על מסד נתונים של Spanner, רק העותקים המשוכפלים שמוגנים על ידי מפתח שנמצא ב-Cloud KMS האזורי הלא זמין מושפעים מהחוסר הזמינות.
שיקולים לגבי מפתחות חיצוניים
כשמשתמשים במפתח Cloud EKM, ל-Google אין שליטה בזמינות של המפתח שמנוהל חיצונית במערכת של השותף החיצוני לניהול מפתחות.
אם מפתח שמנוהל חיצונית לא זמין, Spanner ממשיך לתמוך בפעולות מלאות במסד הנתונים כמיטב יכולתו למשך שעה אחת לכל היותר.
אם אחרי שעה עדיין לא תהיה ל-Spanner אפשרות להתחבר ל-Cloud KMS, הוא יתחיל להעביר את מסד הנתונים למצב אופליין כאמצעי הגנה. הקריאות למסד הנתונים ייכשלו עם השגיאה FAILED_PRECONDITION: External key error: Could not find a key resource
at the key URI.
אם אתם משתמשים בכמה מפתחות Cloud EKM כדי להגן על מסד הנתונים של Spanner, רק העותקים המשוכפלים שמוגנים על ידי המפתח הלא זמין מושפעים מהחוסר הזמינות.
מידע נוסף על שיקולים נוספים לשימוש במפתחות חיצוניים זמין במאמרי העזרה של Cloud External Key Manager.
גיבוי ושחזור
אפשר להשתמש ב-CMEK או ב- Google-owned and Google-managed encryption keys כדי להגן על גיבויים של Spanner. כברירת מחדל, הגיבוי משתמש באותן הגדרות הצפנה כמו מסד הנתונים, אבל אפשר לשנות את ההתנהגות הזו על ידי הגדרת הצפנה שונה כשיוצרים את הגיבוי. אם הגיבוי מופעל באמצעות CMEK, הוא מוצפן באמצעות הגרסה הראשית של מפתח ה-KMS בזמן יצירת הגיבוי. אחרי שיוצרים את הגיבוי, אי אפשר לשנות את המפתח ואת גרסת המפתח שלו, גם אם מתבצעת רוטציה של מפתח ה-KMS. מידע נוסף זמין במאמר בנושא גיבוי מסד נתונים.
כשמשחזרים מסד נתונים מגיבוי, כברירת מחדל, מסד הנתונים המשוחזר משתמש באותו הגדרות הצפנה כמו הגיבוי. אפשר לשנות את ההתנהגות הזו על ידי ציון הגדרת הצפנה שונה כשמשחזרים את מסד הנתונים. כדי לשחזר גיבוי שמופעל בו CMEK, המפתח וגרסת המפתח ששימשו להצפנת הגיבוי צריכים להיות זמינים. מידע נוסף זמין במאמר שחזור מגיבוי.
אפשר לבצע פעולות גיבוי כמו יצירה, העתקה ושחזור במסד נתונים מוצפן עם כמה מפתחות אזוריים.
כל הגיבויים שנוצרו על ידי תזמון גיבויים יכולים להיות מוגנים על ידי CMEK או Google-owned and Google-managed encryption keys.
חלוקה גיאוגרפית
אתם יכולים להשתמש ב-CMEK או ב- Google-owned and Google-managed encryption keys כדי להגן על מסדי נתונים של Spanner שמשתמשים בחלוקה גיאוגרפית. כשמשתמשים בחלוקה גיאוגרפית, צריך להשתמש במפתח אזורי של Cloud KMS לכל מיקום של העתק של מופע, כולל אלה שמופיעים בהגדרת החלוקה של המופע. אין תמיכה במפתחות מרובי-אזורים. כל מפתח Cloud KMS אזורי צריך להיות באותו אזור שבו נמצאת הרפליקה או המחיצה של המופע התואם של Spanner.
לדוגמה, אם מסד הנתונים של Spanner נמצא בהגדרת מופע של מספר אזורים nam3, עם מחיצות מופע שנמצאות ב-europe-west1 וב-europe-west2, צריך ליצור מפתחות Cloud KMS באזורים הבאים:
us-east4(חלק מ-nam3)us-east1(חלק מ-nam3)us-central1(חלק מ-nam3)-
europe-west1(המיקום של מחיצת המכונה) -
europe-west2(המיקום של מחיצת המכונה)
מידע נוסף זמין במאמר אבטחת מסד נתונים באמצעות CMEK.
רישום ביומן
אם הפעלתם את יומני הביקורת עבור Cloud KMS API בפרויקט שלכם, תוכלו לבדוק ב-Cloud Logging את הבקשות ש-Spanner שולח ל-Cloud KMS בשמכם. אפשר לראות את רשומות היומן של Cloud KMS ב-Logging.
דרישה או הגבלה של CMEK בארגון
אתם יכולים להגדיר מדיניות ברמת הארגון לגבי השימוש בהגנה באמצעות CMEK במגוון Google Cloud מוצרים, כולל Spanner. בעזרת כללי המדיניות האלה, אתם יכולים:
דרישה שמסדי נתונים חדשים ב-Spanner שנוצרו על ידי הארגון ישתמשו בהגנה באמצעות CMEK.
הגבלת המפתחות של Cloud KMS בארגון שזמינים להגנה באמצעות CMEK.
מידע נוסף זמין במאמר מדיניות הארגון לגבי CMEK.