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

1. מבוא

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

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

מה תפַתחו

ב-codelab הזה תפעילו משאבים מוגנים באמצעות Cloud KMS Autokey על ידי יצירת:

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

מה תצטרכו

  • הארגון ב-Google Cloud
  • כדי להשלים את ה-Lab הזה, למשתמש הראשי שלכם ב-Google Cloud צריכות להיות ההרשאות הבאות ברמת הארגון:
  • Cloud KMS Autokey Admin (roles/cloudkms.autokeyAdmin)
  • אדמין IAM בתיקייה (roles/resourcemanager.folderIamAdmin)
  • משתמש בחשבון לחיוב (roles/billing.user)
  • פרויקטים ב-Google Cloud עם חיוב מופעל
  • חוויית Linux בסיסית

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

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

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

9328ef3bd4840817.png

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

20a094fe0c7a0924.png

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

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

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

  1. נכנסים לדף Manage resources במסוף Google Cloud.
  2. לוחצים על Create Project (יצירת פרויקט).

93e4e224322c68a7.png

  1. ברשימה הנפתחת Select organization בחלק העליון של הדף, בוחרים בתיקייה Autokey-Folder.
  2. בחלון 'פרויקט חדש' שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב לפי הצורך. בשיעור ה-Lab הזה, נתייחס ל-'Autokey Encrypted Resources'
  3. בתיבה 'מיקום', בוחרים בתיקייה 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.

a6c755d4921bc728.png

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

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

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

  1. נכנסים לדף Manage resources במסוף Google Cloud.
  2. לוחצים על Create Project (יצירת פרויקט).

93e4e224322c68a7.png

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

157894b5c9048c06.png

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

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

אחרי שיוצרים את כל הפרויקטים, צריך להגדיר את פרויקט המפתח לשימוש ב-Cloud KMS Autokey.

  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.

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' במשאב Organization.
gcloud organizations add-iam-policy-binding $ORG_ID \
    --member="user:$KEY_ADMIN_EMAIL" \
    --role='roles/cloudkms.protectedResourcesViewer'

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

כדי שהמפתחים יוכלו להשתמש ב-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 Autokey בתיקיית משאבים

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

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

785f338e1860029c.png

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

f0ee5141dc6fa40e.png

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

5acd9e68eb972e15.png

תופיע הודעה שמאשרת שהתכונה 'מפתח אוטומטי' של Cloud KMS מופעלת בתיקייה. הדף 'אמצעי בקרה של 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. בקטע Key type (סוג מפתח), בוחרים באפשרות Cloud KMS with Autokey (Cloud KMS עם Autokey) ולוחצים על Request a new key (בקשה למפתח חדש). תוצג הודעה כשהמפתח ייווצר בהצלחה ויהיה מוכן לשימוש.

4b2283a0d52cc98d.png

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

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

Google Cloud Storage Buckets

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

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

  1. במסוף Google Cloud, עוברים לדף Create a bucket.
  2. בוחרים שם ייחודי וקבוע.
  3. בוחרים מיקום לנתונים.
  4. ממשיכים לקטע Choose how to protect object data (בחירה של דרך להגנה על נתוני אובייקטים).

e31bbeff5c7aabdf.png

  1. לוחצים על 'Choose how to protect object data' כדי להרחיב את הקטע.

9c68ce19dac932de.png

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

a10d1ae243c44811.png

  1. כדי לסיים את יצירת הקטגוריה, לוחצים על Create (יצירה). אם מופיעה תיבת דו-שיח עם ההסבר "Public access will be prevented" (הגישה הציבורית תימנע), לוחצים על Confirm (אישור).

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

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

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

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

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

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

10. עיון במפתחות

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

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

9acbce68acb653d4.png

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

7def6fe9a023d063.png

11. מזל טוב

הצלחתם ליצור משאבי Google Cloud ולהצפין אותם אוטומטית על פי דרישה באמצעות Cloud KMS Autokey!

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

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

העלאת נתונים למקורות מידע מוצפנים באמצעות Autokey

מאמרי עזרה