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

1. מבוא

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

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

מה תפַתחו

ב-Codelab הזה, ברצונך להשיק משאבים מוגנים באמצעות Cloud KMS Autokey על ידי יצירה של:

  • משאב תיקייה
  • פרויקט שבו יאוחסנו המפתחות
  • סוכן שירות שיפעל בתור העוזר שלכם בניהול המפתחות
  • פרויקט שיארח את המשאבים המוגנים שלכם
  • מערכי נתונים, דיסקים של אחסון מתמיד (persistent disks) וקטגוריות של Cloud Storage ב-BigQuery שהוצפנו באמצעות מפתח אוטומטי של Cloud KMS

מה צריך להכין

2. יצירת תיקייה

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

  1. נכנסים לדף Manage resources במסוף Google Cloud.
  2. מוודאים ששם המשאב של הארגון מסומן ברשימה הנפתחת של הארגון בחלק העליון של הדף.
  3. לוחצים על 'יצירת תיקייה'.

9328ef3bd4840817.png

  1. בחירת תיקייה רגילה

20a094fe0c7a0924.png

  1. בתיבה Folder name (שם התיקייה), מזינים את השם של התיקייה החדשה. לשיעור ה-Lab הזה, נסו להשתמש ב-"Autokey-Folder"
  2. בקטע 'יעד', לוחצים על 'עיון' ובוחרים את המשאב או התיקייה של הארגון שבמסגרתם רוצים ליצור את התיקייה החדשה.
  3. לוחצים על 'יצירה'.

3. יצירת פרויקט משאבים

חשוב ליצור פרויקט משאב שיכיל את המשאבים – כמו מערכי נתונים של BigQuery, דיסקים של אחסון מתמיד (persistent disks) וקטגוריות של Cloud Storage – שרוצים להצפין באמצעות מפתח אוטומטי של Cloud KMS. אם תנסו ליצור משאבים שמוגנים על ידי Autokey בפרויקט המפתח, Autokey ידחה את הבקשה למפתח חדש. כדי ליצור את פרויקט המשאבים:

  1. נכנסים לדף Manage resources במסוף Google Cloud.
  2. לוחצים על Create Project.

93e4e224322c68a7.png

  1. ברשימה הנפתחת 'בחירת ארגון' שבחלק העליון של הדף, בוחרים באפשרות 'מפתח אוטומטי-תיקייה' .
  2. בחלון New Project (פרויקט חדש) שמופיע, מזינים שם פרויקט ובוחרים חשבון לחיוב לפי הצורך. במסגרת ה-Lab הזה, כדאי להשתמש באפשרות 'משאבים מוצפנים של Autokey'.
  3. בתיבה Location (מיקום), בוחרים בתיקייה Autokey-Folder. המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. ההגדרות אמורות להיראות כך:

187ece37daf50835.png

  1. מעתיקים את מזהה הפרויקט – בדוגמה שלמעלה מזהה הפרויקט הוא 'causal-hour-43319-m4', אבל המזהה שלכם יהיה שונה – לעורך הטקסט שבחרתם.
  2. לוחצים על 'יצירה'
  3. לוחצים על סמל Cloud Shell בפינה השמאלית העליונה של המסך.

16c8476c4991f448.png

  1. אחרי ש-Cloud Shell פעיל, שומרים את מזהה הפרויקט של Autokey כמשתנה באמצעות הפקודה הבאה:
export RESOURCE_PROJECT=<paste your Resource Project ID>

מאחר שמזהה הפרויקט שלי הוא 'key-management-433319', הפקודה שלי נראית כך:

export AUTOKEY_PROJECT=causal-hour-43319-m4
  1. מריצים את הפקודה הבאה כדי להריץ פקודות מהפרויקט הראשי:
gcloud config set project $RESOURCE_PROJECT

כשמוצגת בקשה, מאשרים את Cloud Shell בלחיצה על 'Authorize' (אישור).

a6c755d4921bc728.png

  1. מכיוון שהפרויקט הזה יכיל משאבים, עלינו להפעיל את ממשקי ה-API עבור השירותים שיגנו על המפתח האוטומטי. מריצים את הפקודה הבאה:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com

4. יצירת פרויקט מרכזי

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

  1. נכנסים לדף Manage resources במסוף Google Cloud.
  2. לוחצים על Create Project.

93e4e224322c68a7.png

  1. ברשימה הנפתחת 'בחירת ארגון' שבחלק העליון של הדף, בוחרים באפשרות 'מפתח אוטומטי-תיקייה' .
  2. בחלון New Project (פרויקט חדש) שמופיע, מזינים שם פרויקט ובוחרים חשבון לחיוב לפי הצורך. במעבדה הזו, כדאי לבחור באפשרות 'ניהול מפתחות'
  3. בתיבה 'מיקום', בוחרים באפשרות 'תיקייה אוטומטית' . המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. ההגדרות אמורות להיראות כך:

157894b5c9048c06.png

  1. מעתיקים את מזהה הפרויקט – בדוגמה שלמעלה מזהה הפרויקט הוא 'key-management-433319', אבל המזהה שלכם יהיה שונה – לעורך הטקסט שבחרתם.
  2. לוחצים על 'יצירה'.

5. הכנת פרויקט המפתח של Autokey

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

  1. לוחצים על הסמל של Cloud Shell בפינה השמאלית העליונה של המסך.

16c8476c4991f448.png

  1. אחרי ש-Cloud Shell פעיל, שומרים את מזהה הפרויקט של Autokey כמשתנה באמצעות הפקודה הבאה:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>

מאחר שמזהה הפרויקט שלי הוא 'key-management-433319', הפקודה שלי נראית כך:

export AUTOKEY_PROJECT=key-management-433319
  1. מריצים את הפקודה הבאה כדי להריץ פקודות מהפרויקט הראשי:
gcloud config set project $AUTOKEY_PROJECT

כשמוצגת בקשה, מאשרים את Cloud Shell בלחיצה על 'Authorize' (אישור).

a6c755d4921bc728.png

  1. מריצים את הפקודה הבאה כדי להפעיל את Cloud KMS API:
gcloud services enable cloudkms.googleapis.com  kmsinventory.googleapis.com
  1. מריצים את הפקודה הבאה כדי לשמור את מספר הפרויקט בתור משתנה בשם autoKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
  1. כדי לשמור את כתובת האימייל של חשבון המשתמש כמשתנה, מריצים את הפקודה הבאה:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
  1. הענקת הרשאות אדמין ב-Cloud KMS לפרויקט המפתח למשתמשים עם הרשאת אדמין ב-Cloud KMS
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=user:$KEY_ADMIN_EMAIL

6. הגדרת סוכני השירות של Cloud KMS

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

  1. כדי למצוא את מזהה הארגון, משתמשים בפקודה הבאה:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
  1. מעתיקים את מזהה הארגון – זו התוצאה המספרית שמודגשת באדום
  2. שומרים את מזהה הארגון כמשתנה בשם ORG_ID:
export ORG_ID=<paste your Organization ID>
  1. כדי ליצור את סוכן השירות של Cloud KMS, מריצים את הפקודה הבאה:
gcloud beta services identity create --service=cloudkms.googleapis.com \
    --project=$AUTOKEY_PROJECT_NUMBER
  1. מקצים את תפקיד האדמין ב-Cloud KMS לסוכן השירות:
gcloud projects add-iam-policy-binding $AUTOKEY_PROJECT_NUMBER \
    --role=roles/cloudkms.admin \
    --member=serviceAccount:service-$AUTOKEY_PROJECT_NUMBER@gcp-sa-cloudkms.iam.gserviceaccount.com
  1. הוספת קישור למדיניות IAM כדי שניתן יהיה לצפות בשימוש במפתח Cloud KMS. השימוש במפתחות מספק מידע לכל מפתח, כולל מספר המשאבים המוגנים, הפרויקטים והמוצרים הייחודיים של Google Cloud שמשתמשים במפתח. רמת הפירוט הזו זמינה לכל מי שיש לו תפקיד צפייה ב-Cloud KMS במפתח. מריצים את הפקודה הבאה:
gcloud organizations add-iam-policy-binding $ORGANIZATION_ID \
    --member="serviceAccount:service-org-$ORGANIZATION_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. מקצים לחשבון השירות של Cloud KMS את התפקיד Cloud KMS Organization Service Agent‏ (cloudkms.orgServiceAgent) במשאב הארגוני.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="serviceAccount:service-org-$ORG_ID@gcp-sa-cloudkms.iam.gserviceaccount.com" \
    --role='roles/cloudkms.orgServiceAgent'
  1. מקצים את התפקיד Cloud KMS Protected Resources Viewer במשאב הארגון לכל מי שצריך לראות את פרטי השימוש במפתח.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

7. הקצאת תפקידי משתמשים ב-Autokey

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

השלב הראשון בהענקת התפקיד הוא לשמור את מזהה התיקייה.

  1. מחפשים את מזהה התיקייה באמצעות הפקודה הבאה:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
  1. מעתיקים את מזהה התיקייה – זה החלק שמודגש באדום
  2. שומרים את מזהה התיקייה כמשתנה בשם folder_ID
export FOLDER_ID=<paste the folder ID>

לצורך הסדנה הזו, נגדיר את האדמין של המפתחות בתור משתמש Autokey. עם זאת, בתרחישי שימוש בסביבת הייצור ובארגונים עם יותר מאדם אחד, האדמין של המפתחות צריך להיות שונה מהמפתח שמשתמש ב-Autokey.

  1. מקצים את התפקיד roles/cloudkms.autokeyUser ברמת התיקייה:
gcloud resource-manager folders add-iam-policy-binding \
    $FOLDER_ID --role=roles/cloudkms.autokeyUser \
    --member=user:$KEY_ADMIN_EMAIL

8. הפעלת מפתח אוטומטי של Cloud KMS בתיקיית משאבים

בשלב הזה מפעילים את Cloud KMS Autokey בתיקיית משאבים ומזהים את פרויקט Cloud KMS שיכיל משאבי Autokey לתיקייה הזו. הפעלת Autokey בתיקייה הזו מפעילה את Autokey בכל פרויקטי המשאבים שבתיקייה.

  1. במסוף Google Cloud, נכנסים לדף אמצעי הבקרה של KMS.
  2. לוחצים על 'בחירת תיקייה'

785f338e1860029c.png

  1. בבורר ההקשר, בוחרים את התיקייה שבה רוצים להפעיל את Autokey. זו תהיה אותה תיקייה שיצרתם מקודם, שמכילה את פרויקט המשאבים ואת פרויקט ניהול המפתחות. הוא אמור להיראות כך:

f0ee5141dc6fa40e.png

  1. לוחצים על 'הפעלה'.
  2. לוחצים על 'עיון' כדי לבחור את הפרויקט המרכזי
  3. בוחרים את הפרויקט הרלוונטי לניהול המפתחות ולוחצים על 'שליחה'.

5acd9e68eb972e15.png

תופיע הודעה שמאשרת ש-Cloud KMS Autokey מופעל בתיקייה. הדף 'בקרות KMS' אמור להיראות כך:

8bddb3d688ba842d.png

9. יצירת משאבים מוגנים באמצעות Cloud KMS Autokey

דיסקים לאחסון מתמיד של Compute Engine

Autokey יוצר מפתח חדש לכל דיסק, קובץ אימג' וקובץ אימג' של מכונה באותו מיקום שבו נוצר המשאב.

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

  1. נכנסים לדף Disks במסוף Google Cloud.
  2. לוחצים על Create disk (יצירת דיסק) ומזינים את המאפיינים של הדיסק החדש.
  3. בקטע Encryption (הצפנה), בוחרים באפשרות Cloud KMS key (מפתח Cloud KMS).

dcc63e9ae03c5fbe.png

  1. בהגדרה 'סוג מפתח', בוחרים באפשרות Cloud KMS עם מפתח אוטומטי ולוחצים על Request a new key. תוצג הודעה כשהמפתח נוצר בהצלחה והוא מוכן לשימוש.

4b2283a0d52cc98d.png

  1. כדי לסיים את יצירת הדיסק, לוחצים על Create.

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

קטגוריות של Google Cloud Storage

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

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

  1. נכנסים לדף Create a bucket במסוף Google Cloud.
  2. בוחרים שם קבוע וייחודי ברמת ה-Cloud.
  3. בוחרים מיקום לנתונים.
  4. ממשיכים אל 'בחירת האופן שבו ניתן להגן על נתוני אובייקטים' קטע

e31bbeff5c7aabdf.png

  1. לוחצים על 'בחירת אופן ההגנה על נתוני האובייקטים' כדי להרחיב את הקטע.

9c68ce19dac932de.png

  1. מרחיבים את הקטע Data encryption ובוחרים באפשרות Cloud KMS key. d8caca08891be9dc.png
  2. בהגדרה 'סוג מפתח', בוחרים באפשרות Cloud KMS עם מפתח אוטומטי ולוחצים על Request a new key. תופיע הודעה שמציינת מתי המפתח נוצר בהצלחה והוא מוכן לשימוש.

a10d1ae243c44811.png

  1. כדי לסיים את יצירת הקטגוריה, לוחצים על Create. אם תוצג לכם תיבת דו-שיח שבה מוסבר ש"לא תהיה גישה ציבורית". לוחצים על 'אישור'.

מערך נתונים ב-BigQuery

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

כדי ליצור מערך נתונים ב-BigQuery, קודם כול צריך את התפקיד 'משתמש ב-BigQuery'.

  1. חזרה ל-Cloud Shell
  2. הגדרת Cloud Shell להרצת פקודות מפרויקט המשאבים
gcloud config set project $RESOURCE_PROJECT
  1. מריצים את הפקודה הבאה כדי לשמור את מספר הפרויקט כמשתנה בשם resources_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
  1. הענקת התפקיד 'משתמש ב-BigQuery' לעצמכם
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
    --role=roles/bigquery.user \
    --member=user:$KEY_ADMIN_EMAIL

עכשיו, אחרי שהוקצה לכם התפקיד 'משתמש ב-BigQuery', תוכלו ליצור מערך נתונים ולהגן עליו באמצעות מפתח אוטומטי!

  1. נכנסים לדף BigQuery במסוף Google Cloud.
  2. פועלים לפי ההוראות ליצירת מערך נתונים עד שמגיעים אל 'אפשרויות מתקדמות' > 'הצפנה'.
  3. בקטע 'הצפנה', בוחרים מפתח Cloud KMS.
  4. בקטע Key type (סוג מפתח), בוחרים באפשרות Cloud KMS with Autokey (Cloud KMS עם Autokey) ולוחצים על Request a new key (בקשה למפתח חדש). תוצג הודעה כשהמפתח נוצר בהצלחה והוא מוכן לשימוש.
  5. כדי לסיים את יצירת מערך הנתונים, לוחצים על Create dataset.

10. רוצה לראות את המפתחות שלך?

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

  1. נכנסים לדף Key Inventory במסוף Google Cloud.
  2. אופציונלי: כדי לסנן את רשימת המפתחות, מזינים את מונחי החיפוש בתיבה Filter_list Filter ומקישים על Enter. לדוגמה, אפשר לסנן לפי מיקום, אוסף מפתחות, סטטוס או מאפיינים אחרים של המפתחות.
  3. לוחצים על השם של המפתח שרוצים לראות את פרטי השימוש שלו.
  4. לוחצים על 'סקירה כללית'. שימו לב שלכל משאב שנוצר יש מפתח. כל שם מפתח כולל את שם המשאב שהמפתח מגן עליו (למשל compute-disk או storage-bucket). התכונה Autokey של Cloud KMS מבטיחה שרוטציה של כל מפתח תתוזמן 365 יום אחרי היצירה שלו, ורמת ההגנה שתוקצה לכל מפתח תהיה 'HSM'.

9acbce68acb653d4.png

  1. לוחצים על הכרטיסייה 'מעקב אחר שימוש'. שימו לב לרמת המידע שמוצגת: כל משאב שהמפתח מצפין מוצג כאן, לצד הפרויקט, המיקום ותאריך היצירה.
  2. אופציונלי: כדי לסנן את רשימת המשאבים המוגנים, מזינים את מונחי החיפוש בתיבה 'מסנן_list' ולאחר מכן מקישים על Enter.

7def6fe9a023d063.png

11. מזל טוב

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

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

12. מה השלב הבא?

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

מסמכי עזר