הגדרת הצדקות לגישה למפתחות באמצעות Cloud KMS ו-Cloud HSM
בדף הזה מוסבר איך להגדיר הצדקות לגישה למפתחות באמצעות Cloud KMS או Cloud HSM עבור Data Boundary ביפן ב-Assured Workloads.
במהלך השלבים של יצירת תיקייה חדשה של Assured Workloads לאזורים ביפן, יש לכם אפשרות ליצור פרויקט חדש ואוסף מפתחות למפתחות ההצפנה שלכם. אפשר להוסיף למחזיק המפתחות הזה מפתחות של Cloud KMS ושל Cloud HSM, וגם להגדיר מדיניות של הצדקות לגישה למפתחות כדי לשלוט בגישה לכל מפתח.
לפני שמתחילים
- אפשר להשתמש ב-Key Access Justifications רק עם מפתחות Cloud KMS ו-Cloud HSM בתיקיות שרשומות בחבילת הבקרה Japan Regions ב-Assured Workloads.
- צריך לוודא שהאדמין הקצה לכם אחד מ התפקידים הנדרשים ב-IAM כדי ליצור ולנהל את מדיניות ההצדקות לגישה למפתחות ואת המפתחות של Cloud KMS ו-Cloud HSM.
הרשאות IAM נדרשות
כדי לקבל את ההרשאות שנדרשות ליצירה ולניהול של מפתחות Cloud KMS ו-Cloud HSM ומדיניות ההצדקות לגישה למפתחות שלהם, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM אדמין של Cloud KMS (roles/cloudkms.admin) בפרויקט שמכיל את מחזיק המפתחות.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
התפקיד המוגדר מראש הזה כולל את ההרשאות שנדרשות ליצירה ולניהול של מפתחות Cloud KMS ו-Cloud HSM ושל כללי המדיניות שלהם בנושא הצדקות לגישה למפתחות. כדי לראות בדיוק אילו הרשאות נדרשות, אפשר להרחיב את הקטע ההרשאות הנדרשות:
ההרשאות הנדרשות
כדי ליצור ולנהל מפתחות של Cloud KMS ו-Cloud HSM וכללי מדיניות של הצדקת גישה למפתחות, נדרשות ההרשאות הבאות:
-
cloudkms.cryptoKeys.create -
cloudkms.cryptoKeys.update -
cloudkms.cryptoKeys.get
יכול להיות שתקבלו את ההרשאות האלה באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש אחרים.
הגדרת מפתח עם הצדקות גישה למפתחות
כדי להגדיר הצדקות לגישה למפתח באמצעות מפתח של Cloud KMS או Cloud HSM, אפשר לכלול את מדיניות הגישה למפתח כפרמטר כשיוצרים את המפתח, או לעדכן את המפתח במדיניות אחרי שהוא נוצר.
יצירת מפתח ומדיניות חדשים
המסוף
נכנסים לדף Key management במסוף Google Cloud .
לוחצים על השם של אוסף המפתחות שבו רוצים ליצור את המפתח.
לוחצים על Create key.
בשדה Key name, מזינים שם למפתח.
בקטע רמת הגנה, בוחרים באפשרות תוכנה או HSM.
ממשיכים לבחור הגדרות לפי הצורך.
בקטע הגדרות נוספות > מדיניות של הצדקות לגישה למפתחות, בוחרים באפשרות הגדרת מדיניות בהתאמה אישית, ואז בוחרים באפשרות אפשרות של קודי סיבה ספציפיים.
בקטע סיבות להצדקה, בוחרים באפשרות גישה שהופעלה על ידי הלקוח, באפשרות פעולת מערכת שהופעלה על ידי Google ובכל קודי סיבה אחרים שרוצים לאפשר. האפשרויות גישה שמתחילה על ידי הלקוח ופעולת מערכת שמתחילה על ידי Google חיוניות לפעולה תקינה.
לוחצים על יצירה.
REST
יוצרים מפתח ומדיניות חדשים באמצעות method cryptoKeys.create:
POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME
בבקשה, מחליפים את ערכי ה-placeholder הבאים:
- PROJECT_ID: מזהה הפרויקט שמכיל את מחזיק המפתחות שרוצים להוסיף לו מפתח, לדוגמה
919698201234. - LOCATION: המיקום של מחזיק המפתחות, לדוגמה
asia-northeast1. - KEY_RING: השם של אוסף המפתחות שציינתם כשיצרתם את פרויקט ניהול המפתחות ואת אוסף המפתחות של תיקיית Assured Workloads.
- KEY_NAME: השם של מפתח ה-HSM שרוצים ליצור – לדוגמה,
my-hsm-key.
גוף הבקשה:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
בגוף הבקשה, מחליפים את הערכים הזמניים לשמירת מקום (placeholder) הבאים:
- PURPOSE: המטרה של המפתח. לרשימה של מטרות שונות של מפתחות, אפשר לעיין במטרות של מפתחות – לדוגמה,
ENCRYPT_DECRYPT. - PROTECTION_LEVEL: רמת ההגנה של המפתח, לדוגמה
SOFTWAREאוHSM. - ALGORITHM: האלגוריתם הקריפטוגרפי שבו ייעשה שימוש. רשימת האלגוריתמים הזמינים מופיעה במאמר אלגוריתמים של Cloud KMS. לדוגמה,
GOOGLE_SYMMETRIC_ENCRYPTION. - ALLOWED_ACCESS_REASONS: מדיניות ההצדקות לגישה למפתחות שמגדירה אפס או יותר קודי הצדקה מותרים לגישה למפתח ההצפנה, לדוגמה,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].
בדוגמה הבאה של בקשה וגוף הבקשה נוצר מפתח Cloud HSM שמאפשר הצדקות לגישה רק מכמה סיבות:
POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys?crypto_key_id=my-hsm-key
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
עדכון המדיניות של מפתח קיים
המסוף
נכנסים לדף Key management במסוף Google Cloud .
לוחצים על השם של אוסף המפתחות שבו יצרתם את המפתח.
לוחצים על שם המפתח שרוצים לעדכן את מדיניות ההצדקות לגישה למפתח.
לוחצים על עריכה של מדיניות הצדקות הגישה למפתחות.
מבצעים אחת מהפעולות הבאות:
כדי להשבית את המדיניות של Key Access Justifications במפתח, מבטלים את הסימון בתיבה Set Key Access Justification policy.
כדי לשנות את הסיבות המותרות להצדקה, לוחצים על התיבה סיבות להצדקה ומסמנים או מבטלים את הסימון של קודי הסיבות לפי הצורך. הגישה שהלקוח יוזם והפעולה של המערכת ש-Google יוזמת חיוניות לפעולה תקינה.
כדי לדחות את כל קודי הסיבות, בוחרים באפשרות דחיית כל קודי הסיבות (לא מומלץ). כך המפתח לא יוכל לשמש גם אם הוא מופעל ולמבקש יש את ההרשאות הנדרשות.
לוחצים על Save.
REST
כדי לעדכן מפתח קיים ב-Cloud KMS, משתמשים בשיטה cryptoKeys.patch:
PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy
בבקשה, מחליפים את ערכי ה-placeholder הבאים:
- PROJECT_ID: מזהה הפרויקט שמכיל את מחזיק המפתחות של המפתח, לדוגמה
919698201234. - LOCATION: המיקום של מחזיק המפתחות, לדוגמה
asia-northeast1. - KEY_RING: השם של אוסף המפתחות שציינתם כשיצרתם את פרויקט ניהול המפתחות ואת אוסף המפתחות של תיקיית Assured Workloads.
- KEY_NAME: השם של המפתח שרוצים לעדכן.
גוף הבקשה:
{ "purpose": "PURPOSE", "versionTemplate": { "protectionLevel": "PROTECTION_LEVEL", "algorithm": "ALGORITHM" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ ALLOWED_ACCESS_REASONS ] } }
בגוף הבקשה, מחליפים את הערכים הזמניים לשמירת מקום (placeholder) הבאים:
- PURPOSE: המטרה של המפתח. לרשימה של מטרות שונות של מפתחות, אפשר לעיין במטרות של מפתחות – לדוגמה,
ENCRYPT_DECRYPT. - PROTECTION_LEVEL: רמת ההגנה של המפתח, לדוגמה
SOFTWAREאוHSM. - ALGORITHM: האלגוריתם הקריפטוגרפי שבו ייעשה שימוש. רשימת האלגוריתמים הזמינים מופיעה במאמר אלגוריתמים של Cloud KMS. לדוגמה,
GOOGLE_SYMMETRIC_ENCRYPTION. - ALLOWED_ACCESS_REASONS: מדיניות ההצדקות לגישה למפתחות שמגדירה אפס או יותר קודי הצדקה מותרים לגישה למפתח ההצפנה, לדוגמה,
["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].
בדוגמה הבאה של בקשה וגוף הבקשה, אפשר לראות איך מאפשרים הצגת הצדקות לגישה רק לכמה סיבות:
PATCH https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-key?keyAccessJustificationsPolicy{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }
קבלת מדיניות הצדקות גישה למפתחות עבור מפתח
REST
כדי לקבל מטא-נתונים על מפתח קיים ב-Cloud KMS, משתמשים בשיטה cryptoKeys.get:
GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAMEבפרמטרים של הבקשה, מחליפים את הערכים הזמניים לשמירת מקום (placeholder) בערכים שלכם:
- PROJECT_ID: מזהה הפרויקט שמכיל את מחזיק המפתחות של המפתח, לדוגמה
919698201234. - LOCATION: המיקום של מחזיק המפתחות, לדוגמה
asia-northeast1. - KEY_RING: השם של מאגר המפתחות שציינתם כשאתם יוצרים את פרויקט ניהול המפתחות ומאגר המפתחות של תיקיית Assured Workloads, לדוגמה
my-key-ring. - KEY_NAME: השם של המפתח שרוצים לקבל.
בדוגמה הבאה מוצגת בקשה לקבלת מטא-נתונים על מפתח ב-Cloud KMS:
GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/asia-northeast1/keyRings/my-key-ring/cryptoKeys/my-hsm-keyגוף התשובה מכיל מטא-נתונים על המפתח, כולל keyAccessJustificationsPolicy.
לדוגמה:
{ "purpose": "ENCRYPT_DECRYPT", "versionTemplate": { "protectionLevel": "HSM", "algorithm": "GOOGLE_SYMMETRIC_ENCRYPTION" }, "keyAccessJustificationsPolicy": { "allowedAccessReasons": [ "CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION" ] } }