שימוש ב-CMEK עם Google Cloud Serverless ל-Apache Spark

כברירת מחדל, Google Cloud ‫Serverless for Apache Spark מצפין תוכן של לקוחות במצב מנוחה. ‫Serverless (בלי שרת) ל-Apache Spark מטפל בהצפנה בשבילכם בלי שתצטרכו לבצע פעולות נוספות. האפשרות הזו נקראת הצפנת ברירת המחדל של Google.

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

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

שימוש ב-CMEK

כדי להשתמש ב-CMEK להצפנת נתונים ש- Google Cloud Serverless for Apache Spark כותב לדיסק אחסון מתמיד (persistent disk) ולמאגר הזמני של Dataproc, צריך לפעול לפי השלבים שבקטע הזה.

אתם יכולים להשתמש ב-Cloud Key Management Service כדי ליצור ולנהל מחזיקי מפתחות ומפתחות, או להשתמש ב-Cloud KMS Autokey כדי ליצור מחזיקי מפתחות ומפתחות באופן אוטומטי ופשוט.

שימוש ב-Cloud KMS Autokey

  1. מפעילים את Autokey בתיקייה שמכילה את הפרויקט.
  2. יצירת ידית מפתח כשיוצרים את הכינוי למפתח, מציינים dataproc.googleapis.com/Batch או dataproc.googleapis.com/Session בתור --resource-type. ‫Autokey יוצר מפתח ומקצה אותו ל-key handle.
  3. נותנים הרשאות לחשבונות שירות ומגדירים את עומס העבודה של Batch או הסשן לפי שלבים 4 ו-5 בקטע יצירה ושימוש במפתחות באופן ידני שבהמשך. כששולחים את עומס העבודה, מציינים את שם המקור של ה-key handle במקום שם המקור של המפתח בשדה kmsKey.

יצירה ושימוש במפתחות באופן ידני

כדי ליצור מפתחות Cloud KMS באופן ידני ולהשתמש בהם עם Serverless for Apache Spark, צריך לבצע את השלבים הבאים.

  1. יוצרים מפתח באמצעות Cloud Key Management Service ‏ (Cloud KMS).

  2. מעתיקים את שם המשאב.

    מעתיקים את שם המשאב.
    שם המשאב בנוי כך:
    projects/PROJECT_ID/locations/REGION/keyRings/KEY_RING_NAME/cryptoKeys/KEY_NAME
    

  3. נותנים לחשבונות השירות של Compute Engine,‏ Dataproc וסוכן השירות של Cloud Storage הרשאה להשתמש במפתח:

    1. כדי להקצות את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות של סוכן השירות של Compute Engine, אפשר לעיין במאמר הגנה על משאבים באמצעות מפתחות Cloud KMS > תפקידים נדרשים. אם חשבון השירות הזה לא מופיע בדף IAM במסוף Google Cloud , לוחצים על הכללת תפקידים שהוקצו על ידי Google כדי להציג אותו.
    2. מקצים את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter לחשבון השירות של סוכן השירות של Dataproc. אפשר להקצות את התפקיד באמצעות Google Cloud CLI:

       gcloud projects add-iam-policy-binding KMS_PROJECT_ID \
       --member serviceAccount:service-PROJECT_NUMBER@dataproc-accounts.iam.gserviceaccount.com \
       --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

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

      KMS_PROJECT_ID: המזהה של פרויקט Google Cloud שבו פועל Cloud KMS. הפרויקט הזה יכול להיות גם הפרויקט שמריץ משאבי Dataproc.

      PROJECT_NUMBER: מספר הפרויקט (לא מזהה הפרויקט) של הפרויקט ב- Google Cloud שבו מופעלים משאבי Dataproc.

    3. מפעילים את Cloud KMS API בפרויקט שבו מופעלים משאבי Serverless for Apache Spark.

    4. אם התפקיד Dataproc Service Agent לא מצורף לחשבון השירות Dataproc Service Agent, צריך להוסיף את ההרשאה serviceusage.services.use לתפקיד המותאם אישית שמצורף לחשבון השירות Dataproc Service Agent. אם התפקיד Dataproc Service Agent מצורף לחשבון השירות Dataproc Service Agent, אפשר לדלג על השלב הזה.

    5. פועלים לפי השלבים כדי להוסיף את המפתח לדלי.

  4. כששולחים עומס עבודה של אצווה:

    1. מציינים את המפתח בפרמטר kmsKey של הבקשה.
    2. מציינים את השם של הקטגוריה של Cloud Storage בפרמטר stagingBucket של חבילת ההעלאה.
  5. כשיוצרים סשן אינטראקטיבי או תבנית סשן:

    1. מציינים את המפתח בפרמטר של הסשן kmsKey.
    2. מציינים את השם של הקטגוריה של Cloud Storage בפרמטר של הסשן stagingBucket.