הצפנת משאבים בתחנת עבודה באמצעות CMEK

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

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

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

כברירת מחדל, Cloud Workstations משתמש ב-Google-owned and Google-managed encryption key כדי להצפין משאבי תחנות עבודה כמו מכונות וירטואליות ודיסקים קשיחים, כשהנתונים במצב מנוחה. אם יש לכם דרישות תאימות או רגולטוריות ספציפיות שקשורות למפתחות שמגנים על הנתונים, אתם יכולים להשתמש במפתחות הצפנה בניהול הלקוח (CMEK) באמצעות Cloud Key Management Service ‏(Cloud KMS).

מידע נוסף על CMEK באופן כללי, כולל מתי ולמה כדאי להפעיל אותו, זמין במסמכי התיעוד של Cloud KMS.

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

יצירת הפרויקטים

  1. בדף לבחירת הפרויקט במסוף Google Cloud , בוחרים או יוצרים את Google Cloudהפרויקטים הבאים:

    • פרויקט מפתח מכיל את משאבי Cloud KMS, כולל אוסף מפתחות ומפתח הצפנה סימטרי.

    • פרויקט תחנות עבודה מכיל תחנות עבודה שמוצפנות באמצעות מפתח CMEK.

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

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

  3. מפעילים את ממשקי ה-API הנדרשים בכל פרויקט.

  4. מתקינים ומפעילים את gcloud CLI:

    1. כדי להתקין את gcloud CLI, קראו את המאמר התקנת gcloud CLI ופועלים לפי ההוראות למערכת ההפעלה שלכם.

    2. כדי לאתחל את CLI של gcloud, אפשר לעיין במאמר אתחול CLI של gcloud או להריץ את הפקודה הבאה:

      gcloud init
      

התפקידים הנדרשים

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

כדי לקבל את ההרשאות שדרושות להגדרת CMEK, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:

  • אם יש לכם את התפקיד Cloud KMS Admin, בקשו מהאדמין להקצות לכם את התפקיד הבא כדי שתוכלו ליצור ולנהל משאבי Cloud KMS: Cloud KMS Admin (roles/cloudkms.admin) בפרויקט המפתחות.
  • אם יש לכם את התפקיד Cloud Workstations Admin, אתם צריכים לבקש מהאדמין להקצות לכם את התפקיד הבא כדי שתוכלו ליצור ולעדכן תחנות עבודה: Cloud Workstations Admin (roles/workstations.admin) בפרויקט תחנות העבודה.

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

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

יצירת אוסף מפתחות ומפתח הצפנה

בפרויקט המפתח, יוצרים מפתח ושומרים את מזהה המשאב של המפתח:

  1. יוצרים אוסף מפתחות או בוחרים אוסף קיים.

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

    אפשר לשתף מחזיקי מפתחות בין שירותים, אבל מומלץ להשתמש במפתח אחר לכל משאב מוגן. הפרדת תפקידים

  2. יוצרים מפתח הצפנה סימטרי.

  3. מאחזרים את מזהה המשאב של המפתח ושומרים אותו לשלב מאוחר יותר.

הענקת גישה למפתח ההצפנה

ב-Cloud Workstations נעשה שימוש בחשבונות השירות הבאים כדי לנהל את ההצפנה של המשאבים:

  1. סוכן השירות של Cloud Workstations: חשבון זה משמש את Cloud Workstations כדי לזהות מתי המפתח שלכם מוחלף.

  2. חשבון השירות של Cloud KMS Key: תצטרכו לספק חשבון שירות ש-Cloud Workstations יוכל להשתמש בו כדי לגשת למפתח שלכם להצפנה ולפענוח של משאבים.

הענקת התפקיד Cloud KMS Viewer לסוכן השירות של Cloud Workstations

סוכן השירות של Cloud Workstations מאפשר ל-Cloud Workstations לבצע משימות שירות בפרויקט. כשמפעילים את שירות Cloud Workstations בפרויקט תחנות העבודה, סוכן השירות הזה נוצר באופן אוטומטי. כדי ש-CMEK יפעל בצורה תקינה, צריך להעניק לסוכן השירות של Cloud Workstations עבור פרויקט תחנות העבודה את התפקיד Cloud KMS Viewer (roles/cloudkms.viewer) במפתח Cloud KMS, כדי ש-Cloud Workstations יוכל לזהות את רוטציית המפתחות.

  1. כדי לאחזר את סוכן השירות של Cloud Workstations עבור פרויקט תחנת העבודה, משתמשים בפקודה הבאה:

    gcloud beta services identity create \
        --service=workstations.googleapis.com \
        --project=WORKSTATIONS_PROJECT_ID
    

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

    סוכן השירות של Cloud Workstations משתמש בפורמט הבא:
    service-$WORKSTATIONS_PROJECT_NUMBER@gcp-sa-workstations.iam.gserviceaccount.com.

  2. נותנים לסוכן השירות של Cloud Workstations את התפקיד 'צפייה ב-Cloud KMS' (roles/cloudkms.viewer) במפתח ה-CMEK. כך, Cloud Workstations יכול לזהות רוטציית מפתחות ולהצפין מחדש משאבים בפרויקט לפי הצורך.

    gcloud kms keys add-iam-policy-binding \
        KEY_NAME \
        --keyring=KEY_RING \
        --location=LOCATION \
        --project=KMS_PROJECT_ID \
        --role=roles/cloudkms.viewer \
        --member=CLOUD_WORKSTATIONS_SERVICE_AGENT
    

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

    • KEY_NAME: שם המפתח.
    • KEY_RING: השם של אוסף המפתחות.
    • LOCATION: המיקום שבו נמצא אוסף המפתחות.
    • KMS_PROJECT_ID: מזהה הפרויקט שמכיל את המפתח.
    • CLOUD_WORKSTATIONS_SERVICE_AGENT: סוכן השירות של Cloud Workstations שהתקבל בשלב הקודם.

    כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

הגדרת חשבון שירות של Cloud KMS Key Service

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

  • לאדמין של Cloud Workstations צריכה להיות הרשאה iam.serviceAccounts.actAs בחשבון השירות הזה.
  • לחשבון השירות שתבחרו צריך להיות התפקיד CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) ב-Cloud KMS במפתח שלכם.
  1. כדי ליצור חשבון שירות חדש, משתמשים בפקודה הבאה:

    gcloud iam service-accounts create \
      KMS_KEY_SERVICE_ACCOUNT_NAME \
      --display-name="Service account for Cloud Workstations CMEK" \
      --project=WORKSTATIONS_PROJECT_ID
    

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

    • KMS_KEY_SERVICE_ACCOUNT_NAME: השם של חשבון השירות.
    • WORKSTATIONS_PROJECT_ID: מזהה הפרויקט של תחנת העבודה.

    לחשבון השירות שיצרתם יש כתובת אימייל בפורמט הבא: KMS_KEY_SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com.

    שומרים את כתובת האימייל של חשבון השירות לשלב מאוחר יותר.

  2. כדי להעניק את תפקיד המשתמש בחשבון שירות (roles/iam.serviceAccountUser) ב-IAM של אדמין של Cloud Workstations בחשבון השירות של מפתח Cloud KMS, מריצים את הפקודה הבאה:

    gcloud iam service-accounts add-iam-policy-binding \
        KMS_KEY_SERVICE_ACCOUNT_EMAIL \
        --member="user:CLOUD_WORKSTATIONS_ADMIN_EMAIL" \
        --project=WORKSTATIONS_PROJECT_ID \
        --role=roles/iam.serviceAccountUser
    

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

    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: האימייל של חשבון השירות של Cloud KMS Key.
    • CLOUD_WORKSTATIONS_ADMIN_EMAIL: כתובת האימייל של האדמין של Cloud Workstations.
    • WORKSTATIONS_PROJECT_ID: מזהה הפרויקט של תחנת העבודה.
  3. כדי להעניק לחשבון השירות של מפתח Cloud KMS את התפקיד Cloud KMS CryptoKey Encrypter/Decrypter (roles/cloudkms.cryptoKeyEncrypterDecrypter) במפתח Cloud KMS, מריצים את הפקודה הבאה:

      gcloud kms keys add-iam-policy-binding \
        KEY_NAME \
        --keyring KEY_RING \
        --location LOCATION \
        --project KMS_PROJECT_ID \
        --role roles/cloudkms.cryptoKeyEncrypterDecrypter \
        --member serviceAccount:KMS_KEY_SERVICE_ACCOUNT_EMAIL\
    

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

    • KEY_NAME: שם המפתח.
    • KEY_RING: השם של אוסף המפתחות.
    • LOCATION: המיקום שבו נמצא אוסף המפתחות.
    • KMS_PROJECT_ID: מזהה הפרויקט שמכיל את המפתח.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: האימייל של חשבון השירות של Cloud KMS Key.

    כדי לקבל מידע על כל הדגלים והערכים האפשריים, מריצים את הפקודה עם הדגל --help.

בדיקה של אשכולות תחנות עבודה

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

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

  1. אם עדיין לא יצרתם אשכול תחנות עבודה, אתם יכולים ליצור אותו באמצעות פקודת ה-CLI‏ clusters creategcloud.

    gcloud workstations clusters create \
        WORKSTATIONS_CLUSTER_NAME --region=LOCATION \
        --project=WORKSTATIONS_PROJECT_ID
    

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

    • WORKSTATIONS_CLUSTER_NAME: השם של אשכול תחנות העבודה.
    • LOCATION: שם האזור של אשכול תחנות העבודה.
    • WORKSTATIONS_PROJECT_ID: מזהה הפרויקט של תחנת העבודה.
  2. יוצרים הגדרות לתחנת עבודה עם הגדרות encryption_key.

    כדי ליצור הגדרת תחנת עבודה עם סוג מכונה e2-standard-2, זמן קצוב לתפוגה של חוסר פעילות של 3600s ומשאבי תחנת עבודה מוצפנים ב-CMEK, מריצים את פקודת gcloud CLI הבאה:

    gcloud workstations configs create WORKSTATIONS_CONFIG_NAME \
      --cluster=WORKSTATIONS_CLUSTER_NAME \
      --region=LOCATION \
      --machine-type="e2-standard-2" \
      --idle-timeout=3600 \
      --kms-key="projects/KMS_PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME" \
      --kms-key-service-account="KMS_KEY_SERVICE_ACCOUNT_EMAIL" \
      --project=WORKSTATIONS_PROJECT_ID
    

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

    • WORKSTATIONS_CONFIG_NAME: השם של תצורת תחנת העבודה.
    • WORKSTATIONS_CLUSTER_NAME: השם של אשכול תחנות העבודה.
    • LOCATION: שם האזור של האשכול.
    • KMS_PROJECT_ID: מזהה הפרויקט, מחרוזת ייחודית שמשמשת להבחנה בין הפרויקט שלכם לבין כל הפרויקטים האחרים ב- Google Cloud.
    • KEY_RING: השם של אוסף המפתחות.
    • KEY_NAME: שם המפתח.
    • KMS_KEY_SERVICE_ACCOUNT_EMAIL: האימייל של חשבון השירות של Cloud KMS Key.
    • WORKSTATIONS_PROJECT_ID: מזהה הפרויקט של תחנת העבודה.

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

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

כשנותנים לסוכן השירות של Cloud Workstations את התפקיד Cloud KMS Viewer ‏(roles/cloudkms.viewer) במפתח CMEK, שירות תחנת העבודה יכול לזהות רוטציה של מפתחות ולהצפין מחדש את הדיסק הביתי באמצעות גרסת המפתח הראשי החדשה.

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

מכסות של Cloud KMS ו-Cloud Workstations

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

מפתחות חיצוניים

אתם יכולים להשתמש ב-Cloud External Key Manager‏ (Cloud EKM) כדי להצפין נתונים ב-Google Cloud באמצעות מפתחות חיצוניים שאתם מנהלים.

כשמשתמשים במפתח Cloud EKM, ל-Google אין שליטה על הזמינות של המפתח שמנוהל חיצונית. אם המפתח לא יהיה זמין, לא תוכלו להפעיל את תחנת העבודה.

לשיקולים נוספים לשימוש במפתחות חיצוניים, אפשר לעיין במאמר בנושא Cloud External Key Manager.

המאמרים הבאים