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

בדף הזה מוסבר איך ליצור מפתחות הצפנה בניהול הלקוח (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. בנוסף, על סמך ההצדקה שסופקה, אפשר לאשר או לדחות בקשה באופן אוטומטי. מידע נוסף זמין במאמר בנושא צפייה בהצדקות ופעולה בהתאם להן.