אבטחת נתונים באמצעות מפתחות הצפנה

בדף הזה מוסבר איך ליצור מפתחות הצפנה בניהול הלקוח (CMEK) ל-AlloyDB ל-PostgreSQL, להגדיר אותם ולהחיל אותם.

מידע נוסף על CMEK זמין במאמר מידע על CMEK.

יצירה והרשאה של מפתח CMEK ל-AlloyDB

  1. יוצרים מפתח ב-Cloud Key Management Service ‏ (Cloud KMS). ‫AlloyDB תומך בסוגי המפתחות הבאים:

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

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

  2. מעניקים ל-AlloyDB גישה למפתח.

    1. באמצעות Google Cloud CLI, יוצרים את סוכן השירות ומציגים אותו, או מציגים אותו אם החשבון כבר קיים:
        gcloud beta services identity create --service=alloydb.googleapis.com \
            --project=PROJECT

    הפקודה gcloud services identity יוצרת או מאחזרת את סוכן השירות ש-AlloyDB יכול להשתמש בו כדי לגשת למפתח Cloud KMS בשמכם.

    מזהה חשבון השירות דומה לכתובת אימייל:

        Service identity created: service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com
    
    1. מקצים לחשבון השירות את התפקיד cloudkms.cryptoKeyEncrypterDecrypter:
        gcloud kms keys add-iam-policy-binding KEY \
            --location REGION \
            --keyring KEYRING \
            --project=PROJECT \
            --member serviceAccount:service-xxx@gcp-sa-alloydb.iam.gserviceaccount.com \
            --role roles/cloudkms.cryptoKeyEncrypterDecrypter

    מחליפים את מה שכתוב בשדות הבאים:

    • KEY: מזהה המפתח ב-Cloud KMS
    • REGION: האזור של המפתח, לדוגמה us-central1
    • PROJECT: המזהה של הפרויקט של המפתח
    • KEYRING: המזהה של אוסף המפתחות של Cloud KMS שבו נמצא המפתח

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

יצירת אשכול מוצפן באמצעות CMEK

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

צפייה בשיטת ההצפנה ובמפתח ה-CMEK של אשכול

המסוף

בעמודה הצפנה בדף אשכולות מוצג אם כל אשכול בפרויקט משתמש בהצפנה בניהול Google או ב-CMEK.

כניסה לדף Clusters

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

gcloud

מריצים את הפקודה gcloud alloydb clusters describe:

gcloud alloydb clusters describe CLUSTER \
--project=PROJECT \
--region=REGION

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER: המזהה של האשכול שרוצים לתאר
  • PROJECT: מזהה הפרויקט של האשכול
  • REGION: האזור של האשכול – לדוגמה, us-central1

הפלט כולל שדה encryptionInfo עם סיכום של ההצפנה של האשכול.

החלת CMEK על גיבויים

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

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

רוטציה של מפתחות באמצעות הצפנת CMEK

חשוב להבין את ההשלכות של ביצוע רוטציה למפתחות הצפנה בניהול הלקוח (CMEK) ב-Cloud Key Management Service ‏ (Cloud KMS) כשמשתמשים בהם עם אשכולות AlloyDB.

כשמבצעים רוטציה למפתח CMEK, זה מה שקורה לנתונים הקיימים ב-AlloyDB:

  • הגישה המיידית נמשכת: הנתונים נשארים מוצפנים באמצעות הגרסה המקורית של מפתח ההצפנה (DEK), כל עוד הגרסה הקודמת של המפתח עדיין זמינה ב-KMS, ולא הושבתה או נמחקה.

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

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

  1. יוצרים גיבוי של האשכול הקיים.

  2. משחזרים את הגיבוי לאשכול חדש, ומציינים את הגרסה החדשה של מפתח ה-CMEK הראשי במהלך תהליך השחזור.

מידע נוסף זמין במאמר בנושא שחזור אשכול.

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

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

צפייה בשיטת ההצפנה ובמפתח ה-CMEK של גיבוי

המסוף

בעמודה הצפנה בדף גיבויים מוצג אם כל אשכול בפרויקט משתמש בהצפנה בניהול Google או ב-CMEK.

כניסה לדף Backups

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

gcloud

מריצים את הפקודה gcloud alloydb backups describe:

gcloud alloydb backups describe CLUSTER \
--project=PROJECT \
--region=REGION

מחליפים את מה שכתוב בשדות הבאים:

  • CLUSTER: המזהה של הגיבוי שרוצים לתאר
  • PROJECT: מזהה הפרויקט של הגיבוי
  • REGION: האזור של הגיבוי, לדוגמה, us-central1

הפלט כולל שדה encryptionInfo עם סיכום של ההצפנה של הגיבוי.

השבתת מקש

אם משביתים את מפתח ה-CMEK של אשכול, אי אפשר לגשת לנתונים של האשכול עד שמפעילים שוב את המפתח.

עם זאת, השבתת מפתח יכולה להימשך עד שלוש שעות עד שהוא יתעדכן באשכול AlloyDB. כדי להשבית מפתח ולמנוע גישה לנתונים באופן מיידי, פועלים לפי השלבים הבאים:

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

  2. משתמשים ב-Cloud KMS כדי להשבית את המפתח.

הפעלת מקש

כדי להפעיל מפתח:

  1. שימוש ב-Cloud KMS כדי להפעיל את המפתח

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

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

צפייה ביומני ביקורת של מפתח Cloud KMS

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

  1. מוודאים שהרישום ביומן מופעל עבור Cloud KMS API בפרויקט.

  2. נכנסים אל Logs Explorer במסוף Google Cloud .

    כניסה לדף Logs Explorer

  3. כדי להגביל את רשומות היומן למפתח Cloud KMS, מוסיפים את השורות הבאות לכלי ליצירת שאילתות:

    resource.type="cloudkms_cryptokey"
    resource.labels.location="REGION"
    resource.labels.key_ring_id="KEYRING"
    resource.labels.crypto_key_id="KEY"
    

    מחליפים את מה שכתוב בשדות הבאים:

    • REGION: האזור של המפתח, למשל us-central1
    • KEYRING: המזהה של אוסף המפתחות של Cloud KMS שבו נמצא המפתח
    • KEY: מזהה המפתח ב-Cloud KMS
  4. בפעולות רגילות, פעולות ההצפנה והפענוח נרשמות ביומן ברמת חומרה INFO. הרשומות האלה נרשמות ביומן כשהמופעים באשכול AlloyDB מאמתים את מפתח Cloud KMS, וזה קורה בערך כל חמש דקות.

  5. אם ל-AlloyDB אין גישה למפתח, הפעולות נרשמות ביומן בתור ERROR.

צפייה בהצדקות גישה למפתח Cloud EKM

אם משתמשים במפתח Cloud EKM, אפשר להשתמש ב-Key Access Justifications כדי לראות את הסיבה לכל בקשת Cloud EKM. בנוסף, על סמך ההצדקה שסופקה, אפשר לאשר או לדחות בקשה באופן אוטומטי. מידע נוסף זמין במאמר בנושא צפייה בהצדקות ופעולה בהתאם להן.