הגנה על משאבים באמצעות מפתחות Cloud KMS

אתם יכולים להגן על הדיסקים, קובצי ה-Snapshot ותמונות המכונה של Compute Engine באמצעות מפתחות של Cloud Key Management Service במקום Google Cloud-powered encryption keys. באמצעות מפתחות Cloud KMS אתם יכולים לשלוט במפתחות ההצפנה שלכם ולנהל אותם, ולעמוד בדרישות תאימות או בדרישות רגולטוריות ספציפיות. מידע נוסף מופיע במאמר בנושא מפתחות הצפנה בניהול הלקוח.

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

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

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

  • להבין את המושגים דיסקים, תמונות, תמונות מצב רגילות ומכונות וירטואליות (VM).
  • מחליטים אם להריץ את Compute Engine ואת Cloud KMS באותו פרויקט ב- Cloud de Confiance by S3NS או בפרויקטים שונים. למידע על מזהי פרויקטים ומספרי פרויקטים ב- Cloud de Confiance , קראו את המאמר זיהוי פרויקטים.
  • בפרויקט Cloud de Confiance שבו פועל Cloud KMS:
    1. מפעילים את Cloud KMS API, אם הוא עדיין לא מופעל.

      התפקידים שנדרשים כדי להפעיל ממשקי API

      כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, אתם יכולים לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים?

      להפעלת ה-API

  • כדי ליצור נפח חדש של Hyperdisk Balanced במצב Confidential, צריך לוודא שתרחיש השימוש נתמך על ידי עיון במגבלות הרלוונטיות ובאזורים הנתמכים.
  • אם עדיין לא עשיתם את זה, תצטרכו להגדיר אימות. אימות הוא התהליך שבו מאמתים את הזהות שלכם כדי לקבל גישה לממשקי API ולשירותים של Cloud de Confiance by S3NS . כדי להריץ קוד או דוגמאות מסביבת פיתוח מקומית, אפשר לבצע אימות ל-Compute Engine באחת מהדרכים האלה:

    צריך לבחור את הכרטיסייה הרלוונטית לאופן שבו תכננתם להשתמש בדוגמאות בדף הזה:

    המסוף

    כשמשתמשים במסוף Cloud de Confiance כדי לגשת לשירותים ולממשקי ה-API של Cloud de Confiance by S3NS , לא צריך להגדיר אימות.

    gcloud

    1. התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם. אחרי שנכנסתם לחשבון, אתחלו את ה-CLI של Google Cloud באמצעות הפקודה הבאה:

      gcloud init
  • הגדרת אזור ותחום כברירת מחדל.
  • REST

    כדי להשתמש בסביבת פיתוח מקומית בדוגמאות של API בארכיטקטורת REST שבדף הזה, צריך להשתמש בפרטי הכניסה שאתם נותנים ל-CLI של gcloud.

      התקינו את ה-CLI של Google Cloud ואז היכנסו ל-CLI של gcloud באמצעות הזהות המאוחדת שלכם.

    מידע נוסף מופיע במאמר אימות לשימוש ב-REST במסמכי האימות של Cloud de Confiance .

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

סוכן השירות של Compute Engine מופיע בפורמט הבא:

service-PROJECT_NUMBER@compute-system.s3ns-system.iam.gserviceaccount.com

אפשר להשתמש ב-Google Cloud CLI כדי להקצות את התפקיד:

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

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

  • ‫KMS_PROJECT_ID: המזהה של הפרויקט ב-Cloud de Confiance שמריץ את Cloud KMS (גם אם זה אותו פרויקט שמריץ את Compute Engine)
  • ‫PROJECT_NUMBER: מספר הפרויקט (לא מזהה הפרויקט ב- Cloud de Confiance ) של הפרויקט ב- Cloud de Confiance שבו פועלים המשאבים של Compute Engine.

כדי לוודא שלסוכן השירות של Compute Engine יש את ההרשאות הנדרשות להגנה על משאבים באמצעות מפתחות Cloud KMS, צריך לבקש מהאדמין להקצות לסוכן השירות של Compute Engine את תפקיד ה-IAM הצפנה/פענוח של Cloud KMS CryptoKey (roles/cloudkms.cryptoKeyEncrypterDecrypter) בפרויקט.

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

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

ההרשאות הנדרשות

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

  • כדי לבצע רוטציה של מפתח הצפנה שמגן על דיסק: compute.disks.updateKmsKey
  • כדי לבצע רוטציה של מפתח הצפנה שמגן על קובץ snapshot: compute.snapshots.updateKmsKey

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

מפרטי הצפנה

המפתחות של Cloud KMS שמשמשים להגנה על הנתונים ב-Compute Engine הם מפתחות AES-256. המפתחות האלה הם מפתחות להצפנת מפתחות הצפנה, והם מצפינים את המפתחות להצפנת נתונים שמצפינים את הנתונים שלכם, ולא את הנתונים עצמם.

הנתונים בדיסקים מוצפנים באמצעות Google Cloud-powered encryption keys. במאמר ברירת המחדל להצפנה במנוחה שבמסמכי האבטחה מפורטים המאפיינים שקשורים להצפנה שמוגדרת כברירת מחדל ב- Cloud de Confiance by S3NS.

במצב סודי ב-Hyperdisk Balanced וב-Cloud HSM, למפתח להצפנת נתונים (DEK) יש מאפייני אבטחה נוספים עם מובלעות שמגובות בחומרה.

מגבלות

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

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

  • כשיוצרים תמונת מצב ברמת האזור (גרסת טרום-השקה (Preview)) מדיסק שמוצפן באמצעות CMEK, צריך ליצור את תמונת המצב באמצעות CMEK אזורי שנמצא באותו מיקום כמו תמונת המצב. כך אפשר לבודד את קובץ ה-snapshot לפי אזור ולהגביר את האמינות שלו.

  • אי אפשר להשתמש במפתחות משלכם עם דיסקים מסוג Local SSD, כי המפתחות מנוהלים על ידי התשתית של Cloud de Confiance by S3NS ונמחקים כשה-VM מסתיים.

  • אפשר להצפין משאבים אזוריים (דיסקים) רק באמצעות מפתח באחד מהמיקומים הבאים של Cloud KMS:

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

    לדוגמה, דיסק באזור us-west1-a יכול להיות מוצפן באמצעות מפתח במיקום הגלובלי, באזור us-west1 או במספר האזורים us.

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

  • אי אפשר לשנות או להסיר את מפתח ההצפנה של קובץ snapshot מואץ או של קובץ אימג'.

  • אי אפשר להסיר מפתח הצפנה של דיסק או של קובץ snapshot, או לשנות את המפתח מ-CMEK ל- Google Cloud-powered key. במקום זאת, צרו עותק של הדיסק או קובץ ה-snapshot וציינו סוג הצפנה חדש לעותק.

    למידע נוסף, ראו הסרת ה-CMEK מדיסק והסרת ה-CMEK מתמונת מצב.

  • אי אפשר להחליף או לשנות את ה-CMEK של אמצעי אחסון אונליין של Confidential Hyperdisk או של אמצעי אחסון אונליין של Hyperdisk שמחוברים לסוגי מכונות שלא נתמכים.

  • אפשר להחליף או לשנות את ה-CMEK רק בסוגי הדיסקים הבאים:

    • כל אמצעי האחסון של Persistent Disk
    • דיסקים וקובצי snapshot שלא נוצרו באמצעות ספק Terraform שלCloud de Confiance by S3NS
    • אמצעי אחסון אופליין ב-Hyperdisk
    • נפחי Hyperdisk Confidential אופליין
    • נפחי Hyperdisk אונליין שמחוברים למכונות מהדור הראשון או השני
    • נפחי Hyperdisk אונליין שמחוברים לסוגי המכונות הבאים מהדור השלישי או הרביעי:

      • ‫A3,‏ A4,‏ A4X ו-A4X Max
      • C3D
      • C4N
      • ‫H3 ו-H4D
      • M3,‏ M4 ו-M4N
      • Z3 ו-Z4D
      • כל גרסאות ה-TPU
      • כל סוגי המכונות בשרת פיזי
  • כדי לשנות או להחליף את ה-CMEK של דיסק או של קובץ snapshot, צריך להשתמש ב-CLI של gcloud או ב-REST. אי אפשר להשתמש במסוף Cloud de Confiance .

  • כדי ליצור קובץ snapshot באמצעות CMEK שונה מה-CMEK ששימש להצפנת דיסק המקור, צריך להשתמש ב-CLI של gcloud או ב-REST. אי אפשר להשתמש במסוף Cloud de Confiance .

  • אם אתם משתמשים בספק Terraform של Cloud de Confiance by S3NS כדי ליצור או לנהל דיסקים ותמונות מצב שמוצפנים באמצעות CMEK, אתם לא יכולים לשנות או להחליף את ה-CMEK. אל תנסו לשנות או להחליף את ה-CMEK באמצעות ה-CLI של gcloud או REST.

  • אי אפשר לשנות את המפתח של נפחי Hyperdisk שנוצרו על ידי שכפול דיסק, אלא אם מחקתם את דיסק המקור ואת כל שאר השכפולים של דיסק המקור.

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

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

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

בפרויקט Cloud de Confiance שבו פועל Cloud KMS, יוצרים אוסף מפתחות ומפתח, כמו שמתואר במאמר יצירת אוספי מפתחות ומפתחות.

הצפנת דיסק אחסון מתמיד (persistent disk) חדש באמצעות CMEK

כדי להצפין Persistent Disk חדש, צריך לספק מפתח במהלך יצירת ה-VM או הדיסק.

המסוף

  1. נכנסים לדף Disks במסוף Cloud de Confiance .

    לפתיחת הדף Disks

  2. לוחצים על Create disk ומזינים את המאפיינים של הדיסק החדש.
  3. בקטע Encryption, בוחרים באפשרות Customer-managed key.
  4. בתפריט הנפתח, בוחרים את המפתח של Cloud KMS שבו רוצים להשתמש כדי להצפין את הדיסק.
  5. לוחצים על Create כדי ליצור את הדיסק.

gcloud

יוצרים דיסק מוצפן באמצעות הפקודה gcloud compute disks create, ומציינים את המפתח באמצעות הדגל --kms-key.

gcloud compute disks create DISK_NAME \
  --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

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

  • ‫DISK_NAME: השם של הדיסק החדש
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud KMS
  • ‫REGION: האזור שבו נמצא המפתח
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק

REST

יוצרים בקשת POST ל-method‏ instances.insert. כדי להצפין דיסק, משתמשים במאפיין diskEncryptionKey עם המאפיין kmsKeyName. לדוגמה, אפשר להצפין דיסק חדש במהלך יצירת ה-VM באמצעות מפתח Cloud KMS, באמצעות הפקודה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
 {
  "type": "PERSISTENT",
  "diskEncryptionKey": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
  "initializeParams": {
   "sourceImage": "SOURCE_IMAGE"
  },
  "boot": true
 }
],
...
}

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

  • ‫PROJECT_ID: המזהה שלCloud de Confiance הפרויקט שבו פועל Compute Engine
  • ‫ZONE: האזור שבו יוצרים את המכונה הווירטואלית
  • ‫MACHINE_TYPE: סוג המכונה, לדוגמה c3-standard-4
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud KMS
  • ‫REGION: האזור שבו נמצא הדיסק
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק
  • ‫SOURCE_IMAGE: קובץ האימג' שבו משתמשים כשיוצרים את המכונה הווירטואלית, לדוגמה: projects/debian-cloud/global/images/debian-13-trixie-v20260902

באופן דומה, אפשר להשתמש ב-method ‏disks.insert כדי ליצור Persistent Disk חדש ולהצפין אותו באמצעות מפתח Cloud KMS:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE
{
 "name": "DISK_NAME",
 "diskEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
 "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE"
}

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

  • ‫PROJECT_ID: המזהה שלCloud de Confiance הפרויקט שבו פועל Compute Engine
  • ‫ZONE: האזור שבו יוצרים את הדיסק
  • ‫SOURCE_IMAGE: קובץ האימג' שבו משתמשים כשיוצרים את הדיסק, לדוגמה: projects/debian-cloud/global/images/debian-13-trixie-v20260902
  • ‫DISK_NAME: שם לדיסק החדש
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud KMS
  • ‫REGION: האזור שבו נמצא הדיסק
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק
  • ‫DISK_TYPE: סוג הדיסק שרוצים ליצור

יצירת דיסק Hyperdisk Balanced במצב סודי

אפשר ליצור דיסק חדש מסוג Hyperdisk Balanced במצב סודי באמצעות מסוףCloud de Confiance ,‏ Google Cloud CLI או REST. כדי ליצור דיסק שלא נמצא במצב סודי, פועלים לפי השלבים שמפורטים במאמר יצירת Persistent Disk מקובץ snapshot שמוצפן באמצעות CMEK.

המסוף

  1. נכנסים לדף Disks במסוף Cloud de Confiance .

    לפתיחת הדף Disks

  2. לוחצים על Create disk ומזינים את המאפיינים של הדיסק החדש.
  3. בקטע Disk settings, בוחרים באפשרות Hyperdisk Balanced בתור סוג הדיסק.
  4. זה שינוי אופציונלי. משנים את הגדרות ברירת המחדל של הדיסק: Size,‏ Provisioned IOPS ו-Provisioned Throughput.
  5. בקטע Encryption, בוחרים באפשרות Cloud KMS key.
  6. ברשימת המפתחות, בוחרים את המפתח של Cloud HSM שבו רוצים להשתמש כדי להצפין את הדיסק.
  7. בקטע Confidential Computing, בוחרים באפשרות Enable Confidential Computing services.
  8. לוחצים על Create כדי ליצור את הדיסק.

gcloud

כדי להצפין דיסק חדש במצב סודי ל-Hyperdisk Balanced, משתמשים בפקודה gcloud compute disks create. מפעילים את המצב הסודי באמצעות הדגל --confidential-compute ומציינים את המפתח באמצעות הדגל --kms-key.

gcloud compute disks create DISK_NAME \
  --type=hyperdisk-balanced \
  --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY \
  --confidential-compute

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

  • ‫DISK_NAME: השם של הדיסק החדש
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud HSM
  • ‫REGION: האזור שבו נמצא המפתח
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק

REST

יוצרים בקשת POST ל-method‏ instances.insert. כדי להצפין דיסק במצב סודי ב-Hyperdisk Balanced, משתמשים במאפיין diskEncryptionKey עם המאפיין kmsKeyName ומגדירים את הדגל enableConfidentialCompute. לדוגמה, אתם יכולים להצפין דיסק חדש במהלך יצירת ה-VM באמצעות מפתח Cloud HSM, באמצעות הפקודה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
"machineType": "zones/ZONE/machineTypes/MACHINE_TYPE",
"disks": [
 {
  "type": "DISK_TYPE",
  "diskEncryptionKey": {
    "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
  "initializeParams": {
   "sourceImage": "SOURCE_IMAGE",
   "enableConfidentialCompute": true
  },
  "boot": true
 }
],
"networkInterfaces": [
  {
   "network": "global/networks/default"
  }
]
}

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

  • ‫DISK_TYPE: סוג הדיסק שרוצים ליצור, לדוגמה hyperdisk-balanced
  • ‫PROJECT_ID: מזהה הפרויקט ב- Cloud de Confiance שבו פועל Compute Engine
  • ‫ZONE: האזור שבו יוצרים את המכונה הווירטואלית
  • ‫MACHINE_TYPE: סוג המכונה, לדוגמה n2d-standard-4
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud HSM
  • ‫REGION: האזור שבו נמצא הדיסק
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק
  • ‫SOURCE_IMAGE: קובץ האימג' שתומך ב-Confidential VM, שבו משתמשים כשיוצרים את ה-VM. לדוגמה: projects/debian-cloud/global/images/debian-13-trixie-v20260902

באופן דומה, אפשר להשתמש ב-method‏ disks.insert כדי ליצור מצב סודי חדש ל-Hyperdisk Balanced:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks?sourceImage=SOURCE_IMAGE
{
 "name": "DISK_NAME",
 "diskEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
  },
 "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
 "enableConfidentialCompute": true
}

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

  • ‫PROJECT_ID: המזהה שלCloud de Confiance הפרויקט שבו פועל Compute Engine
  • ‫ZONE: האזור שבו יוצרים את הדיסק
  • ‫SOURCE_IMAGE: קובץ האימג' שתומך ב-Confidential VM כשיוצרים את הדיסק, לדוגמה: projects/debian-cloud/global/images/debian-13-trixie-v20260902
  • ‫DISK_NAME: שם לדיסק החדש
  • ‫KMS_PROJECT_ID: הפרויקט שבבעלותו המפתח של Cloud HSM
  • ‫REGION: האזור שבו נמצא הדיסק
  • ‫KEY_RING: השם של אוסף המפתחות שכולל את המפתח
  • ‫KEY: שם המפתח ששימש להצפנת הדיסק
  • ‫DISK_TYPE: סוג הדיסק שרוצים ליצור, לדוגמה hyperdisk-balanced.

יצירת תמונת מצב שמוצפנת באמצעות CMEK

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

אי אפשר להמיר קובץ snapshot שמוצפן באמצעות CMEK לשימוש ב-Google Cloud-powered key , אלא אם יוצרים דיסק חדש ואז יוצרים קובץ snapshot של הדיסק הזה.

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

המסוף

  1. נכנסים לדף Snapshots במסוף Cloud de Confiance .

    כניסה לדף Snapshots

  2. לוחצים על Create snapshot.
  3. בקטע Source disk, בוחרים את דיסק המקור של קובץ ה-snapshot. תמונת המצב מוצפנת באופן אוטומטי באמצעות אותו מפתח שמשמש את דיסק המקור.

gcloud

כדי ליצור קובץ snapshot שמוצפן באמצעות CMEK, מציינים את המפתח של Cloud KMS באמצעות הדגל --kms-key. אם דיסק המקור כבר מוצפן באמצעות CMEK, אתם יכולים להשתמש באותו מפתח או לציין מפתח אחר.

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

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

  • כדי ליצור קובץ snapshot במיקום ברירת המחדל שהוגדר מראש או בהתאמה אישית בהגדרות של קובצי ה-snapshot, משתמשים בפקודה gcloud compute snapshots create.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --kms-key=projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY
    
  • לחלופין, כדי לשנות את הגדרות קובץ ה-snapshot וליצור קובץ snapshot במיקום אחסון בהתאמה אישית, צריך לכלול את הדגל --storage-location כדי לציין איפה לאחסן את קובץ ה-snapshot.

    gcloud compute snapshots create SNAPSHOT_NAME \
        --source-disk-zone=SOURCE_ZONE \
        --source-disk=SOURCE_DISK_NAME \
        --snapshot-type=SNAPSHOT_TYPE \
        --storage-location=STORAGE_LOCATION \
        --kms-key=projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY
    
  • (גרסת טרום-השקה (Preview)) כדי ליצור קובץ snapshot ברמת האזור באזור מותר, צריך לכלול את הדגל --region כדי לציין איפה ליצור את קובץ ה-snapshot.

      gcloud beta compute snapshots create SNAPSHOT_NAME \
          --region=SNAPSHOT_SCOPE_REGION \
          --source-disk=SOURCE_DISK_NAME \
          --source-disk-zone=SOURCE_ZONE \
          --snapshot-type=SNAPSHOT_TYPE \
          --kms-key=projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY
    

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

  • ‫SNAPSHOT_NAME: שם לתמונת המצב.
  • ‫SOURCE_ZONE: האזור של דיסק המקור.
  • ‫SOURCE_DISK_NAME: השם של אמצעי האחסון בדיסק שממנו רוצים ליצור קובץ snapshot.
  • ‫KMS_PROJECT_ID: הפרויקט שמכיל את מפתח ההצפנה שמאוחסן ב-Cloud Key Management Service.
  • ‫KEY_REGION: האזור שבו נמצא המפתח של Cloud KMS.
  • ‫KEY_RING: השם של אוסף המפתחות שמכיל את המפתח של Cloud KMS.
  • ‫SNAPSHOT_KEY: השם של מפתח Cloud KMS שמשמש להצפנת קובץ ה-snapshot.
  • ‫SNAPSHOT_TYPE: סוג קובץ ה-snapshot, ‏ STANDARD או ARCHIVE. אם לא מציינים סוג של קובץ snapshot, נוצר קובץ snapshot מסוג STANDARD.
  • ‫STORAGE_LOCATION: אופציונלי: לתמונות מצב בהיקף גלובלי, האזור הגיאוגרפי במספר אזורים של Cloud Storage או האזור של Cloud Storage שבו רוצים לאחסן את תמונת המצב. אפשר לציין רק מיקום אחסון אחד.

    משתמשים בפרמטר --storage-location רק כשרוצים לשנות את מיקום האחסון שהוגדר כברירת מחדל (מוגדר מראש או בהתאמה אישית) בהגדרות של קובץ ה-snapshot.

  • ‫SNAPSHOT_SCOPE_REGION: אופציונלי: לאובייקטים מסוג snapshot ברמת האזור, האזור שבו נמצא ה-snapshot. אם כוללים את הפרמטר הזה, אי אפשר להשתמש בפרמטר --storage-location. השדה STORAGE_LOCATION מוגדר אוטומטית לערך SNAPSHOT_SCOPE_REGION.

REST

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

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

  • כדי ליצור קובץ snapshot במיקום ברירת המחדל שהוגדר מראש או בהתאמה אישית בהגדרות של קובצי ה-snapshot, שולחים בקשת POST אל ה-method‏ snapshots.insert:

    POST https://compute.s3nsapis.fr/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE"
    }
    
  • לחלופין, כדי לשנות את הגדרות קובץ ה-snapshot וליצור קובץ snapshot במיקום אחסון בהתאמה אישית, שולחים בקשת POST ל-method‏ snapshots.insert וכוללים את המאפיין storageLocations בבקשה:

    POST https://compute.s3nsapis.fr/compute/v1/projects/DESTINATION_PROJECT_ID/global/snapshots
    {
        "name": "SNAPSHOT_NAME",
        "sourceDisk": "projects/SOURCE_PROJECT_ID/zones/SOURCE_ZONE/disks/SOURCE_DISK_NAME",
        "snapshotEncryptionKey":  {
         "kmsKeyName": "projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY"
        },
        "snapshotType": "SNAPSHOT_TYPE",
        "storageLocations": [
            "STORAGE_LOCATION"
        ],
    }
    
  • ‫(גרסת טרום-השקה (Preview)) כדי ליצור קובץ snapshot ברמת האזור באזור מותר, שולחים בקשת POST ל-method‏ snapshots.insert ומגדירים את אזור היצירה:

    POST https://compute.s3nsapis.fr/compute/beta/projects/DESTINATION_PROJECT_ID/regions/SNAPSHOT_SCOPE_REGION/snapshots
    {
      "name": "SNAPSHOT_NAME",
      "sourceDisk": "projects/SOURCE_PROJECT_ID/regions/SOURCE_REGION/disks/SOURCE_DISK_NAME",
      "snapshotType": "SNAPSHOT_TYPE",
      "snapshotEncryptionKey": {
        "kmsKeyName":"projects/KMS_PROJECT_ID/locations/KEY_REGION/keyRings/KEY_RING/cryptoKeys/SNAPSHOT_KEY",
      },
    }
    

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

  • ‫DESTINATION_PROJECT_ID: מזהה הפרויקט שבו רוצים ליצור את קובץ ה-snapshot.
  • ‫SNAPSHOT_NAME: שם לתמונת המצב.
  • ‫SOURCE_PROJECT_ID: מזהה הפרויקט של דיסק המקור.
  • ‫SOURCE_ZONE: האזור של דיסק המקור.
  • ‫SOURCE_DISK_NAME: שם הדיסק שממנו רוצים ליצור קובץ snapshot.
  • ‫KMS_PROJECT_ID: הפרויקט שמכיל את מפתח ההצפנה שמאוחסן ב-Cloud Key Management Service.
  • ‫KEY_REGION: האזור שבו נמצא המפתח של Cloud KMS.
  • ‫KEY_RING: השם של אוסף המפתחות שמכיל את המפתח של Cloud KMS.
  • ‫SNAPSHOT_KEY: השם של מפתח Cloud KMS שמשמש להצפנת קובץ ה-snapshot.
  • ‫SNAPSHOT_TYPE: סוג קובץ ה-snapshot, ‏ STANDARD או ARCHIVE. אם לא מציינים סוג של קובץ snapshot, נוצר קובץ snapshot מסוג STANDARD.
  • ‫STORAGE_LOCATION: אופציונלי: לתמונות מצב בהיקף גלובלי, האזור הגיאוגרפי במספר אזורים של Cloud Storage או האזור של Cloud Storage שבו רוצים לאחסן את תמונת המצב. אפשר לציין רק מיקום אחסון אחד.

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

  • ‫SNAPSHOT_SCOPE_REGION: אופציונלי: לתמונות מצב ברמת האזור, האזור שתמונת המצב מוגדרת לו. אם כוללים את הפרמטר הזה, אי אפשר להשתמש בפרמטר storageLocations. הערך של STORAGE_LOCATION מוגדר אוטומטית ל-SNAPSHOT_SCOPE_REGION.

הצפנת תמונה מיובאת באמצעות CMEK

אפשר להצפין תמונה חדשה כשמייבאים תמונה בהתאמה אישית ל-Compute Engine. כדי לייבא קובץ אימג', צריך ליצור קובץ אימג' של דיסק ולדחוס אותו, ואז להעלות את הקובץ הדחוס ל-Cloud Storage.

המסוף

  1. נכנסים לדף Images במסוף Cloud de Confiance .

    כניסה לדף Images

  2. לוחצים על יצירת תמונה.
  3. בשדה Source disk, בוחרים את הדיסק שממנו רוצים ליצור קובץ אימג'.
  4. בקטע Encryption, בוחרים באפשרות Customer-managed key.
  5. בתפריט הנפתח, בוחרים את המפתח של Cloud KMS שבו רוצים להשתמש כדי להצפין את התמונה.
  6. ממשיכים בתהליך יצירת התמונה.

gcloud

כדי לייבא ולהצפין תמונה, משתמשים בפקודה gcloud compute images create. להצפנה בניהול הלקוח, מציינים את מפתח Cloud KMS של התמונה.

gcloud compute images create IMAGE_NAME \
    --source-disk=SOURCE_DISK  \
    --kms-key projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY

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

  • ‫IMAGE_NAME: השם של קובץ האימג' שאתם יוצרים
  • ‫SOURCE_DISK: שם הדיסק שרוצים ליצור לו קובץ snapshot
  • ‫KMS_PROJECT_ID: הפרויקט שמכיל את המפתח של Cloud KMS
  • ‫REGION: האזור שבו נמצא המפתח של Cloud KMS
  • ‫KEY_RING: אוסף המפתחות שמכיל את המפתח של Cloud KMS
  • ‫KEY: שם המפתח שבו משתמשים כדי להצפין את הדיסק החדש

REST

כדי להצפין תמונה מיובאת, יוצרים בקשת POST ל-method‏ images.insert. מציינים את ה-URI לקובץ הדחוס, מוסיפים את המאפיין imageEncryptionKey לבקשה ליצירת התמונה ומציינים את המפתח להצפנת התמונה במאפיין kmsKeyName.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/images

{
 "rawDisk": {
  "source": "http://storage.googleapis.com/example-image/example-image.tar.gz"
  },
 "name": "IMAGE_NAME",
 "sourceType": "RAW",
 "imageEncryptionKey": {
   "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
   }
}

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

  • ‫PROJECT_ID: הפרויקט שבו יוצרים את קובץ האימג' המוצפן
  • ‫IMAGE_NAME: השם של קובץ האימג' שאתם יוצרים
  • ‫KMS_PROJECT_ID: הפרויקט שמכיל את המפתח של Cloud KMS
  • ‫REGION: האזור שבו נמצא המפתח של Cloud KMS
  • ‫KEY_RING: אוסף המפתחות שמכיל את המפתח של Cloud KMS
  • ‫KEY: שם המפתח שבו השתמשתם כדי להצפין את דיסק המקור

יצירת דיסק מ-snapshot שמוצפן באמצעות CMEK

כדי ליצור דיסק חדש מ-snapshot מוצפן:

המסוף

  1. נכנסים לדף Disks במסוף Cloud de Confiance .

    לפתיחת הדף Disks

  2. לוחצים על Create disk ומזינים את המאפיינים של הדיסק החדש.
  3. ב-Source type, בוחרים את קובץ ה-snapshot או את קובץ האימג' שבו רוצים להשתמש.
  4. אופציונלי: אם רוצים לציין מפתח הצפנה חדש, בקטע Encryption מציינים את סוג מפתח ההצפנה שבו רוצים להשתמש, ואז מספקים את פרטי מפתח ההצפנה.

    אם רוצים להסיר את מפתח ההצפנה בניהול הלקוח או באספקת הלקוח, בשדה Encryption משתמשים בערך ברירת המחדל Google Cloud-powered encryption key.

  5. ממשיכים בתהליך יצירת הדיסק.

gcloud

  • כדי ליצור דיסק חדש מ-snapshot מוצפן ברמה הגלובלית, משתמשים בפקודה gcloud compute disks create.

    gcloud compute disks create DISK_NAME \
      --zone=ZONE \
      --source-snapshot=SNAPSHOT_NAME \
      --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
    
  • (גרסת טרום-השקה (Preview)) כדי ליצור דיסק חדש מ-snapshot מוצפן ברמה האזורית, משתמשים בפקודה gcloud compute disks create ומציינים את האזור של ה-snapshot המקורי.

    gcloud compute disks create DISK_NAME \
      --zone=ZONE \
      --source-snapshot=SNAPSHOT_NAME \
      --source-snapshot-region=SOURCE_REGION \
      --kms-key=projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY
    

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

  • ‫DISK_NAME: השם של הדיסק החדש
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן

    כדי להשתמש בתמונה במקום בתמונת מצב, מחליפים את --source-snapshot SNAPSHOT_NAME ב---image IMAGE_NAME.

  • ‫KMS_PROJECT_ID: אופציונלי: הפרויקט שמכיל את המפתח של Cloud KMS

  • ‫REGION: אופציונלי: האזור שבו נמצא המפתח של Cloud KMS

  • ‫SOURCE_REGION: האזור שבו נמצא קובץ ה-snapshot של המקור

  • ‫ZONE: האזור שבו הדיסק החדש ימוקם

  • ‫KEY_RING: אופציונלי: אוסף המפתחות שמכיל את המפתח של Cloud KMS

  • ‫KEY: אופציונלי: השם של מפתח Cloud KMS שמשמש להצפנת הדיסק החדש

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

    • כדי לציין מפתח הצפנה חדש בניהול הלקוח, משתמשים בדגל --kms-key.
    • כדי להשתמש בערך ברירת המחדל Google Cloud-powered encryption key, אל תכללו את הדגל --kms-key.

REST

  • כדי ליצור דיסק חדש מ-snapshot מוצפן ברמת הפרויקט, שולחים בקשת POST אל ה-method‏ compute.disks.insert. השתמשו במאפיין sourceSnapshot כדי לציין את תמונת המצב.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    
    {
      "name": "DISK_NAME",
      "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/global/snapshots/SNAPSHOT_NAME",
      "diskEncryptionKey": {
        "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
      }
    }
    
  • (גרסת טרום-השקה (Preview)) כדי ליצור דיסק חדש מ-snapshot מוצפן ברמת האזור, שולחים בקשת POST אל ה-method‏ compute.disks.insert. משתמשים במאפיין sourceSnapshot כדי לציין את תמונת המצב.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks
    
    {
      "name": "DISK_NAME",
      "sourceSnapshot": "projects/SNAPSHOT_PROJECT_ID/regions/SOURCE_REGION/snapshots/SNAPSHOT_NAME",
      "type": "projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE",
      "zone": "projects/PROJECT_ID/zones/ZONE"
      "diskEncryptionKey": {
        "kmsKeyName": "projects/KMS_PROJECT_ID/locations/REGION/keyRings/KEY_RING/cryptoKeys/KEY"
      }
    }
    

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

  • ‫PROJECT_ID: הפרויקט שבו רוצים ליצור את הדיסק החדש
  • ‫ZONE: האזור שבו יוצרים את הדיסק החדש
  • ‫SOURCE_REGION: האזור שבו נמצא קובץ ה-snapshot של המקור
  • ‫DISK_NAME: השם של הדיסק החדש
  • ‫DISK_TYPE: כתובת ה-URL המלאה או החלקית של סוג הדיסק, לדוגמה, PROJECT_ID/zones/ZONE/diskTypes/pd-ssd
  • ‫SNAPSHOT_PROJECT_ID: הפרויקט שמכיל את קובץ ה-snapshot
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן

    כדי להשתמש בתמונה במקום בתמונת מצב, מחליפים את sourceSnapshot ב-sourceImage.

  • ‫KMS_PROJECT_ID: אופציונלי: הפרויקט שמכיל את המפתח של Cloud KMS

  • ‫REGION: אופציונלי: האזור שבו נמצא המפתח של Cloud KMS

  • ‫KEY_RING: אופציונלי: אוסף המפתחות שמכיל את המפתח של Cloud KMS

  • ‫KEY: אופציונלי: השם של מפתח Cloud KMS שמשמש להצפנת הדיסק החדש

    אם כוללים את diskEncryptionKey, הדיסק מוצפן באמצעות מפתח Cloud KMS שצוין. אם לא כוללים את diskEncryptionKey, הדיסק מוצפן באמצעות Google Cloud-powered encryption key.

צירוף דיסק אתחול שמוצפן באמצעות CMEK ל-VM חדש

המסוף

  1. נכנסים לדף Create an instance במסוף Cloud de Confiance .

    כניסה לדף Create an instance

  2. מציינים את פרטי ה-VM, ובקטע דיסק אתחול לוחצים על Change. לאחר מכן, מבצעים את הפעולות הבאות:

    1. לוחצים על Existing disks.
    2. ברשימה Disk, בוחרים דיסק קיים כדי לצרף אותו למכונה הווירטואלית.
    3. לוחצים על בחירה.
  3. ממשיכים בתהליך היצירה של ה-VM.

gcloud

כדי לצרף דיסק מוצפן כשיוצרים מכונה וירטואלית חדשה, משתמשים בפקודה gcloud compute instances create. משתמשים בדגל --disk כדי לציין את דיסק האתחול המוצפן, כמו בדוגמה הבאה:

gcloud compute instances create VM_NAME \
  ...
  --disk name=DISK_NAME,boot=yes

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

  • ‫VM_NAME: השם של המכונה הווירטואלית שיוצרים
  • ‫DISK_NAME: השם של הדיסק המוצפן

REST

יוצרים בקשת POST ל-method‏ compute.instances.insert. משתמשים במאפיין disks כדי לציין את דיסק האתחול המוצפן, כמו בדוגמה הבאה:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
{
  ...
  "disks": [
    {
      "deviceName": "DISK_ALIAS",
      "source": "projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME"
    }
  ]
}

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

  • ‫PROJECT_ID: הפרויקט שבו יוצרים את המכונה הווירטואלית החדשה
  • ‫ZONE: האזור שבו יוצרים את ה-VM החדש
  • ‫DISK_ALIAS: שם מכשיר ייחודי שישמש ככינוי לדיסק בספרייה /dev/disk/by-id/google-* של מכונה וירטואלית שמריצה מערכת הפעלה של Linux. אפשר להשתמש בשם הזה כדי להפנות לדיסק לפעולות כמו טעינה או שינוי גודל מתוך המכונה. אם לא מציינים שם מכשיר, המכונה הווירטואלית בוחרת שם מכשיר שיוחל על הדיסק הזה כברירת מחדל, בפורמט persistent-disk-x, כאשר x הוא מספר שהוקצה על ידי Compute Engine. השדה הזה רלוונטי רק לנפחים של Persistent Disk.
  • ‫DISK_NAME: השם של הדיסק המוצפן

החלפת ה-CMEK של דיסק או של קובץ snapshot

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

כדי להחליף את מפתח ה-CMEK שמגן על דיסק או על קובץ snapshot, אתם יכולים להשתמש ב-CLI של gcloud או ב-REST. אי אפשר להשתמש במסוףCloud de Confiance או בספק Terraform של Cloud de Confiance by S3NS.

gcloud

כדי להחליף את מפתח Cloud KMS שמשמש להצפנת דיסק, קובץ snapshot של ארכיון או קובץ snapshot רגיל לגרסת מפתח חדשה, משתמשים בפקודה gcloud compute disks update-kms-key או בפקודה gcloud compute snapshots update-kms-key.

  • כדי לבצע רוטציה של גרסת המפתח שמצפינה דיסק:

    gcloud compute disks update-kms-key DISK_NAME \
    --zone ZONE
    
  • כדי לבצע רוטציה של גרסת המפתח שמצפינה תמונת מצב רגילה:

    gcloud compute snapshots update-kms-key SNAPSHOT_NAME
    

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

  • ‫DISK_NAME: השם של הדיסק המוצפן
  • ‫ZONE: האזור שבו נמצא הדיסק המוצפן
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן

REST

כדי להחליף את המפתח של Cloud KMS שמשמש להצפנת דיסק, קובץ snapshot של ארכיון או קובץ snapshot רגיל לגרסת מפתח חדשה, יוצרים בקשת PATCH ל-method‏ compute.disks.updateKmsKey או ל-method‏ compute.snapshots.updateKmsKey.

  • כדי לבצע רוטציה של גרסת המפתח שמצפינה דיסק אחסון מקומי:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/updateKmsKey
    
  • כדי לבצע רוטציה של גרסת המפתח שמצפינה דיסק אזורי:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/updateKmsKey
    
  • כדי לבצע רוטציה של גרסת המפתח שמצפינה תמונת מצב רגילה ברמה הגלובלית:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME/updateKmsKey
    
  • (גרסת טרום-השקה (Preview)) כדי להחליף את גרסת המפתח שמצפינה תמונת מצב רגילה ברמת האזור:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/snapshots/SNAPSHOT_NAME/updateKmsKey
    

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

  • ‫PROJECT_ID: הפרויקט שבו נמצאים הדיסק או קובץ ה-snapshot המוצפנים
  • ‫ZONE: האזור שבו נמצא הדיסק המוצפן
  • ‫REGION: האזור שבו נמצא הדיסק האזורי או קובץ ה-snapshot ברמה האזורית
  • ‫DISK_NAME: השם של הדיסק המוצפן
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן
  • ‫REGION: האזור שבו נמצא הדיסק האזורי או קובץ ה-snapshot ברמה האזורית

התגובה תכלול פריט name עם ערך פעולה שמייצג את רוטציית המפתחות:

  "name": "operation-YYYYYYYYYYYYY-YYYYYYYYYYYYY-YYYYYYYY-YYYYYYYY"
  

כדי לבדוק אם הקריאה ל-API הצליחה, אפשר לדגום את סטטוס הפעולה באמצעות בקשת GET:

  GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/operations/OPERATION_NAME
  

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

  • ‫PROJECT_ID: הפרויקט שבו נמצאים הדיסק או קובץ ה-snapshot המוצפנים
  • ‫ZONE: האזור שבו נמצא הדיסק המוצפן
  • ‫OPERATION_NAME: השם של פעולת הרוטציה של ה-CMEK, בפורמט operation-YYYYYYYYYYYYY-YYYYYYYYYYYYY-YYYYYYYY-YYYYYYYY

התשובה תכלול ערך progress שמייצג את סטטוס רוטציית המפתחות. כשהערך של progress הוא 100, הפעולה הצליחה.

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

שינוי ה-CMEK של דיסק או של קובץ snapshot

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

כשמשנים את ה-CMEK, המפתח להצפנת נתונים (DEK) של המשאב מוצפן מחדש באמצעות המפתח החדש. התהליך הזה לא משנה את ה-DEK ולא משפיע על הביצועים של עומסי העבודה שפועלים.

כדי לשנות את ה-CMEK שמגן על דיסק או על קובץ snapshot, אתם יכולים להשתמש ב-CLI של gcloud או ב-REST. אי אפשר להשתמש במסוףCloud de Confiance או ב-Terraform.

gcloud

כדי לשנות את מפתח ה-Cloud KMS של דיסק או של קובץ snapshot רגיל, משתמשים בדגל --kms-key עם הפקודה gcloud compute disks update-kms-key או עם הפקודה gcloud compute snapshots update-kms-key.

  • כדי לשנות את המפתח של דיסק אחסון מקומי:

    gcloud compute disks update-kms-key DISK_NAME \
    --kms-key=projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME \
    --zone=ZONE
    
  • כדי לשנות את המפתח של דיסק אזורי:

    gcloud compute disks update-kms-key DISK_NAME \
    --kms-key=projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME \
    --region=REGION
    
  • כדי לשנות את המפתח של קובץ snapshot גלובלי:

    gcloud compute snapshots update-kms-key SNAPSHOT_NAME \
    --kms-key=projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME
    
  • כדי לשנות את המפתח של קובץ snapshot ברמה האזורית:

    gcloud beta compute snapshots update-kms-key SNAPSHOT_NAME \
    --kms-key=projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME \
    --regions=REGION
    

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

  • ‫DISK_NAME: השם של הדיסק המוצפן.
  • ‫NEW_KMS_KEY: מזהה המשאב המלא של ה-CMEK החדש.
  • ‫ZONE: האזור שבו נמצא הדיסק.
  • ‫REGION: האזור שבו נמצאים הדיסק או קובץ ה-snapshot.
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן.

REST

כדי לשנות את המפתח, שולחים בקשת POST ל-method‏ compute.disks.updateKmsKey או ל-method‏ compute.snapshots.updateKmsKey וכוללים את kmsKeyName בגוף הבקשה.

  • כדי לשנות את המפתח של דיסק אחסון מקומי:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME/updateKmsKey
    
    {
    "kmsKeyName": "projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME"
    }
    
  • כדי לשנות את המפתח של דיסק אזורי:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/disks/DISK_NAME/updateKmsKey
    
    {
    "kmsKeyName": "projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME"
    }
    
  • כדי לשנות את המפתח של קובץ snapshot גלובלי:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/snapshots/SNAPSHOT_NAME/updateKmsKey
    
    {
    "kmsKeyName": "projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME"
    }
    
  • כדי לשנות את המפתח של קובץ snapshot ברמה האזורית:

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/snapshots/SNAPSHOT_NAME/updateKmsKey
    
    {
    "kmsKeyName": "projects/KEY_PROJECT_ID/locations/global/keyRings/KEY_RING/cryptoKeys/NEW_KEY_NAME"
    }
    

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

  • ‫PROJECT_ID: הפרויקט שמכיל את הדיסק או את קובץ ה-snapshot.
  • ‫ZONE: האזור שבו נמצא הדיסק.
  • ‫REGION: האזור שבו נמצאים הדיסק או קובץ ה-snapshot.
  • ‫DISK_NAME: שם הדיסק.
  • ‫NEW_KEY_NAME: השם של מפתח ה-CMEK החדש.
  • ‫SNAPSHOT_NAME: השם של קובץ ה-snapshot המוצפן.

הסרת ה-CMEK מדיסק

אי אפשר להסיר CMEK מדיסק או לשנות את סוג מפתח ההצפנה. אפשר לבצע אחת מהפעולות הבאות:

כדי ליצור דיסק שמשתמש ב- Google Cloud-powered key מדיסק שמוצפן באמצעות CMEK:

  1. יוצרים קובץ snapshot של הדיסק המוצפן.
  2. משתמשים בקובץ ה-snapshot המוצפן החדש כדי ליצור דיסק חדש.

אחרי שיוצרים את הדיסק החדש, הוא משתמש בהצפנה שמוגדרת כברירת מחדל ב- Cloud de Confiance by S3NS כדי להגן על תוכן הדיסק. אתם יכולים להצפין תמונות מצב נוספות שנוצרו מהדיסק הזה באמצעות CMEK או להשתמש בהצפנת ברירת המחדל.

הסרת ה-CMEK מתמונת מצב

אי אפשר להסיר CMEK מתמונת מצב או לשנות את סוג מפתח ההצפנה. אתם יכולים לשנות את קובץ ה-snapshot כך שישתמש ב-CMEK אחר, או ליצור עותק של קובץ ה-snapshot ולהצפין את העותק באמצעות Google Cloud-powered key.

כדי ליצור קובץ snapshot שמשתמש ב- Google Cloud-powered keyמקובץ snapshot שמוצפן באמצעות CMEK:

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

  2. יוצרים קובץ snapshot של הדיסק החדש:

השבתה או השמדה של CMEK

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

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

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

  • אי אפשר להפעיל מכונה וירטואלית אם לאחד מהדיסקים שמחוברים אליה יש מפתחות שבוטלו.
  • אם דיסק שמשתמש במפתח מחובר למכונה וירטואלית פועלת, והפעלתם את האפשרות כיבוי של המכונה הווירטואלית בזמן ביטול המפתח, המערכת של Compute Engine תכבה את המכונה הווירטואלית תוך 7 שעות.
  • אי אפשר לצרף ל-VM דיסק עם מפתח שבוטל, או ליצור קובץ snapshot מהדיסק.
  • אי אפשר להשתמש בתמונות או בתמונות מצב שמוצפנות באמצעות מפתחות שבוטלו כדי ליצור דיסקים.

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

הגדרת השבתה של VM כשמבטלים מפתח Cloud KMS

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

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

המסוף

כדי להגדיר מכונה וירטואלית כך שתכבה כשמפתח Cloud KMS יבוטל:

  1. מתחילים ליצור מכונה וירטואלית שכוללת דיסק שמוגן באמצעות מפתח Cloud KMS.
  2. פותחים את התפריט Networking, disks, security, management, sole-tenancy.
  3. מרחיבים את הקטע Management.
  4. בקטע Customer Managed Encryption Key (CMEK) revocation policy, בוחרים באפשרות Shut down.

gcloud

משתמשים בפקודה gcloud compute instances create כדי ליצור מכונה וירטואלית, וכוללים את --key-revocation-action-type=stop.

gcloud compute instances create VM_NAME \
  --image IMAGE \
  --key-revocation-action-type=stop

REST

משתמשים ב-method ‏instances.insert כדי ליצור מכונה וירטואלית, ומגדירים את המאפיין "keyRevocationActionType" לערך "STOP". בדוגמה הבאה, ה-VM נוצר מתמונה ציבורית.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances

{
  "machineType": "zones/MACHINE_TYPE_ZONE/machineTypes/MACHINE_TYPE",
  "name": "VM_NAME",
  "disks": [
    {
      "initializeParams": {
        "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
      },
      "boot": true
    }
  ],
  "keyRevocationActionType": "STOP"
}

לחלופין, אתם יכולים להגדיר תבנית של הגדרות מכונה כדי ליצור מכונות וירטואליות שיושבתו כשהמפתח יבוטל, באמצעות Google Cloud CLI או REST.

המסוף

אתם יכולים להשתמש בתבנית של הגדרות מכונה כדי ליצור מכונות וירטואליות שיושבתו כשמפתח Cloud KMS יבוטל.

  1. מתחילים ליצור תבנית חדשה של הגדרות מכונה שכוללת דיסק שמוגן באמצעות מפתח Cloud KMS.
  2. פותחים את התפריט Networking, disks, security, management, sole-tenancy.
  3. מרחיבים את הקטע Management.
  4. בקטע Customer Managed Encryption Key (CMEK) revocation policy, בוחרים באפשרות Shutdown.

gcloud

יוצרים תבנית של הגדרות מכונה באמצעות הפקודה gcloud compute instance-templates create וכוללים את --key-revocation-action-type=stop.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
  --key-revocation-action-type=stop

REST

יוצרים בקשת POST ל-method‏ instanceTemplates.insert. בגוף הבקשה, צריך להגדיר באופן מפורש את כל שדות התצורה הנדרשים. אם רוצים שהמכונות הווירטואליות שנוצרו מהתבנית הזו יכבו כשמבטלים את המפתח, צריך לציין את הערך "keyRevocationActionType":"STOP". לדוגמה, תבנית של הגדרות מכונה עם שדות החובה המינימליים שתיצור מכונות וירטואליות שיושבתו כשהמפתח יבוטל, נראית כך:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceTemplates

{
  "name": "example-template",
  "properties": {
  "machineType": "e2-standard-4",
  "networkInterfaces": [
    {
      "network": "global/networks/default",
      "accessConfigs": [
        {
          "name": "external-IP",
          "type": "ONE_TO_ONE_NAT"
        }
      ]
    }
  ],
  "disks":
  [
    {
      "type": "PERSISTENT",
      "boot": true,
      "mode": "READ_WRITE",
      "initializeParams":
      {
        "sourceImage": "projects/debian-cloud/global/images/family/debian-13"
      }
    }
  ],
  "keyRevocationActionType": "STOP"
  }
}

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

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