ניהול משאבי הצפנה

בדף הזה מוסבר איך לנהל קטגוריות של אחסון מבודד (air-gapped) מוצפן ב-Google Distributed Cloud ‏(GDC).

לפני שמתחילים

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

התפקידים שצריך ב-IAM

פנו לאדמין של פרויקט IAM כדי לבקש את התפקידים הבאים במרחב השמות של הפרויקט:

  • אדמין של קטגוריות בפרויקט (project-bucket-admin): יצירה, עדכון ומחיקה של קטגוריות אחסון.
  • ‫Project Bucket Object Viewer (project-bucket-object-viewer): צפייה בפרטים של קטגוריות ואובייקטים באחסון ובדיקתם.

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

הכנת הסביבה

כדי להריץ פקודות מול שרת ה-API לניהול או שרת ה-API הגלובלי, צריך לבצע את הפעולות הבאות:

  1. נכנסים לחשבון ויוצרים את קובץ ה-kubeconfig עבור שרת ה-API של ניהול אזורים, אם אין לכם כזה.
  2. לקטגוריות בשני אזורים, מבצעים את הפעולות הבאות:
    • מוודאים עם מפעיל התשתית (IO) שנוצר BucketLocationConfig משאב בהתאמה אישית עבור האזורים המזווגים.
    • יוצרים את קובץ ה-kubeconfig לשרת ה-API הגלובלי.

ניהול משאבי הצפנה

למאגרי מידע עם הצפנה v2 ייווצר סוד kekRef וכמה מפתחות AEADKey, שבהם kekRef משמש להפניה למפתחות AEADKey פעילים שמוגדרים כברירת מחדל, ומפתחות AEADKey כוללים מפתחות פעילים ומפתחות בארכיון ששייכים למאגר המידע.

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

מומלץ לרענן את מפתחות ה-AEAD שמוגדרים כברירת מחדל בקטגוריה אחרי כ-42 מיליארד פעולות כתיבה של אובייקטים. השלב הפרואקטיבי הזה משפר את האבטחה ומונע את מיצוי המפתחות. תהליך הרענון ייצור kekRef חדש וישבית את AEADKeys הקודמים. כדי להתחיל את תהליך הרענון, מוחקים את הסוד kekRef שמשויך לדלי.

אפשר לאחזר את kekRef הקודם על ידי הרצת הפקודה הבאה:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

אחר כך אפשר להריץ את הפקודה הבאה כדי למחוק את kekRef הקיים:

kubectl delete secrets OLD_KEKREF_NAME -n  NAMESPACE_NAME

אחרי המחיקה, אפשר להריץ את הפקודה הבאה כדי לוודא שנוצר kekRef חדש על סמך AGE:

kubectl get secrets -n NAMESPACE_NAME -l  object.gdc.goog/bucket-name=BUCKET_NAME

מוודאים שנוצרו מפתחות AEAD חדשים שמוגדרים כברירת מחדל על סמך AGE:

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

החלפת מפתחות AEAD שמוגדרים כברירת מחדל בקטגוריה

אם מפתח AEAD של הדלי נפרץ, צריך לבצע רוטציה ידנית של המפתחות להצפנת מפתחות שמשויכים לדלי.

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

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

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

kubectl get aeadkeys -n NAMESPACE_NAME -l  cmek.security.gdc.goog/resource-name=BUCKET_NAME

לבסוף, פועלים לפי השלבים למחיקת AEADKeys.