מידע על Codelab זה
1. מבוא
מפתח אוטומטי של Cloud KMS מפשט את היצירה של מפתחות הצפנה בניהול הלקוח (CMEK) והשימוש בו, באמצעות אוטומציה של הקצאה והקצאה של משאבים. עם 'מפתח אוטומטי', אין צורך לתכנן ולהקצות את אוספי המפתחות, המפתחות וחשבונות השירות שלכם לפני שיש בהם צורך. במקום זאת, מפתח אוטומטי יוצר את המפתחות שלך לפי דרישה בזמן יצירת המשאבים, תוך שימוש בהרשאות שהוענקו במקום באדמינים ב-Cloud KMS.
השימוש במפתחות שנוצרו על ידי מפתח אוטומטי יכול לעזור לכם לפעול באופן עקבי בהתאם לתקנים המקובלים בתחום ולשיטות המומלצות לאבטחת מידע, כולל רמת ההגנה של HSM, הפרדת סמכויות, רוטציית מפתחות, מיקום וספציפיות למפתחות. מפתח אוטומטי יוצר מפתחות שפועלים בהתאם להנחיות הכלליות ולהנחיות שספציפיות לסוג המשאב לשירותי Google Cloud שמשתלבים עם Cloud KMS Autokey. אחרי שיוצרים אותם, מפתחות המבוקשים באמצעות פונקציית Autokey זהים לאלה של מפתחות Cloud HSM אחרים עם אותן הגדרות.
מה תפַתחו
ב-Codelab הזה, ברצונך להשיק משאבים מוגנים באמצעות Cloud KMS Autokey על ידי יצירה של:
- משאב של תיקייה
- פרויקט שיכיל את המפתחות שלך
- סוכן שירות שישמש כעוזר הדיגיטלי לניהול מפתחות
- פרויקט שיארח את המשאבים המוגנים שלכם
- מערכי נתונים, דיסקים של אחסון מתמיד (persistent disks) וקטגוריות של Cloud Storage ב-BigQuery שהוצפנו באמצעות מפתח אוטומטי של Cloud KMS
מה צריך להכין
- ארגון ב-Google Cloud
- כדי להשלים את שיעור ה-Lab הזה, לחשבון המשתמש ב-Google Cloud צריכים להיות התפקידים הבאים ברמת הארגון:
- אדמין של מפתח אוטומטי ב-Cloud KMS (roles/cloudkms.autokeyAdmin)
- אדמין IAM בתיקיות (roles/resourcemanager.folderIamAdmin)
- משתמש בחשבון לחיוב (roles/billing.user)
- פרויקטים ב-Google Cloud שהחיוב מופעל בהם
- חוויית Linux בסיסית
2. יצירת תיקייה
התיקיות הן צמתים בהיררכיית המשאבים של Cloud Platform. תיקייה יכולה להכיל פרויקטים, תיקיות אחרות או שילוב של השניים. משאבי הארגון יכולים להשתמש בתיקיות כדי לקבץ פרויקטים בהיררכיה של צומת המשאב של הארגון. כדי ליצור תיקייה:
- נכנסים לדף Manage resources במסוף Google Cloud.
- מוודאים ששם המשאב של הארגון נבחר ברשימה הנפתחת של הארגון שבראש הדף.
- לוחצים על 'יצירת תיקייה'
- בחירת תיקייה רגילה
- בתיבה 'שם התיקייה', מזינים את שם התיקייה החדשה. לשיעור ה-Lab הזה, תוכלו להשתמש ב-"Autokey-Folder"
- בקטע 'יעד', לוחצים על 'עיון' ובוחרים את המשאב או התיקייה של הארגון שבהם רוצים ליצור את התיקייה החדשה.
- לוחצים על 'יצירה'.
3. יצירת פרויקט משאבים
חשוב ליצור פרויקט משאב שיכיל את המשאבים – כמו מערכי נתונים של BigQuery, דיסקים של אחסון מתמיד (persistent disks) וקטגוריות של Cloud Storage – שרוצים להצפין באמצעות מפתח אוטומטי של Cloud KMS. אם תנסו ליצור משאבים שמוגנים באמצעות מפתח אוטומטי בפרויקט המפתח, הבקשה למפתח חדש תדחה. כדי ליצור את פרויקט המשאב:
- נכנסים לדף Manage resources במסוף Google Cloud.
- לוחצים על Create Project.
- ברשימה הנפתחת 'בחירת ארגון' שבחלק העליון של הדף, בוחרים באפשרות 'מפתח אוטומטי-תיקייה' .
- בחלון 'פרויקט חדש' שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב לפי הצורך. לשיעור ה-Lab הזה, כדאי להשתמש באפשרות 'משאבים מוצפנים באמצעות מפתח אוטומטי'
- בתיבה 'מיקום', בוחרים באפשרות 'תיקייה אוטומטית' . המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. ההגדרות שלכם אמורות להיראות כך:
- מעתיקים את מזהה הפרויקט – בדוגמה שלמעלה מזהה הפרויקט הוא 'causal-hour-43319-m4' אבל התעודה המזהה שלכם תהיה שונה בכלי לעריכת טקסט שתבחרו.
- לוחצים על 'יצירה'
- לוחצים על הסמל של Cloud Shell בפינה השמאלית העליונה של המסך.
- ברגע ש-Cloud Shell יופעל, מריצים את הפקודה הבאה כדי לשמור את מזהה הפרויקט של מפתח אוטומטי בתור משתנה:
export RESOURCE_PROJECT=<paste your Resource Project ID>
כי מזהה הפרויקט שלי הוא "key-management-433319" הפקודה שלי נראית כך:
export AUTOKEY_PROJECT=causal-hour-43319-m4
- מריצים את הפקודה הבאה כדי להפעיל פקודות מה-Key Project:
gcloud config set project $RESOURCE_PROJECT
כשמופיעה בקשה, מאשרים את Cloud Shell על ידי לחיצה על 'מתן הרשאה'.
- מכיוון שהפרויקט הזה יכיל משאבים, עלינו להפעיל את ממשקי ה-API עבור השירותים שיגנו על המפתח האוטומטי. מריצים את הפקודה הבאה:
gcloud services enable storage.googleapis.com bigquery.googleapis.com compute.googleapis.com
4. יצירת פרויקט מרכזי
מומלץ ליצור פרויקט שיכלול משאבי Cloud KMS שנוצרו על ידי Autokey. הוא ייקרא 'פרויקט המפתח' בעתיד. אתם יכולים ליצור את פרויקט המפתח באותה תיקייה שבה אתם מתכננים להפעיל את המפתח האוטומטי. אסור ליצור משאבים אחרים בתוך הפרויקט המרכזי. אם תנסו ליצור משאבים שמוגנים באמצעות מפתח אוטומטי בפרויקט המפתח, הבקשה למפתח חדש תדחה. כדי ליצור את הפרויקט המרכזי:
- נכנסים לדף Manage resources במסוף Google Cloud.
- לוחצים על Create Project.
- ברשימה הנפתחת 'בחירת ארגון' שבחלק העליון של הדף, בוחרים באפשרות 'מפתח אוטומטי-תיקייה' .
- בחלון 'פרויקט חדש' שמופיע, מזינים שם לפרויקט ובוחרים חשבון לחיוב לפי הצורך. לשיעור ה-Lab הזה, תוכלו להיעזר ב'ניהול מפתחות'
- בתיבה 'מיקום', בוחרים באפשרות 'תיקייה אוטומטית' . המשאב הזה יהיה ההורה ההיררכי של הפרויקט החדש. ההגדרות שלכם אמורות להיראות כך:
- מעתיקים את מזהה הפרויקט – בדוגמה שמעל מזהה הפרויקט הוא 'key-management-433319' אבל התעודה המזהה שלכם תהיה שונה בכלי לעריכת טקסט שתבחרו.
- לוחצים על 'יצירה'.
5. הכנת פרויקט המפתח האוטומטי
עכשיו, אחרי שנוצר כל פרויקט, הגיע הזמן להגדיר לפרויקט המפתח שימוש במפתח אוטומטי של Cloud KMS.
- לוחצים על הסמל של Cloud Shell בפינה השמאלית העליונה של המסך.
- ברגע ש-Cloud Shell יופעל, מריצים את הפקודה הבאה כדי לשמור את מזהה הפרויקט של מפתח אוטומטי בתור משתנה:
export AUTOKEY_PROJECT=<paste your Autokey Project ID>
כי מזהה הפרויקט שלי הוא "key-management-433319" הפקודה שלי נראית כך:
export AUTOKEY_PROJECT=key-management-433319
- מריצים את הפקודה הבאה כדי להפעיל פקודות מה-Key Project:
gcloud config set project $AUTOKEY_PROJECT
כשמופיעה בקשה, מאשרים את Cloud Shell על ידי לחיצה על 'מתן הרשאה'.
- כדי להפעיל את ממשק Cloud KMS API, מריצים את הפקודה הבאה
gcloud services enable cloudkms.googleapis.com kmsinventory.googleapis.com
- מריצים את הפקודה הבאה כדי לשמור את מספר הפרויקט בתור משתנה בשם autoKEY_PROJECT_NUMBER
export AUTOKEY_PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)")
- כדי לשמור את כתובת האימייל של חשבון המשתמש כמשתנה, מריצים את הפקודה הבאה:
export KEY_ADMIN_EMAIL=<paste your Principal's email>
- הענקת הרשאות אדמין ב-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.
- כדי למצוא את מזהה הארגון, משתמשים בפקודה הבאה:
gcloud organizations list | grep -P -i 'ID:' | grep -i '[0-9]'
- מעתיקים את מזהה הארגון – זו התוצאה המספרית שמודגשת באדום
- שומרים את מזהה הארגון כמשתנה בשם ORG_ID:
export ORG_ID=<paste your Organization ID>
- כדי ליצור את סוכן השירות של Cloud KMS, מריצים את הפקודה הבאה:
gcloud beta services identity create --service=cloudkms.googleapis.com \
--project=$AUTOKEY_PROJECT_NUMBER
- מקצים את תפקיד האדמין ב-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
- הוספת קישור למדיניות 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'
- מקצים לחשבון השירות ב-Cloud KMS את התפקיד 'סוכן שירות ארגוני של Cloud KMS' (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'
- מקצים את התפקיד Cloud KMS Protected Resources Viewer במשאב הארגון לכל מי שצריך לראות את פרטי השימוש העיקריים.
gcloud organizations add-iam-policy-binding $ORG_ID \
--member="user:$KEY_ADMIN_EMAIL" \
--role='roles/cloudkms.protectedResourcesViewer'
7. הקצאת תפקידי משתמש במפתח אוטומטי
כדי שהמפתחים שלכם יוכלו להשתמש במפתח אוטומטי, עליכם להקצות להם את התפקיד הנדרש. אפשר להקצות את התפקיד ברמת התיקייה או הפרויקט. התפקיד הזה מאפשר למפתחים לבקש מפתחות מסוכן השירות של Cloud KMS בזמן יצירת משאבים בתיקייה או בפרויקט הזה.
השלב הראשון בהענקת התפקיד הוא לשמור את מזהה התיקייה.
- מאתרים את מזהה התיקייה באמצעות הפקודה הבאה:
gcloud projects describe $AUTOKEY_PROJECT | grep 'id' | grep -P -i '[0-9]+'
- מעתיקים את מזהה התיקייה – זה החלק שמודגש באדום
- שומרים את מזהה התיקייה כמשתנה בשם folder_ID
export FOLDER_ID=<paste the folder ID>
לצורך שיעור ה-Lab הזה נגדיר את האדמין של המפתח כמשתמש במפתח אוטומטי. עם זאת, בתרחישים לדוגמה בסביבת הייצור ובארגונים עם יותר מאדם אחד, האדמין של המפתח צריך להיות שונה מהמפתח שמשתמש ב-Autokey.
- מקצים את התפקיד role/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 לתיקייה הזו. הפעלת מפתח אוטומטי בתיקייה הזו מפעילה את המפתח האוטומטי בכל פרויקטי המשאבים שבתיקייה.
- במסוף Google Cloud, נכנסים לדף אמצעי הבקרה של KMS.
- לוחצים על 'בחירת תיקייה'
- בכלי לבחירת הקשר, בוחרים את התיקייה שבה רוצים להפעיל את המפתח האוטומטי. זו תהיה התיקייה שיצרתם קודם לכן, שתכיל את פרויקט המשאב שלכם ואת פרויקט ניהול המפתחות. זה אמור להיראות כך:
- לוחצים על 'הפעלה'.
- לוחצים על 'עיון' כדי לבחור את הפרויקט המרכזי
- בוחרים את הפרויקט הרלוונטי לניהול המפתחות ולוחצים על 'שליחה'.
הודעה שמאשרת שהמפתח האוטומטי של Cloud KMS מופעל בתיקייה. הדף 'בקרות KMS' אמור להיראות כך:
9. יצירת משאבים מוגנים באמצעות מפתח אוטומטי של Cloud KMS
דיסקים לאחסון מתמיד של Compute Engine
המפתח האוטומטי יוצר מפתח חדש לכל דיסק, תמונה ותמונת מכונה באותו מיקום שבו נמצא המשאב שנוצר.
כדי ליצור דיסק, מבצעים את השלבים הבאים:
- נכנסים לדף Disks במסוף Google Cloud.
- לוחצים על Create disk (יצירת דיסק) ומזינים את המאפיינים של הדיסק החדש.
- בקטע Encryption (הצפנה), בוחרים מפתח Cloud KMS.
- בהגדרה 'סוג מפתח', בוחרים באפשרות Cloud KMS עם מפתח אוטומטי ולוחצים על Request a new key. תופיע הודעה שמציינת מתי המפתח נוצר בהצלחה והוא מוכן לשימוש.
- כדי לסיים את יצירת הדיסק, לוחצים על Create.
אפשר לבצע תהליך דומה כדי ליצור משאבים מוגנים של מכונות וירטואליות, של קובצי אימג' ושל קובצי אימג' במכונות.
קטגוריות של Google Cloud Storage
Autokey יוצר מפתח חדש באותו מיקום שבו נמצאת הקטגוריה. המפתח שנוצר על ידי המפתח האוטומטי מוקצה כמפתח ברירת המחדל של הקטגוריה.
המפתח האוטומטי לא יוצר מפתחות לאובייקטים. כברירת מחדל, אובייקטים שנוצרים בקטגוריה משתמשים במפתח ברירת המחדל של הקטגוריה. אם רוצים להצפין אובייקט באמצעות מפתח שאינו מפתח ברירת המחדל של הקטגוריה, אפשר ליצור CMEK באופן ידני ולהשתמש במפתח הזה בזמן יצירת האובייקט.
- במסוף Google Cloud, נכנסים לדף Create a bucket.
- מומלץ לבחור שם קבוע וייחודי בכל העולם.
- בוחרים מיקום לנתונים.
- ממשיכים אל 'בחירת האופן שבו ניתן להגן על נתוני אובייקטים' קטע
- צריך ללחוץ על 'בחירת איך להגן על נתוני האובייקטים' כדי להרחיב את הקטע
- מרחיבים את הקטע 'הצפנת נתונים' ובוחרים מפתח Cloud KMS.
- בהגדרה 'סוג מפתח', בוחרים באפשרות Cloud KMS עם מפתח אוטומטי ולוחצים על Request a new key. תופיע הודעה שמציינת מתי המפתח נוצר בהצלחה והוא מוכן לשימוש.
- כדי לסיים את יצירת הקטגוריה, לוחצים על Create. אם תוצג לכם תיבת דו-שיח שבה מוסבר ש"לא תהיה גישה ציבורית". לוחצים על 'אישור'.
מערך נתונים ב-BigQuery
לכל מערך נתונים חדש, המפתח האוטומטי יוצר מפתח חדש באותו המיקום שבו נמצא המשאב עצמו, שהופך למפתח ברירת המחדל של מערך הנתונים. המפתח האוטומטי לא יוצר מפתחות לטבלאות, לשאילתות, לטבלאות זמניות או למודלים. כברירת מחדל, המשאבים האלה מוגנים באמצעות מפתח ברירת המחדל של מערך הנתונים. אם רוצים להגן על משאב במערך נתונים באמצעות מפתח שאינו מפתח ברירת המחדל של מערך הנתונים, אפשר ליצור CMEK באופן ידני ולהשתמש במפתח הזה כשיוצרים את המשאב.
כדי ליצור מערך נתונים ב-BigQuery, קודם צריך להיות לכם התפקיד 'משתמש ב-BigQuery'.
- חזרה ל-Cloud Shell
- הגדרת Cloud Shell להפעלת פקודות מפרויקט המשאב
gcloud config set project $RESOURCE_PROJECT
- מריצים את הפקודה הבאה כדי לשמור את מספר הפרויקט כמשתנה בשם resources_PROJECT_NUMBER
export RESOURCE_PROJECT_NUMBER=$(gcloud projects list --filter="$(gcloud config get-value project)" --format="value(PROJECT_NUMBER)")
- הקצאת התפקיד 'משתמש ב-BigQuery'
gcloud projects add-iam-policy-binding $RESOURCE_PROJECT_NUMBER \
--role=roles/bigquery.user \
--member=user:$KEY_ADMIN_EMAIL
עכשיו, אחרי שהוקצה לכם התפקיד 'משתמש ב-BigQuery', תוכלו ליצור מערך נתונים ולהגן עליו באמצעות מפתח אוטומטי!
- נכנסים לדף ב-BigQuery במסוף Google Cloud.
- פועלים לפי ההוראות ליצירת מערך נתונים עד שמגיעים לאפשרויות מתקדמות > הצפנה.
- בקטע 'הצפנה', בוחרים מפתח Cloud KMS.
- בהגדרה 'סוג מפתח', בוחרים באפשרות Cloud KMS עם מפתח אוטומטי ולוחצים על Request a new key. תופיע הודעה שמציינת מתי המפתח נוצר בהצלחה והוא מוכן לשימוש.
- כדי לסיים את יצירת מערך הנתונים, לוחצים על Create dataset.
10. רוצה לראות את המפתחות שלך?
בשלב הזה, תכירו את המפתחות האוטומטי של Cloud KMS שנוצרו בשבילכם בדף 'מאגר מפתחות'. בדף 'מלאי מפתחות' תוכלו למצוא מידע מקיף על המפתחות הקריפטוגרפיים בפרויקט. לתשומת ליבכם: ייתכן עיכוב בהצגת הנתונים. לדוגמה, אם יוצרים משאב מוגן חדש, המשאב המוגן וגרסת המפתח המשויכת לא מתווספות באופן מיידי לכרטיסייה 'מעקב אחר שימוש'. כאן מפורטות מגבלות נוספות.
- נכנסים לדף Key Inventory במסוף Google Cloud.
- אופציונלי: כדי לסנן את רשימת המקשים, מזינים את מונחי החיפוש בתיבה filter_list 'סינון' ומקישים על Enter. לדוגמה, אפשר לסנן לפי מיקום, אוסף מפתחות, סטטוס או מאפיינים אחרים של המפתחות.
- לוחצים על השם של המפתח שרוצים לראות את פרטי השימוש שלו.
- לוחצים על 'סקירה כללית'. שימו לב שלכל משאב שנוצר יש מפתח. כל שם מפתח כולל את שם המשאב שעליו מגן המפתח (לדוגמה, 'compute-disk' או 'storage-bucket'). מפתח אוטומטי של Cloud KMS מבטיח שכל מפתח מתוזמן לרוטציה 365 ימים אחרי יצירתו, ולכל מפתח מוקצה HSM רמת הגנה.
- לוחצים על הכרטיסייה 'מעקב אחר שימוש'. שימו לב לרמת המידע שמוצגת: כל משאב שהמפתח מצפין מוצג כאן, לצד הפרויקט, המיקום ותאריך היצירה.
- אופציונלי: כדי לסנן את רשימת המשאבים המוגנים, מזינים את מונחי החיפוש בתיבה 'מסנן_list' ולאחר מכן מקישים על Enter.
11. מזל טוב
כל הכבוד! יצרת בהצלחה משאבי Google Cloud והצפנת אותם באופן אוטומטי לפי דרישה באמצעות Cloud KMS Autokey!
עכשיו אתם יודעים מהם שלבי המפתח שנדרשים כדי להגדיר את המפתח האוטומטי ולהשתמש בו כדי להצפין באופן אוטומטי את המשאבים שלכם באמצעות מפתחות של Cloud KMS.
12. מה השלב הבא?
העלאת נתונים למשאבים בהצפנת Autokey
- יצירת מכונה של Google Compute Engine (GCE)
- צירוף דיסק אחסון מתמיד (persistent disk) המוגן באמצעות מפתח אוטומטי למכונת GCE
- העלאת נתונים למערך הנתונים ב-BigQuery
- העלאת אובייקטים לקטגוריה של Google Cloud Storage
- טעינת נתונים של Google Cloud Storage ל-BigQuery