透過 Cloud HSM 設定金鑰存取依據

本頁說明如何使用 Cloud HSM,為 Assured Workloads 的日本區域控管套件設定金鑰存取理由。

為日本區域建立新的 Assured Workloads 資料夾時,您可以選擇為加密金鑰建立新的專案和金鑰環。Cloud HSM 金鑰可以新增至這個金鑰環,您也可以設定金鑰存取依據政策,控管每把金鑰的存取權。

事前準備

  • 只有在 Assured Workloads 的日本區域控管套件中,才能搭配使用 Key Access Justifications 和 Cloud HSM 金鑰。
  • 請確認管理員已授予您其中一個必要的 Identity and Access Management (IAM) 角色,以便建立及管理金鑰存取理由政策和 Cloud HSM 金鑰。

必要 IAM 權限

如要取得建立及管理 Cloud HSM 金鑰和金鑰存取理由政策所需的權限,請要求管理員授予您金鑰環所在專案的 Cloud KMS 管理員 (roles/cloudkms.admin) IAM 角色。如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和機構的存取權」。

這個預先定義的角色具備建立及管理 Cloud HSM 金鑰和金鑰存取理由政策所需的權限。如要查看確切的必要權限,請展開「必要權限」部分:

所需權限

如要建立及管理 Cloud HSM 金鑰和金鑰存取依據政策,您必須具備下列權限:

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

您或許還可透過自訂角色或其他預先定義的角色取得這些權限。

使用金鑰存取依據設定 Cloud HSM 金鑰

如要使用 Cloud HSM 金鑰設定 Key Access Justifications,您可以在建立金鑰時將金鑰存取政策做為參數納入,也可以在建立金鑰後更新金鑰政策。

建立新的金鑰和政策

REST

使用 cryptoKeys.create 方法建立新金鑰和政策:

POST https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys?crypto_key_id=KEY_NAME

在要求中,請替換下列預留位置值:

  • PROJECT_ID:包含您要新增金鑰的金鑰環的專案 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
    ]
  }
}

在要求主體中,替換下列預留位置值:

  • 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

使用 cryptoKeys.patch 方法更新 Cloud KMS 中的現有金鑰:

PATCH https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME?update_mask=keyAccessJustificationsPolicy

在要求中,請替換下列預留位置值:

  • PROJECT_ID:含有金鑰環的金鑰專案 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
    ]
  }
}

在要求主體中,替換下列預留位置值:

  • 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

使用 cryptoKeys.get 方法,取得 Cloud KMS 中現有金鑰的中繼資料:

GET https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings/KEY_RING/cryptoKeys/KEY_NAME

在要求參數中,將下列預留位置值替換為您自己的值:

  • PROJECT_ID:含有金鑰的鍵環所屬專案 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"
    ]
  }
}

後續步驟