מפתחות הצפנה בניהול הלקוח (CMEK)
כברירת מחדל, Bigtable מצפין את התוכן של הלקוחות במצב מנוחה. Bigtable מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.
אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Bigtable. שימוש במפתחות Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. שימוש ב-Cloud KMS מאפשר גם לעקוב אחרי השימוש במפתחות, לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של המפתחות הסימטריים להצפנת מפתחות (KEK) שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.
אחרי שמגדירים את המשאבים עם מפתחות CMEK, חוויית הגישה למשאבי Bigtable דומה לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google. מידע נוסף על אפשרויות ההצפנה זמין במאמר מפתחות הצפנה בניהול הלקוח (CMEK).
CMEK עם Cloud KMS Autokey
אתם יכולים ליצור מפתחות CMEK באופן ידני כדי להגן על אשכולות Bigtable, או להשתמש ב-Cloud KMS Autokey. עם Autokey, מחזיקי מפתחות ומפתחות נוצרים לפי דרישה כדי לתמוך ביצירת משאבים ב-Bigtable. סוכני שירות שמשתמשים במפתחות לפעולות הצפנה ופענוח נוצרים אם הם לא קיימים כבר, ומקבלים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף מופיע במאמר סקירה כללית על Autokey.
Autokey יוצר מפתח ברירת מחדל כשיוצרים אשכולות Bigtable.
כדי להגדיר CMEK באופן ידני, אפשר לעיין במאמר בנושא שימוש ב-CMEK.
תכונות
אבטחה: הצפנה באמצעות CMEK מספקת את אותה רמת אבטחה כמו ההצפנה שמוגדרת כברירת מחדל ב-Google, אבל היא מאפשרת יותר שליטה אדמיניסטרטיבית.
שליטה בגישה לנתונים: אדמינים יכולים להחליף את המפתח שמשמש להגנה על נתונים במנוחה ב-Bigtable, לנהל את הגישה אליו ולהשבית או להשמיד אותו.
יכולת ביקורת: כל הפעולות במפתחות ה-CMEK מתועדות וניתנות לצפייה ב-Cloud Logging. מפתחות Cloud EKM תומכים ב-Key Access Justification (הצדקה לגישה למפתח), שמוסיף שדה הצדקה לכל בקשות המפתח. עם שותפים נבחרים לניהול מפתחות חיצוני, אתם יכולים לאשר או לדחות את הבקשות האלה באופן אוטומטי, על סמך ההצדקה.
ביצועים דומים: מופעים של Bigtable שמוגנים באמצעות CMEK מציעים ביצועים דומים למופעים של Bigtable שמשתמשים בהצפנה שמוגדרת כברירת מחדל ב-Google.
גמישות: אתם יכולים להשתמש באותו מפתח CMEK בכמה פרויקטים, מופעים או אשכולות, או להשתמש במפתחות נפרדים, בהתאם לצרכים העסקיים שלכם.
הגנה בין אזורים: אתם יכולים להפעיל CMEK במופעים שיש להם אשכולות בכל אזור שבו Bigtable זמין. כל אשכול מוגן באמצעות מפתח CMEK באזור של האשכול.
תמחור
ב-Cloud KMS יש עלויות על המפתח ועל כל הפעולות הקריפטוגרפיות שמבוצעות באמצעות המפתח הזה. פרטים נוספים זמינים במאמר בנושא תמחור של Cloud KMS.
תחויבו בעלויות הפעולה כש-Bigtable יבקש ממפתח Cloud KMS לבצע פעולת הצפנה או פענוח. כל בקשה להצפנה או לפענוח נשלחת מכל טבלה בכל אשכול במופע. מכיוון ש-Bigtable משתמש בהצפנה מסוג מעטפה, העלויות האלה לכל טבלה בדרך כלל נמוכות, בהתחשב במספר הקטן של פעולות הקריפטוגרפיה הצפויות. אם מאחסנים הרבה טבלאות במופע שמוגן באמצעות CMEK, העלויות גבוהות יותר.
אין עלויות נוספות ב-Bigtable על שימוש במופעים עם הפעלת CMEK.
מה מוגן באמצעות CMEK
במופע שמוגן באמצעות CMEK, Bigtable משתמש במפתח ה-CMEK שלכם כדי להגן על הנתונים באחסון. הנתונים האלה כוללים את כל הטבלאות באשכול. הנתונים שמאוחסנים באחסון HDD ו-SSD מוגנים.
חלק מהנתונים מוגנים על ידי הצפנה של Google כברירת מחדל באחסון, ולא על ידי מפתח CMEK:
- קבוצת משנה של מפתחות שורות שמסמנים גבולות של טווח ומשמשים לניתוב
- נתוני ניפוי באגים, כולל קובצי dump של הליבה ויומנים תפעוליים
- נתונים במעבר או בזיכרון
- קבוצת משנה של ערכי חותמות זמן המשמשים לאיסוף אשפה
Bigtable משתמש בהצפנת מעטפה לנתונים במצב מנוחה. מפתח ה-CMEK משמש כמפתח להצפנת מפתחות הצפנה (KEK) כדי להצפין מפתחות אחרים שמשמשים את Bigtable. כשמבצעים רוטציה של מפתח ה-CMEK, Bigtable צריך רק להצפין מחדש את המפתחות הביניים.
הפעלת CMEK
כדי להשתמש ב-CMEK עם Bigtable, צריך לבצע את השלבים הבאים:
- יוצרים ומגדירים מפתח CMEK בכל אזור שבו ימוקמו האשכולות של המופע.
- יוצרים מופע חדש של Bigtable ובוחרים מפתח CMEK לכל אשכול במופע. מפתח ה-CMEK של אשכול צריך להיות באותו אזור כמו האשכול.
- מתזמנים רוטציית מפתחות לכל מפתח.
באפליקציות שמשתמשות ב-Bigtable, אין צורך לציין מפתח או הגדרת הצפנה כשקוראים, כותבים או מוחקים נתונים. אחרי שתקצו את התפקיד Cloud KMS Encrypter/Decrypter לסוכן השירות של Bigtable, ל-Bigtable תהיה גישה למפתח בשמכם.
הוראות מפורטות מופיעות במאמר שימוש ב-CMEK.
אפשר להשתמש באפשרויות הבאות כשעובדים עם CMEK ב-Bigtable.
- Google Cloud console
- Google Cloud CLI
- כל ספריות הלקוח שזמינות לקהל הרחב (GA) ומבצעות קריאה לממשקי Cloud Bigtable API.
אפשר גם לגשת ישירות אל Cloud Bigtable Admin API, אבל מומלץ לעשות זאת רק אם אי אפשר להשתמש בספריית לקוח של Bigtable שמבצעת קריאות ל-API של CMEK.
ניהול מפתחות
פעולות ניהול המפתחות מבוצעות באמצעות Cloud KMS. מערכת Bigtable לא יכולה לזהות שינויים במפתחות או לפעול בעקבותיהם עד שהם מועברים על ידי Cloud KMS. הפצה של פעולות מסוימות, כמו השבתה או השמדה של מפתח, יכולה להימשך עד 4 שעות. בדרך כלל, הפצה של שינויים בהרשאות של מפתח מתבצעת מהר יותר.
אחרי שיוצרים לפחות טבלה אחת במופע שמוגן באמצעות CMEK, Bigtable מאמת את המפתח של כל טבלה בכל אשכול כל 5 דקות.
אם Bigtable מזהה מפתח מושבת, הוא משבית אשכול אחד בכל פעם באופן מדורג עד שכל האשכולות במופע מושבתים.
אחרי שהאשכול הראשון מדווח על השבתה או השמדה של מפתח, ועד להשבתת המופע, יכול להיות שחלק מבקשות הנתונים יצליחו וחלק יחזירו שגיאה. כל פעולות הנתונים שנשלחות לאשכול שהושבת מחזירות שגיאה FAILED_PRECONDITION או NOT_FOUND.
בנוסף, מכיוון שהשכפול ב-Bigtable הוא עקבי בסופו של דבר, יכול להיות שאשכול אישר בקשת כתיבה אבל עדיין לא שכפל אותה לאשכולות האחרים במופע לפני שהיא הושבתה.
תהליך ההשבתה האוטומטית של כל האשכולות במופע Bigtable אחרי השבתה של מפתח אחד יכול להימשך כמה שעות. כדי להימנע ממצב כזה, מומלץ להשבית תמיד את כל המפתחות של מופע בו-זמנית.
כשמשביתים אשכול Bigtable, הפעולות הבאות של האדמין מוגבלות לכל המופע:
- יצירת אשכול
- מחיקת אשכול
- יצירת טבלה
- שינוי של קבוצת עמודות
- שחזור טבלה
עדיין אפשר למחוק את המופע, למחוק טבלה ולמחוק גיבוי.
אם הקריאות של Bigtable ל-Cloud KMS מזהות שמפתח שהושבת בעבר הופעל מחדש, Cloud KMS משחזר את הגישה לאשכול Bigtable באופן אוטומטי.
אם מפתח Cloud KMS נהרס, לא תהיה יותר גישה לאף מופע Bigtable שיש בו אשכול שהוצפן באמצעות המפתח הזה.
איך המערכת מטפלת במצב של מפתח לא זמין
בתרחישים נדירים, למשל בתקופות שבהן Cloud KMS לא זמין, יכול להיות ש-Bigtable לא יוכל לאחזר את הסטטוס של מפתח מ-Cloud KMS.
אם אשכול Bigtable מוגן על ידי מפתח שמופעל בזמן שבו Bigtable לא מצליח לתקשר עם Cloud KMS, Bigtable ממשיך לתמוך בפעולות מלאות של מופעים על בסיס המאמץ המרבי למשך שעה אחת לכל היותר, כדי למזער את ההשפעה של אירוע כזה על עומס העבודה.
אם אחרי שעה עדיין לא תהיה אפשרות להתחבר ל-Cloud KMS, Bigtable יתחיל להעביר את המופע למצב אופליין כאמצעי הגנה. הגישה לנתונים במופע Bigtable שלכם תהיה חסומה עד שהמופע יוכל להתחבר מחדש ל-Cloud KMS, ו-Cloud KMS ישיב שהמפתח פעיל.
לעומת זאת, אם אשכול במופע Bigtable שלכם מוגן על ידי מפתח שהושבת לפני הנקודה שבה Bigtable לא מצליח לתקשר עם Cloud KMS, המופע יישאר לא נגיש עד שהוא יוכל להתחבר מחדש ל-Cloud KMS ותפעילו מחדש את המפתח.
שיקולים לגבי מפתחות חיצוניים
כשמשתמשים ב-Cloud EKM, ל-Google אין שליטה על הזמינות של המפתח שמנוהל באופן חיצוני במערכת של השותף החיצוני לניהול מפתחות.
אם המפתח שמנוהל חיצונית לא זמין, Bigtable ממשיך לתמוך בפעולות באשכול על בסיס הפתרון האפשרי הטוב ביותר למשך שעה לכל היותר.
אם אחרי שעה עדיין לא תהיה אפשרות להתחבר ל-Cloud KMS מ-Bigtable, המערכת תתחיל להעביר את המופע למצב אופליין כאמצעי הגנה. הגישה לנתונים במופע Bigtable שלכם תישאר חסומה עד שהמופע יוכל להתחבר מחדש ל-Cloud KMS, ו-Cloud KMS יגיב שהמפתח החיצוני פעיל.
אם אתם מתכננים להשתמש במפתח חיצוני למופע Bigtable שיש לו אשכולות ביותר מאזור אחד, ודאו שהמפתח נתמך באזורים האלה. פרטים נוספים זמינים במאמר בנושא מנהלי מפתחות חיצוניים ואזורים. בנוסף, אסור להשתמש בשילוב של מפתחות חיצוניים ולא חיצוניים באותו מופע.
מידע נוסף על שימוש במפתחות חיצוניים עם Cloud Key Management Service זמין במאמר Cloud External Key Manager (Cloud EKM).
מדיניות הארגון
Bigtable תומך במגבלות של מדיניות הארגון כדי להבטיח שימוש ב-CMEK בכל הארגון. פרטים על השימוש במדיניות הארגון זמינים במאמר מדיניות הארגון לגבי CMEK.
גיבויים
כמו נתונים אחרים, הגיבוי מוגן על ידי מפתח ה-CMEK של האשכול שבו הגיבוי מאוחסן. טבלאות חדשות שמשוחזרות מגיבוי מוגנות על ידי מפתח או מפתחות CMEK של האשכול שבו הן משוחזרות. לפרטים נוספים על ההשפעה של CMEK על גיבויים ופעולות שחזור, ראו גיבויים. במאמר איך לבצע גיבוי מוסבר איך ליצור גיבוי או לשחזר ממנו.
רישום ביומן
אם הפעלתם יומני ביקורת של Cloud KMS עבור Cloud KMS API בפרויקט, תוכלו לבדוק בCloud Logging את הבקשות ש-Bigtable שולח ל-Cloud KMS בשמכם. אפשר לצפות לכמה רשומות ביומן כל 5 דקות בערך לכל טבלה בכל אשכול.
מגבלות
אפשר להגדיר CMEK רק ברמת האשכול. אי אפשר להגדיר CMEK בגיבויים, בטבלאות או בפרופילים של אפליקציות.
מפתח ה-CMEK של אשכול צריך להיות באותו אזור שבו נמצא האשכול. כשיוצרים אוסף מפתחות של Cloud KMS, חשוב לבחור את האזור שמתאים להגדרת האזור המתוכננת של Bigtable.
הגדרת ההצפנה של משאב Bigtable (מופע, אשכול, טבלה או גיבוי) היא בלתי ניתנת לשינוי.
- אי אפשר להמיר מופעים שאינם CMEK לשימוש ב-CMEK.
- אי אפשר להמיר מקרים של CMEK לשימוש בהצפנה שמוגדרת כברירת מחדל ב-Google.
- אי אפשר להגדיר מחדש אשכולות שנוצרו באמצעות מפתח CMEK כדי להשתמש במפתח אחר.
משאבי Bigtable (מופעים, אשכולות, טבלאות או גיבויים) שמוגנים באמצעות CMEK ומקושרים למפתח שהגישה אליו נחסמה כתוצאה מפעולה שהמשתמש הפעיל (כמו השבתה או השמדה של מפתח, או ביטול של תפקיד ההצפנה או הפענוח) למשך יותר מ-30 ימים רצופים, נמחקים באופן אוטומטי.
אם מפעילים מחדש מפתח CMEK שהושבת כדי לשחזר את הגישה למופעי Bigtable שמוגנים על ידי המפתח הזה, יכול להיות שחלק מהבקשות ל-Data API יפסיקו לפעול בגלל חריגה מזמן קצוב לתפוגה בזמן שהנתונים חוזרים למצב אונליין.
יכול להיות שעד חמש דקות אחרי שיוצרים טבלה במופע שמוגן באמצעות CMEK, גרסת המפתח והסטטוס של המפתח ידווחו כלא ידועים. עם זאת, כל הנתונים שנכתבים לטבלה עדיין מוגנים באמצעות מפתח ה-CMEK במהלך הזמן הזה.
השבתה או מחיקה של גרסה אחת בלבד במקום כל הגרסאות של מפתח שמשמש את Bigtable עלולה לגרום להתנהגות בלתי צפויה. תמיד צריך להשבית או למחוק את כל הגרסאות של מפתח CMEK.