建立金鑰

本頁說明如何在 Cloud KMS 中建立金鑰。金鑰可以是對稱或非對稱加密金鑰、非對稱簽署金鑰,或是 MAC 簽署金鑰。

建立金鑰時,您會將金鑰新增至特定 Cloud KMS 位置的金鑰環。您可以建立新的金鑰環,或使用現有的金鑰環。 在這個頁面中,您會產生新的 Cloud KMS 或 Cloud HSM 金鑰,並將其新增至現有的金鑰環。 如要建立 Cloud EKM 金鑰,請參閱「建立外部金鑰」。如要匯入 Cloud KMS 或 Cloud HSM 金鑰,請參閱「匯入金鑰」。

事前準備

完成本頁面上的工作前,您需要下列項目:

  1. Google Cloud 專案資源,用於存放 Cloud KMS 資源。建議您為 Cloud KMS 資源使用獨立專案,不要包含任何其他 Google Cloud 資源。
  2. 您要在其中建立金鑰的金鑰環名稱和位置。 選擇與其他資源相近的位置,並支援所選保護等級的鑰匙圈。 如要查看可用的位置和支援的保護等級,請參閱「Cloud KMS 位置」。 如要建立金鑰環,請參閱「建立金鑰環」。
  3. 選用:如要使用 gcloud CLI,請準備環境。

    在 Google Cloud 控制台中啟用 Cloud Shell。

    啟用 Cloud Shell

必要的角色

如要取得建立金鑰所需的權限,請要求管理員在專案或父項資源中,授予您下列 IAM 角色:

如要進一步瞭解如何授予角色,請參閱「管理專案、資料夾和組織的存取權」。

這些預先定義的角色具備建立金鑰所需的權限。如要查看確切的必要權限,請展開「Required permissions」(必要權限) 部分:

所需權限

如要建立金鑰,必須具備下列權限:

  • cloudkms.cryptoKeys.create
  • cloudkms.cryptoKeys.get
  • cloudkms.cryptoKeys.list
  • cloudkms.cryptoKeyVersions.create
  • cloudkms.cryptoKeyVersions.get
  • cloudkms.cryptoKeyVersions.list
  • cloudkms.keyRings.get
  • cloudkms.keyRings.list
  • cloudkms.locations.get
  • cloudkms.locations.list
  • resourcemanager.projects.get
  • 如要擷取公開金鑰,請按照下列步驟操作: cloudkms.cryptoKeyVersions.viewPublicKey
  • 如要建立單一租戶 HSM 金鑰:
    • cloudkms.singleTenantHsmInstances.get
    • cloudkms.singleTenantHsmInstances.use

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

建立對稱式加密金鑰

控制台

  1. 前往 Google Cloud 控制台的「Key Management」頁面。

    前往「金鑰管理」

  2. 找出您要在哪個金鑰環中建立金鑰,然後按一下該金鑰環名稱。

  3. 按一下 [Create key] (建立金鑰)

  4. 在「Key name」(金鑰名稱) 中輸入金鑰名稱。

  5. 在「防護等級」中,選取「軟體」、「HSM」或「單一租戶 HSM」

  6. 如果您選取「單一租戶 HSM」,請選取要建立金鑰的「單一租戶 HSM 執行個體」

  7. 在「金鑰內容」部分,選取「產生的金鑰」

  8. 針對「目的」,選取「Symmetric encrypt/decrypt」

  9. 接受「Rotation period」(輪替週期) 和「Starting on」(開始日期) 的預設值。

  10. 點選「建立」

gcloud

如要在指令列上使用 Cloud KMS,請先安裝或升級至最新版 Google Cloud CLI

如要建立軟體或多租戶 Cloud HSM 金鑰,請使用 kms keys create 指令:

gcloud kms keys create KEY_NAME \
    --keyring KEY_RING \
    --location LOCATION \
    --purpose "encryption" \
    --protection-level "PROTECTION_LEVEL"

更改下列內容:

  • KEY_NAME:金鑰名稱。
  • KEY_RING:金鑰所屬金鑰環的名稱。
  • LOCATION:金鑰環的 Cloud KMS 位置。
  • PROTECTION_LEVEL:金鑰要使用的防護等級,例如 softwarehsm。您可以省略 software 金鑰的 --protection-level 旗標。

如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。

如要建立單一租戶 Cloud HSM 金鑰,請將 --crypto-key-backend 旗標新增至 kms keys create 指令:

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"

更改下列內容:

  • INSTANCE_PROJECT:單一租戶 Cloud HSM 執行個體所在的專案 ID。
  • INSTANCE_NAME:要建立金鑰的單一租戶 Cloud HSM 執行個體名稱。如要進一步瞭解單一租戶 Cloud HSM 執行個體,請參閱「建立及管理單一租戶 Cloud HSM 執行個體」。

如要瞭解所有旗標和可能的值,請執行含有 --help 旗標的指令。

C#

如要執行這段程式碼,請先設定 C# 開發環境,然後安裝 Cloud KMS C# SDK


using Google.Cloud.Kms.V1;

public class CreateKeySymmetricEncryptDecryptSample
{
    public CryptoKey CreateKeySymmetricEncryptDecrypt(
      string projectId = "my-project", string locationId = "us-east1", string keyRingId = "my-key-ring",