

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立 AWS CloudHSM 金鑰存放區
<a name="create-keystore"></a>

您可以在帳戶中建立一或多個 AWS CloudHSM 金鑰存放區。每個 AWS CloudHSM 金鑰存放區都與相同 AWS 帳戶 和 區域中的一個 AWS CloudHSM 叢集相關聯。在您建立 AWS CloudHSM 金鑰存放區之前，您需要[備妥先決條件](#before-keystore)。然後，您必須先[將](connect-keystore.md) AWS CloudHSM 金鑰存放區連接到其 AWS CloudHSM 叢集，才能使用金鑰存放區。

**備註**  
KMS 無法透過 IPv6 與 AWS CloudHSM 金鑰存放區通訊。  
如果您嘗試建立與現有*中斷連線* AWS CloudHSM AWS CloudHSM 金鑰存放區具有所有相同屬性值的金鑰存放區， AWS KMS 不會建立新的 AWS CloudHSM 金鑰存放區，也不會擲回例外狀況或顯示錯誤。反之， 會將重複項目 AWS KMS 識別為重試的可能結果，並傳回現有 AWS CloudHSM 金鑰存放區的 ID。  
您不需要立即連接您的 AWS CloudHSM 金鑰存放區。在準備使用之前可以維持在中斷連線狀態。不過，若要確認是否已正確設定，您可能需要[將其連接](connect-keystore.md)、[檢視其連接狀態](view-keystore.md)，然後[中斷連接](disconnect-keystore.md)。

**Topics**
+ [備妥先決條件](#before-keystore)
+ [建立新的 AWS CloudHSM 金鑰存放區](#create-hsm-keystore)

## 備妥先決條件
<a name="before-keystore"></a>

每個 AWS CloudHSM 金鑰存放區都由 AWS CloudHSM 叢集支援。若要建立 AWS CloudHSM 金鑰存放區，您必須指定尚未與另一個金鑰存放區建立關聯的作用中 AWS CloudHSM 叢集。您也需要在叢集的 HSMs 中建立專用加密使用者 (CU)， AWS KMS 可用來代表您建立和管理金鑰。

建立 AWS CloudHSM 金鑰存放區之前，請執行下列動作：

**選取 AWS CloudHSM 叢集**  
每個 AWS CloudHSM 金鑰存放區[只會與一個 AWS CloudHSM 叢集相關聯](keystore-cloudhsm.md#concept-cluster)。當您 AWS KMS keys 在 AWS CloudHSM 金鑰存放區中建立 時， 會在其中 AWS KMS 建立 KMS 金鑰中繼資料，例如 ID 和 Amazon Resource Name (ARN) AWS KMS。接著，它會在相關聯叢集的 HSM 中建立金鑰材料。您可以[建立新的 AWS CloudHSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)叢集或使用現有的叢集。 AWS KMS 不需要叢集的專屬存取權。  
您選取的 AWS CloudHSM 叢集會永久與 AWS CloudHSM 金鑰存放區建立關聯。建立 AWS CloudHSM 金鑰存放區後，您可以[變更相關聯叢集的叢集 ID](update-keystore.md)，但您指定的叢集必須與原始叢集共用備份歷史記錄。若要使用不相關的叢集，您需要建立新的 AWS CloudHSM 金鑰存放區。  
您選取的 AWS CloudHSM 叢集必須具有下列特性：  
+ **叢集必須為作用中**。

  您必須建立叢集、初始化叢集、為您的平台安裝 AWS CloudHSM 用戶端軟體，然後啟用叢集。如需詳細說明，請參閱《AWS CloudHSM 使用者指南》**中的 [AWS CloudHSM入門](https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)。
+ **未啟用相互 TLS (mTLS)。**

  KMS 不支援叢集的 mTLS。不得啟用此設定。
+ **叢集必須與金鑰存放區位於相同的帳戶和區域**。 AWS CloudHSM 您無法將某個區域中的 AWS CloudHSM 金鑰存放區與不同區域中的叢集建立關聯。若要在多個區域中建立金鑰基礎設施，您必須在每個區域中建立 AWS CloudHSM 金鑰存放區和叢集。
+ **叢集不能與相同帳戶和區域中的其他自訂金鑰存放區關聯**。帳戶和區域中的每個 AWS CloudHSM 金鑰存放區都必須與不同的 AWS CloudHSM 叢集相關聯。您不能指定已經與自訂金鑰存放區相關聯的叢集，或與相關聯叢集共用備份歷史記錄的叢集。共用備份歷史記錄的叢集具有相同的叢集憑證。若要檢視叢集的叢集憑證，請使用 AWS CloudHSM 主控台或 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。

  如果您[將 AWS CloudHSM 叢集備份至不同區域](https://docs.aws.amazon.com/cloudhsm/latest/userguide/copy-backup-to-region.html)，則此叢集會被視為不同的叢集，您可以將備份與該區域中的自訂金鑰存放區關聯。不過，兩個自訂金鑰存放區中的 KMS 金鑰無法互通，即使它們具有相同的後端 key. AWS KMS binds 中繼資料到加密文字，因此只能由加密它的 KMS 金鑰進行解密。
+ 必須在區域中**至少兩個可用區域**中，為叢集設定[私有子網路](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)。由於 AWS CloudHSM 並非所有可用區域都支援 ，我們建議您在該區域的所有可用區域中建立私有子網路。您不能對現有叢集重新設定子網路，但可以[從備份建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)，並於叢集組態中使用不同的子網路。
**重要**  
建立 AWS CloudHSM 金鑰存放區後，請勿刪除為其 AWS CloudHSM 叢集設定的任何私有子網路。如果 在叢集組態中 AWS KMS 找不到所有子網路，[嘗試連線至自訂金鑰存放區會](connect-keystore.md)失敗並顯示`SUBNET_NOT_FOUND`連線錯誤狀態。如需詳細資訊，請參閱[如何修正連線失敗](fix-keystore.md#fix-keystore-failed)。
+ [叢集 () 的安全群組](https://docs.aws.amazon.com/cloudhsm/latest/userguide/configure-sg.html)必須包含連接埠 2223-2225 上允許透過 IPv4 TCP 流量的傳入規則和傳出規則。`cloudhsm-cluster-<cluster-id>-sg`傳入規則的 **來源**和傳出規則的**目的地**必須符合安全群組 ID。當您建立叢集時依預設會設定這些規則。請勿刪除或變更。
+ **叢集必須包含至少兩個作用中 HSM** 在不同的可用區域。若要驗證 HSMs 的數量，請使用 AWS CloudHSM 主控台或 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。如有需要，您可以[新增 HSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/add-remove-hsm.html#add-hsm)。

**尋找信任起點憑證**  
建立自訂金鑰存放區時，您必須將 AWS CloudHSM 叢集的信任錨點憑證上傳至 AWS KMS。 AWS KMS 需要信任錨點憑證，才能將 AWS CloudHSM 金鑰存放區連線至其相關聯的 AWS CloudHSM 叢集。  
每個作用中 AWS CloudHSM 叢集都有*信任錨點憑證*。當您[初始化叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr)時，您需要產生此憑證，將它儲存在 `customerCA.crt` 檔案中，然後複製到連接至叢集的主機。

**建立 的`kmsuser`加密使用者 AWS KMS**  <a name="kmsuser-concept"></a>
若要管理您的 AWS CloudHSM 金鑰存放區， 會 AWS KMS 登入所選叢集中的[`kmsuser`加密使用者](keystore-cloudhsm.md#concept-kmsuser) (CU) 帳戶。建立 AWS CloudHSM 金鑰存放區之前，您必須建立 `kmsuser` CU。然後，當您建立 AWS CloudHSM 金鑰存放區時，請提供 的密碼`kmsuser` AWS KMS。每當您將 AWS CloudHSM 金鑰存放區連接到其相關聯的 AWS CloudHSM 叢集時， 都會 AWS KMS 以 登入 `kmsuser`並輪換`kmsuser`密碼   
當您建立 `kmsuser` CU 時，請勿指定 `2FA` 選項。如果您這麼做， AWS KMS 則無法登入，且您的 AWS CloudHSM 金鑰存放區無法連線至此 AWS CloudHSM 叢集。一旦指定 2FA 就無法復原。您必須刪除 CU 再重新建立。
**備註**  
下列程序使用 AWS CloudHSM 用戶端 SDK 5 命令列工具 [CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)。CloudHSM CLI `key-handle`會取代為 `key-reference`。  
2025 年 1 月 1 日， AWS CloudHSM 將結束對用戶端 SDK 3 命令列工具、CloudHSM 管理公用程式 (CMU) 和金鑰管理公用程式 (KMU) 的支援。如需用戶端 SDK 3 命令列工具和用戶端 SDK 5 命令列工具之間差異的詳細資訊，請參閱*AWS CloudHSM 《 使用者指南*》中的[從用戶端 SDK 3 CMU 和 KMU 遷移至用戶端 SDK 5 CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-migrate-from-kmu-cmu.html)。

1. 請遵循 *AWS CloudHSM 使用者指南*的 [ CloudHSM 命令列界面入門 (CLI)](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-getting-started.html) 主題中所述的入門程序。

1. 使用[https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-user-cloudhsm-cli.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-user-cloudhsm-cli.html)命令來建立名為 的 CU`kmsuser`。

   密碼必須包含 7 到 32 個英數字元。區分大小寫，且不能包含任何特殊字元。

   下列範例命令會建立 `kmsuser` CU。

   ```
   aws-cloudhsm > user create --username kmsuser --role crypto-user
   Enter password:
   Confirm password:
   {
    "error_code": 0,
    "data": {
      "username": "kmsuser",
      "role": "crypto-user"
    }
   }
   ```

## 建立新的 AWS CloudHSM 金鑰存放區
<a name="create-hsm-keystore"></a>

[組合先決條件](#before-keystore)後，您可以在 AWS KMS 主控台中或使用 [CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) 操作建立新的 AWS CloudHSM 金鑰存放區。

### 使用 AWS KMS 主控台
<a name="create-keystore-console"></a>

當您在 中建立 AWS CloudHSM 金鑰存放區時 AWS 管理主控台，您可以在工作流程中新增和建立[先決條件](#before-keystore)。不過，如果事先備妥，則程序會更快。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 的 AWS Key Management Service (AWS KMS) 主控台。

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在導覽窗格依次選擇**自訂金鑰存放區**、**AWS CloudHSM 金鑰存放區**。

1. 選擇 **Create a key store** (建立金鑰存放區)。

1. 輸入自訂金鑰存放區的易記名稱。該名稱在帳戶的所有自訂金鑰存放區中必須是唯一的。
**重要**  
請勿在此欄位包含機密或敏感資訊。此欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

1. 選取 AWS CloudHSM 金鑰存放區的[AWS CloudHSM 叢集](keystore-cloudhsm.md#concept-cluster)。或者，若要建立新的 AWS CloudHSM 叢集，請選擇**建立 AWS CloudHSM 叢集**連結。

   選單會顯示您帳戶和區域中尚未與 AWS CloudHSM 金鑰存放區建立關聯的 AWS CloudHSM 叢集。叢集必須[滿足要求](#before-keystore)，才能與自訂金鑰存放區建立關聯。

1. 選擇**選擇檔案**，然後上傳所選 AWS CloudHSM 叢集的信任錨點憑證。這是 `customerCA.crt` 檔案，您在[初始化叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html#sign-csr)時所建立。

1. 輸入您在所選叢集中建立的 [`kmsuser`加密使用者](keystore-cloudhsm.md#concept-kmsuser) (CU) 的密碼。

1. 選擇**建立**。

當程序成功時，新的 AWS CloudHSM 金鑰存放區會出現在帳戶和區域中的 AWS CloudHSM 金鑰存放區清單中。如果不成功，則會出現錯誤訊息來描述問題，並提供如何修正的說明。如果您需要更多協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

如果您嘗試使用與現有*中斷連線* AWS CloudHSM 的 AWS CloudHSM 金鑰存放區相同的所有屬性值來建立金鑰存放區， AWS KMS 不會建立新的 AWS CloudHSM 金鑰存放區，也不會擲回例外狀況或顯示錯誤。反之， 會將重複項目 AWS KMS 識別為重試的可能結果，並傳回現有 AWS CloudHSM 金鑰存放區的 ID。

**下一步**：不會自動連接新的 AWS CloudHSM 金鑰存放區。您必須先將自訂金鑰存放區連接到其相關聯的 AWS CloudHSM 叢集，才能在 AWS CloudHSM 金鑰存放區 AWS KMS keys 中建立 。 [連接 AWS CloudHSM 金鑰存放區](connect-keystore.md)

### 使用 AWS KMS API
<a name="create-keystore-api"></a>

您可以使用 [CreateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateCustomKeyStore.html) 操作來建立新的 AWS CloudHSM 金鑰存放區，該存放區與帳戶和區域中的 AWS CloudHSM 叢集相關聯。以下範例使用 AWS Command Line Interface (AWS CLI)，但您可以使用任何支援的程式設計語言。

`CreateCustomKeyStore` 操作需要以下參數值。
+ CustomKeyStoreName – 自訂金鑰存放區在帳戶中唯一的易用名稱。
**重要**  
請勿在此欄位包含機密或敏感資訊。此欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。
+ CloudHsmClusterId – 滿足 AWS CloudHSM [金鑰存放區需求的](#before-keystore)叢集的 AWS CloudHSM 叢集 ID。
+ KeyStorePassword – 所指定叢集內的 `kmsuser` CU 帳戶的密碼。
+ TrustAnchorCertificate – 您在[初始化叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/initialize-cluster.html)時所建立 `customerCA.crt` 檔案的內容。

以下範例使用虛構的叢集 ID。執行命令之前，請換成有效的叢集 ID。

```
$ aws kms create-custom-key-store
        --custom-key-store-name ExampleCloudHSMKeyStore \
        --cloud-hsm-cluster-id cluster-1a23b4cdefg \
        --key-store-password kmsPswd \
        --trust-anchor-certificate <certificate-goes-here>
```

如果您使用的是 AWS CLI，您可以指定信任錨點憑證檔案，而不是其內容。在下列範例中，`customerCA.crt` 檔案位於根目錄。

```
$ aws kms create-custom-key-store
        --custom-key-store-name ExampleCloudHSMKeyStore \
        --cloud-hsm-cluster-id cluster-1a23b4cdefg \
        --key-store-password kmsPswd \
        --trust-anchor-certificate file://customerCA.crt
```

當操作成功時，`CreateCustomKeyStore` 會傳回自訂金鑰存放區 ID，如下回應範例所示。

```
{
    "CustomKeyStoreId": cks-1234567890abcdef0
}
```

如果操作失敗，請修正例外狀況所指出的錯誤，然後重試。如需其他說明，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

如果您嘗試使用與現有*中斷連線* AWS CloudHSM 的 AWS CloudHSM 金鑰存放區相同的所有屬性值來建立金鑰存放區， AWS KMS 不會建立新的 AWS CloudHSM 金鑰存放區，也不會擲回例外狀況或顯示錯誤。反之， 會將重複項目 AWS KMS 識別為重試的可能結果，並傳回現有 AWS CloudHSM 金鑰存放區的 ID。

**下一步**：若要使用 AWS CloudHSM 金鑰存放區，[請將其連接到其 AWS CloudHSM 叢集](connect-keystore.md)。