透過 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" ] } }
後續步驟
- 您也可以設定預設的金鑰存取依據政策 (預覽版)。