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

כברירת מחדל, Secure Source Manager מצפין את התוכן של הלקוחות במצב מנוחה. ‫Secure Source Manager מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.

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

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

‫Cloud KMS יכול לפעול בפרויקט נפרד שבו אתם מנהלים באופן מרכזי מפתחות לכמה פרויקטים, או באותוGoogle Cloud פרויקט כמו Secure Source Manager. כדי לתמוך בהפרדת תפקידים ולשפר את השליטה בגישה למפתחות, מומלץ ליצור ולנהל מפתחות בפרויקט נפרד שלא כולל משאבים אחרים של Google Cloud.

מקצים מפתח Cloud KMS כשיוצרים מופע. אי אפשר לשנות את מנגנון ההצפנה של מופע קיים. אם יש לכם מופע מוצפן באמצעות CMEK, אי אפשר לשנות את מנגנון ההצפנה להצפנה שמוגדרת כברירת מחדל ב-Google או להקצות מפתח אחר של Cloud Key Management Service להצפנה.

צריך ליצור את המופע באותו המיקום שבו נמצא מפתח Cloud KMS.

CMEK עם Cloud KMS Autokey

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

מכסות Cloud KMS ו-Secure Source Manager

כשמשתמשים ב-CMEK ב-Secure Source Manager, הפרויקטים יכולים לנצל את מכסות הבקשות הקריפטוגרפיות של Cloud KMS. מכונות וירטואליות שמוצפנות באמצעות CMEK צורכות את המכסות האלה בזמן היצירה. פעולות הצפנה ופענוח באמצעות מפתחות CMEK משפיעות על מכסות Cloud KMS רק אם משתמשים במפתחות חומרה (Cloud HSM) או במפתחות חיצוניים (Cloud EKM). מידע נוסף זמין במאמר בנושא מכסות ב-Cloud KMS.

יצירת מפתח CMEK והענקת הרשאות

בהוראות הבאות מוסבר איך ליצור מפתח ולהעניק לחשבון השירות של Secure Source Manager הרשאות למפתח.

  1. יוצרים מפתח Cloud KMS:

    ידנית

    1. ב Google Cloud פרויקט שבו רוצים לנהל את המפתחות:

      1. הפעלת Cloud KMS API.

      2. כדי ליצור אוסף מפתחות ומפתח, משתמשים באחת מהאפשרויות הבאות:

      המיקום של המפתח ב-Cloud KMS צריך להיות זהה למיקום של הפרויקט שבו רוצים ליצור את מופע Secure Source Manager.

    שימוש ב-Autokey

    1. אם עדיין לא עשיתם זאת, מפעילים את Cloud KMS Autokey.

    2. יוצרים Cloud KMS Autokey חדש KeyHandle:

      curl -H "Content-Type: application/json" \
          -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X POST https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/keyHandles \
          -d '{"resource_type_selector": "securesourcemanager.googleapis.com/Instance"}'
      

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

      • PROJECT: מזהה הפרויקט שבו מופעל Cloud KMS Autokey ושבו רוצים לפרוס מופע של Secure Source Manager
      • LOCATION: המיקום של KeyHandle. הוא צריך להיות זהה למיקום שבו רוצים לפרוס מופע של Secure Source Manager

      הפלט אמור להיראות כך:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "metadata": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.CreateKeyHandleMetadata"
        }
      }
      

      שימו לב ל-OPERATION שמופיע בפלט. תצטרכו את הערך הזה כדי לקבל את מזהה המשאב של המפתח שנוצר.

    3. מציאת מפתח Cloud KMS שמשויך ל-key handle:

      curl -H "X-Goog-User-Project: PROJECT" \
          -H "Authorization: Bearer $(gcloud auth print-access-token)" \
          -X GET https://cloudkms.googleapis.com/v1/projects/PROJECT/locations/LOCATION/operations/OPERATION
      

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

      • PROJECT: מזהה הפרויקט שבו מופעל Cloud KMS Autokey ושבו רוצים לפרוס מופע של Secure Source Manager
      • LOCATION: המיקום של KeyHandle. הוא צריך להיות זהה למיקום שבו רוצים לפרוס מופע של Secure Source Manager
      • OPERATION: המזהה של פעולת בקשת הטיפול במפתח מהפלט של השלב הקודם

      הפלט אמור להיראות כך:

      {
        "name": "projects/PROJECT/locations/LOCATION/operations/OPERATION",
        "done": true,
        "response": {
          "@type": "type.googleapis.com/google.cloud.kms.v1.KeyHandle",
          "name": "projects/PROJECT/locations/LOCATION/keyHandles/KEY_HANDLE",
          "kmsKey": "projects/PROJECT/locations/LOCATION/keyRings/autokey/cryptoKeys/KEY_NAME",
          "resourceTypeSelector": "securesourcemanager.googleapis.com/Instance"
        }
      }
      

      הערך של הרכיב kmsKey בפלט הוא מזהה המשאב המלא של המפתח שנוצר על ידי Cloud KMS Autokey עבור המשאב הזה. אפשר להשתמש במזהה המשאב הזה באותו אופן שבו משתמשים במזהה משאב של כל משאב אחר ב-Cloud KMS.

  2. אם אתם יוצרים את המופע הראשון של Secure Source Manager בפרויקט, תצטרכו ליצור ידנית את סוכן השירות של Secure Source Manager על ידי הפעלת הפקודה הבאה:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    כאשר PROJECT הוא מזהה הפרויקט שבו תיצרו את המופע של Secure Source Manager.

    אחרי שיוצרים את חשבון השירות לכל מוצר ולכל פרויקט (P4SA), צריך להקצות את התפקיד 'סוכן שירות של Secure Source Manager' (roles/securesourcemanager.serviceAgent) לחשבון המשתמש service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, אחרת יצירת המופע תיכשל.

  3. מקצים את תפקיד ה-IAM של מצפין/מפענח של מפתח הצפנה (roles/cloudkms.cryptoKeyEncrypterDecrypter) לחשבון השירות של Secure Source Manager. צריך לתת את ההרשאה הזו למפתח שיצרתם.

    המסוף

    1. עוברים לדף ניהול מפתחות.

      כניסה אל Key Management

    2. בוחרים את מחזיק המפתחות שרוצים להשתמש בו, פותחים את הדף Key ring details ובוחרים את המפתח שיצרתם.

    3. נותנים גישה לחשבון השירות של Secure Source Manager:

      1. לוחצים על הוספת גורם ראשי.
      2. מוסיפים את חשבון השירות של Secure Source Manager. חשבון השירות הוא service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, כאשר PROJECT-NUMBER הוא מספר הפרויקט של הפרויקט שבו מופעל Secure Source Manager. Google Cloud
      3. ברשימת התפקידים Select a role בוחרים באפשרות Cloud KMS > Cloud KMS CryptoKey Encrypter/Decrypter.
      4. לוחצים על SAVE.
    4. חוזרים על השלב הקודם כדי להעניק גישה לחשבון שדרכו ייצור מופע של Secure Source Manager.

    5. חוזרים לדף Key management, בוחרים את מחזיק המפתחות ופותחים את הדף Key ring details. אחר כך בוחרים שוב את המקש.

    6. לוחצים על הצגת חלונית המידע. התפקידים אמורים להופיע בעמודה תפקיד/חבר.

    gcloud

    1. מריצים את הפקודה הבאה כדי להעניק גישה לחשבון השירות של Secure Source Manager:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

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

      • PROJECT: מזהה הפרויקט שמכיל את המפתח
      • KEY_NAME: שם המפתח
      • LOCATION: המיקום של המפתח. המיקום הראשי צריך להיות זהה למיקום הפרויקט שבו רוצים לפרוס מופע של Secure Source Manager
      • KEY_RING: השם של אוסף המפתחות
      • PROJECT_NUMBER: מספר הפרויקט של הפרויקט שבו מופעל Secure Source ManagerGoogle Cloud
    2. חוזרים על השלב הקודם כדי להעניק גישה לחשבון שדרכו ייצור מופע של Secure Source Manager.

    מידע נוסף על הפקודה הזו זמין במאמר gcloud kms keys add-iam-policy-binding.

הסרת הגישה

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

מומלץ לבטל את ההרשאות מחשבון השירות של Secure Source Manager לפני השבתה או השמדה של מפתח. שינויים בהרשאות מתעדכנים תוך שניות, כך שאפשר לראות את ההשפעות של השבתה או מחיקה של מפתח.

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

משתמשים עם תפקיד של מנהל מופע או בעלים של מופע ב-Secure Source Manager יכולים למחוק את המופע.

מדיניות הארגון ל-CMEK

‫Secure Source Manager תומך באילוצים של מדיניות הארגון שיכולים לדרוש הגנה באמצעות CMEK.

כללי המדיניות יכולים להגביל את השימוש במפתחות CryptoKey ב-Cloud KMS להגנה באמצעות CMEK.

  • כש-Secure Source Manager API נמצא בDenyרשימת השירותים של המדיניותconstraints/gcp.restrictNonCmekServices של האילוץ constraints/gcp.restrictNonCmekServices, ‏ Secure Source Manager מסרב ליצור מופעים חדשים שלא מוגנים באמצעות CMEK.

  • כשמגדירים את constraints/gcp.restrictCmekCryptoKeyProjects, Secure Source Manager יוצר מופעים שמוגנים באמצעות CMEK, ומוגנים באמצעות CryptoKey מפרויקט, מתיקייה או מארגון מורשים.

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

מה השלב הבא?