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

הגדרה

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

אם אתם רוצים לשלוט במפתחות ההצפנה, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud KMS עם שירותים שמשולבים עם CMEK, כולל Cloud Storage. שימוש במפתחות של Cloud KMS מאפשר לכם לשלוט ברמת ההגנה, במיקום, בלוח הזמנים של הרוטציה, בשימוש ובהרשאות הגישה, ובגבולות הקריפטוגרפיים. שימוש ב-Cloud KMS מאפשר לכם גם לעקוב אחרי השימוש במפתחות, לצפות ביומני ביקורת ולשלוט במחזורי החיים של המפתחות. במקום ש-Google תהיה הבעלים של מפתחות להצפנת מפתחות (KEK) סימטריים שמגנים על הנתונים שלכם ותנהל אותם, אתם שולטים במפתחות האלה ומנהלים אותם ב-Cloud KMS.

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

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

CMEK עם Cloud KMS Autokey

אתם יכולים ליצור מפתחות CMEK באופן ידני כדי להגן על קטגוריות Cloud Storage והאובייקטים שבהן, או להשתמש ב-Cloud KMS Autokey. עם Autokey, מחזיקי מפתחות ומפתחות נוצרים לפי דרישה כדי לתמוך ביצירה או בעדכון של משאבים ב-Cloud Storage. אם סוכני השירות שמשתמשים במפתחות לפעולות הצפנה ופענוח לא קיימים, הם נוצרים ומקבלים את התפקידים הנדרשים של ניהול זהויות והרשאות גישה (IAM). מידע נוסף מופיע במאמר סקירה כללית על Autokey.

‫Autokey לא יוצר מפתחות לאובייקטים. כברירת מחדל, אובייקטים בקטגוריה משתמשים במפתח ברירת המחדל של הקטגוריה. אם רוצים להצפין אובייקט באמצעות מפתח שונה ממפתח ברירת המחדל של הקטגוריה, אפשר ליצור באופן ידני מפתח CMEK ולהשתמש בו כשיוצרים את האובייקט.

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

מתי אפשר להשתמש במפתח?

כשמחילים מפתח CMEK על אובייקט, Cloud Storage משתמש במפתח כדי להצפין את:

  • נתוני האובייקט
  • סיכום הביקורת (checksum)‏ CRC32C של האובייקט
  • גיבוב (hash) MD5 של האובייקט

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

סוכני שירות

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

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

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

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

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

הגבלות

השימוש במפתחות הצפנה בניהול הלקוח כפוף להגבלות הבאות:

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

    • gcloud storage עושה שימוש בפקודה objects update כדי להגדיר מפתחות הצפנה לאובייקטים, אבל הפקודה משכתבת את האובייקט כחלק מהבקשה.
  • צריך ליצור את אוסף המפתחות של Cloud KMS באותו המיקום שבו נמצאים הנתונים שאתם מתכוונים להצפין. לדוגמה, אם המיקום של הקטגוריה הוא US-EAST1, גם המיקום שבו צריך ליצור כל אוסף מפתחות שמשמש להצפנת אובייקטים בקטגוריה הזו הוא US-EAST1.

    • באזורים כפולים, המיקום של אוסף המפתחות ב-Cloud KMS צריך להיות זהה לקוד המיקום של האזור הכפול. לדוגמה, אם הקטגוריה נמצאת בשני האזורים US-EAST1 ו-US-WEST1 שאפשר להגדיר, צריך ליצור כל אוסף מפתחות שמשמש להצפנת אובייקטים בקטגוריה הזו במיקום US שכולל מספר אזורים, שמתאים לקוד המיקום של הקטגוריה הזו. אם הקטגוריה שלכם נמצאת במיקום שכולל שני אזורים שהוגדרו מראש NAM4, אתם צריכים ליצור את אוסף המפתחות באותו מיקום שכולל שני אזורים שהוגדרו מראש, NAM4.

      לרשימת המיקומים הזמינים ב-Cloud KMS, קראו את המאמר בנושא מיקומי Cloud KMS.

  • סיכום הביקורת (checksum) CRC32C והגיבוב (hash) MD5 של אובייקטים שהוצפנו באמצעות מפתחות CMEK לא מוחזרים כשמציגים רשימת אובייקטים באמצעות API בפורמט JSON.

    • במקרים רלוונטיים, כלים מסוימים כמו gcloud storage, מבצעים בקשת GET למטא-נתונים נוספים בכל אובייקט שמוצפן באמצעות CMEK, כדי לאחזר את פרטי ה-CRC32C וה-MD5. הבקשות הנוספות האלה עשויות להאט משמעותית את הצגת רשימת האובייקטים, בהשוואה להצגת רשימה של אובייקטים שהוצפנו באמצעות הצפנה רגילה של Cloud Storage.
  • אפשר להשתמש רק במפתחות הצפנה סימטריים כמפתחות CMEK.

מכסות של Cloud KMS ו-Cloud Storage

כשמשתמשים ב-CMEK ב-Cloud Storage, הפרויקטים יכולים לנצל את המכסות של בקשות קריפטוגרפיות ב-Cloud KMS.

פעולות הצפנה ופענוח באמצעות מפתחות CMEK משפיעות על המכסות של Cloud KMS באופן הבא:

  • כשמדובר במפתחות CMEK של תוכנה שנוצרו ב-Cloud KMS, לא נעשה שימוש במכסת Cloud KMS.
  • מפתחות CMEK בחומרה – לפעמים נקראים מפתחות Cloud HSM – פעולות ההצפנה והפענוח נספרות במסגרת המכסות של Cloud HSM בפרויקט שמכיל את המפתח.
  • מפתחות CMEK חיצוניים – לפעמים נקראים מפתחות Cloud EKM – פעולות ההצפנה והפענוח נספרות במכסות של Cloud EKM בפרויקט שמכיל את המפתח.

מידע נוסף מופיע במאמר מכסות ב-Cloud KMS.

הקשר למפתחות הצפנה באספקת הלקוח (CSEK)

בנוסף להצפנה בניהול הלקוח, ב-Cloud Storage אפשר להשתמש במפתחות הצפנה באספקת לקוח (CSEK) כדי לשלוט בהצפנת הנתונים. אפשר להצפין אובייקטים שונים בקטגוריה אחת באמצעות methods שונות להצפנה, אבל חשוב לזכור:

  • אובייקט יחיד יכול להיות מוצפן באמצעות method אחת בלבד בכל פעם.

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

ניהול מפתחות

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

רוטציית מפתחות

‫Cloud KMS תומך ברוטציית מפתחות אוטומטית וידנית לגרסה חדשה. אחרי ביצוע רוטציה למפתח, Cloud Storage משתמש בגרסה החדשה לכל הפעולות שמצפינות באמצעות המפתח, כמו:

  • העלאות אובייקטים כשקטגוריית היעד משתמשת במפתח כמפתח ברירת המחדל שלה להצפנה.

  • פעולות של העלאה, העתקה ושכתוב של אובייקט שמשתמשות באופן ספציפי במפתח בפעולה.

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

החלפה של מפתח

כדי להחליף את המפתח שבו משתמשים להצפנת אובייקטים של Cloud Storage במפתח חדש:

  1. בודקים את הקטגוריות כדי לראות אילו מהן משתמשות במפתח כמפתח ברירת המחדל שלהן להצפנה. בקטגוריות האלה, מחליפים את המפתח הישן במפתח חדש.

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

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

  3. מחפשים אובייקטים, בכל הקטגוריות, שמוצפנים באמצעות המפתח הישן. משתמשים בmethod לשכתוב האובייקט כדי להצפין מחדש כל אחד מהאובייקטים באמצעות המפתח החדש.

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

השבתה או השמדה של גרסת מפתח

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

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

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

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

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

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

    • אי אפשר לציין את המפתח כחלק מהעלאה, העתקה או שכתוב של אובייקט.

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

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

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

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

גרסאות של מפתחות ואובייקטים נעולים

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

  • תאריך התפוגה של תקופת השמירה של האובייקט המוצפן צריך להיות בעבר.
  • אסור שיהיו השהיות אובייקטים על האובייקט המוצפן.

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

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