הגדרת הצדקות גישה למפתחות באמצעות Cloud HSM

בדף הזה מוסבר איך להגדיר הצדקות לגישה למפתחות באמצעות Cloud HSM עבור חבילת אמצעי הבקרה של אזורים ביפן של Assured Workloads.

במהלך השלבים של יצירת תיקייה חדשה של Assured Workloads לאזורים ביפן, יש לכם אפשרות ליצור פרויקט חדש ואוסף מפתחות למפתחות ההצפנה. אפשר להוסיף מפתחות של Cloud HSM לצרור המפתחות הזה, ואפשר גם להגדיר מדיניות של הצדקות לגישה למפתחות כדי לשלוט בגישה לכל מפתח.

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

  • האפשרות להשתמש בהצדקות לגישה למפתחות עם מפתחות Cloud HSM זמינה רק בחבילת בקרות האזורים ביפן ב-Assured Workloads.
  • צריך לוודא שהאדמין הקצה לכם אחד מהתפקידים הנדרשים בניהול הזהויות והרשאות הגישה (IAM) כדי ליצור ולנהל את מדיניות ההצדקות לגישה למפתחות ואת המפתחות עצמם ב-Cloud HSM.

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

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

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

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

כדי ליצור ולנהל מפתחות Cloud HSM וכללי מדיניות של Key Access Justifications שלהם, נדרשות ההרשאות הבאות:

  • cloudkms.cryptoKeys.create
  • cloudkms.cryptoKeys.update
  • cloudkms.cryptoKeys.get

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

הגדרת מפתח Cloud HSM עם הצדקות גישה למפתחות

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

יצירת מפתח ומדיניות חדשים

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: המיקום של מחזיק המפתחות, לדוגמה us-west1.
  • KEY_RING: השם של מאגר המפתחות שציינתם כשאתם יוצרים את פרויקט ניהול המפתחות ומאגר המפתחות של תיקיית Assured Workloads, לדוגמה my-key-ring.
  • KEY_NAME: השם של מפתח ה-HSM שרוצים ליצור – לדוגמה, my-hsm-key.

גוף הבקשה:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

בגוף הבקשה, מחליפים את הערכים הזמניים לשמירת מקום (placeholder) הבאים:

  • PURPOSE: המטרה של המפתח. רשימה של מטרות שונות של מפתחות זמינה במאמר בנושא מטרות של מפתחות, למשל ENCRYPT_DECRYPT.
  • ALGORITHM: האלגוריתם הקריפטוגרפי שבו ייעשה שימוש. רשימת האלגוריתמים הזמינים מופיעה במאמר אלגוריתמים של Cloud KMS. לדוגמה, GOOGLE_SYMMETRIC_ENCRYPTION.
  • ALLOWED_ACCESS_REASONS: מדיניות ההצדקות לגישה למפתחות שמגדירה אפס או יותר קודי הצדקה מותרים לגישה למפתח ההצפנה, לדוגמה, ["CUSTOMER_INITIATED_ACCESS", "GOOGLE_INITIATED_SYSTEM_OPERATION"].

בדוגמה הבאה של בקשה וגוף הבקשה, אפשר לראות איך מאפשרים הצגת הצדקות לגישה רק לכמה סיבות:

POST https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/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"
    ]
  }
}

עדכון המדיניות של מפתח קיים

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: המיקום של מחזיק המפתחות, לדוגמה us-west1.
  • KEY_RING: השם של מאגר המפתחות שציינתם כשאתם יוצרים את פרויקט ניהול המפתחות ומאגר המפתחות של תיקיית Assured Workloads, לדוגמה my-key-ring.
  • KEY_NAME: השם של מפתח ה-HSM שרוצים לעדכן, לדוגמה my-hsm-key.

גוף הבקשה:

{
  "purpose": "PURPOSE",
  "versionTemplate": {
    "protectionLevel": "HSM",
    "algorithm": "ALGORITHM"
  },
  "keyAccessJustificationsPolicy": {
    "allowedAccessReasons": [
      ALLOWED_ACCESS_REASONS
    ]
  }
}

בגוף הבקשה, מחליפים את הערכים הזמניים לשמירת מקום (placeholder) הבאים:

  • PURPOSE: המטרה של המפתח. רשימה של מטרות שונות של מפתחות זמינה במאמר בנושא מטרות של מפתחות, למשל ENCRYPT_DECRYPT.
  • 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/us-west1/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: המיקום של מחזיק המפתחות, לדוגמה us-west1.
  • KEY_RING: השם של מאגר המפתחות שציינתם כשאתם יוצרים את פרויקט ניהול המפתחות ומאגר המפתחות של תיקיית Assured Workloads, לדוגמה my-key-ring.
  • KEY_NAME: השם של מפתח ה-HSM שרוצים לקבל – לדוגמה, my-hsm-key.

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

GET https://cloudkms.googleapis.com/v1/projects/919698201234/locations/us-west1/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"
    ]
  }
}

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