本文提供 Cloud HSM 總覽,並說明如何在 Cloud Key Management Service 中建立及使用防護等級為 HSM 的加密金鑰。
什麼是 Cloud HSM?
Cloud HSM 是雲端託管硬體安全性模組 (HSM) 服務,可讓您託管加密金鑰,並在 FIPS 140-2 第 3 級認證的 HSM 叢集中執行加密編譯作業。Google 可代管 HSM 叢集,這樣您就不需要擔心分群、資源調度或修補的問題。由於 Cloud HSM 使用 Cloud KMS 做為前端,因此您可以利用 Cloud KMS 提供的所有便利性與功能。
建立金鑰環
建立金鑰時,請將金鑰新增至指定 Google Cloud位置的金鑰環。您可以建立新的金鑰環,或使用現有的金鑰環。在本主題中,您將建立新的金鑰環,並在其中新增金鑰。
在支援 Cloud HSM 的 Google Cloud 位置建立金鑰環。
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
按一下 [Create key ring] (建立金鑰環)。
在「金鑰環名稱」中輸入金鑰環的名稱。
針對「Key ring location」(金鑰環位置),選取位置,例如
"us-east1"。點選「建立」。
gcloud
-
在 Google Cloud 控制台中啟用 Cloud Shell。
-
在環境中執行
gcloud kms keyrings create指令:gcloud kms keyrings create KEY_RING \ --location LOCATION更改下列內容:
KEY_RING:金鑰所屬金鑰環的名稱。LOCATION:金鑰環的 Cloud KMS 位置。
如要瞭解所有旗標和可能的值,請執行含
--help旗標的指令。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,然後安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。
Python
如要執行這段程式碼,請先設定 Python 開發環境,然後安裝 Cloud KMS Python SDK。
Ruby
如要執行這段程式碼,請先設定 Ruby 開發環境,然後安裝 Cloud KMS Ruby SDK。
API
這些範例使用 curl 做為 HTTP 用戶端,示範如何使用 API。如要進一步瞭解存取控管,請參閱「存取 Cloud KMS API」。
curl "https://cloudkms.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/keyRings?key_ring_id=KEY_RING" \
--request "POST" \
--header "authorization: Bearer TOKEN"
更改下列內容:
PROJECT_ID:包含金鑰環的專案 ID。KEY_RING:金鑰所屬金鑰環的名稱。LOCATION:金鑰環的 Cloud KMS 位置。
詳情請參閱 KeyRing.create API 說明文件。
建立金鑰
請按照下列步驟,在指定的金鑰環和位置建立 Cloud HSM 金鑰。
控制台
前往 Google Cloud 控制台的「Key Management」頁面。
找出您要在哪個金鑰環中建立金鑰,然後按一下該金鑰環名稱。
按一下 [Create key] (建立金鑰)。
在「您要建立哪種類型的金鑰?」中,選擇「產生的金鑰」。
在「Key name」(金鑰名稱) 欄位中,輸入金鑰的名稱。
按一下「Protection level」(防護等級) 下拉式選單,然後選取「HSM」或「Single-tenant HSM」(單一租戶 HSM)。
如果選取「單一租戶 HSM」,請選取要建立金鑰的「單一租戶 HSM 執行個體」。
按一下 [Purpose] (目的) 下拉式清單,並選取 [對稱式加密/解密] (Symmetric encrypt/decrypt)。
接受「Rotation period」(輪替週期) 和「Starting on」(開始日期) 的預設值。
點選「建立」。
gcloud
如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版本的 Google Cloud CLI。
如要建立多租戶 Cloud HSM 金鑰,請執行 kms keys create 指令,並使用 hsm 防護等級。
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "hsm"
更改下列內容:
KEY_NAME:您要使用的金鑰名稱。KEY_RING:要在其中建立金鑰的金鑰環名稱。LOCATION:金鑰環的位置。
如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。
如要建立單一租戶 Cloud HSM 金鑰,請執行 kms keys create 指令,並使用 hsm-single-tenant 防護等級,然後指定要建立金鑰的單一租戶 Cloud HSM 執行個體。單一租戶 Cloud HSM 執行個體必須與金鑰環位於相同位置。
gcloud kms keys create KEY_NAME \
--keyring KEY_RING \
--location LOCATION \
--purpose "encryption" \
--protection-level "hsm-single-tenant" \
--crypto-key-backend="projects/INSTANCE_PROJECT/locations/LOCATION/singleTenantHsmInstances/INSTANCE_NAME"
更改下列內容:
KEY_NAME:您要使用的金鑰名稱。KEY_RING:要在其中建立金鑰的金鑰環名稱。LOCATION:金鑰環的位置。PROTECTION_LEVEL:要建立的金鑰保護等級。INSTANCE_PROJECT:單一租戶 Cloud HSM 執行個體所在的專案 ID。INSTANCE_NAME:要建立金鑰的單一租戶 Cloud HSM 執行個體名稱。如要進一步瞭解單一租戶 Cloud HSM 執行個體,請參閱「建立及管理單一租戶 Cloud HSM 執行個體」。
C#
如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK。
Go
如要執行這段程式碼,請先設定 Go 開發環境,並安裝 Cloud KMS Go SDK。
Java
如要執行這段程式碼,請先設定 Java 開發環境,然後安裝 Cloud KMS Java SDK。
Node.js
如要執行這段程式碼,請先設定 Node.js 開發環境,然後安裝 Cloud KMS Node.js SDK。
PHP
如要執行這段程式碼,請先瞭解如何在 Google Cloud上使用 PHP,並安裝 Cloud KMS PHP SDK。