

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

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

 AWS CloudHSM 金鑰存放區是由[AWS CloudHSM 叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/)支援的[自訂金鑰存放區](key-store-overview.md#custom-key-store-overview)。當您在自訂金鑰存放 AWS KMS key 區中建立 時， 會在您擁有和管理的 AWS CloudHSM 叢集中 AWS KMS 產生和存放 KMS 金鑰的不可擷取金鑰材料。當您使用自訂金鑰存放區中的 KMS 金鑰時，[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)是在叢集的 HSM 中執行。此功能結合了 的便利性和廣泛整合， AWS KMS 以及 中 AWS CloudHSM 叢集的新增控制 AWS 帳戶。

AWS KMS 提供建立、使用和管理自訂金鑰存放區的完整主控台和 API 支援。您使用自訂金鑰存放區中 KMS 金鑰的方式，與您使用任何 KMS 金鑰的方式相同。例如，您可以使用 KMS 金鑰來產生資料金鑰並加密資料。您也可以將自訂金鑰存放區中的 KMS 金鑰與支援客戶受管金鑰 AWS 的服務搭配使用。

**我是否需要自訂金鑰存放區？**

對於大多數使用者而言，受 [FIPS 140-3 驗證的密碼編譯模組](https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4884)保護的預設 AWS KMS 金鑰存放區可滿足其安全需求。您不需要多一層維護責任或依賴額外的服務。

不過，如果您的組織有下列要求，您可能會考慮建立自訂金鑰存放區：
+ 您在單一租用戶 HSM 或您可直接控制的 HSM 有明確需要受到保護的金鑰。
+ 您需要能夠立即從中移除金鑰材料 AWS KMS。
+ 您需要能夠獨立於 AWS KMS 或 稽核金鑰的所有使用 AWS CloudTrail。

**自訂金鑰存放區如何運作？**

每個自訂金鑰存放區都與 中的 AWS CloudHSM 叢集相關聯 AWS 帳戶。當您將自訂金鑰存放區連接到其叢集時， 會 AWS KMS 建立網路基礎設施以支援連線。然後，它會使用叢集中[專用加密使用者的](#concept-kmsuser)登入資料，登入叢集中的金鑰 AWS CloudHSM 用戶端。

您可以在 中建立和管理自訂金鑰存放區 AWS KMS ，並在其中建立和管理 HSM 叢集 AWS CloudHSM。當您在 AWS KMS 自訂金鑰存放 AWS KMS keys 區中建立 時，您可以檢視和管理其中的 KMS 金鑰 AWS KMS。但您也可以在 AWS CloudHSM中檢視和管理其金鑰資料，就像您對叢集內的其他金鑰所做的一樣。

![\[管理自訂金鑰存放區中的 KMS 金鑰\]](http://docs.aws.amazon.com/zh_tw/kms/latest/developerguide/images/kms-hsm-view.png)


您可以使用自訂金鑰存放區 AWS KMS 中 產生的金鑰材料來[建立對稱加密 KMS](create-cmk-keystore.md) 金鑰。然後使用相同的技術來檢視和管理您用於金鑰存放區中 KMS 金鑰的自訂 AWS KMS 金鑰存放區中的 KMS 金鑰。您可以使用 IAM 和金鑰政策控制存取、建立標籤和別名、啟用和停用 KMS 金鑰，以及排程金鑰刪除。您可以使用 KMS 金鑰進行[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)，並將其與 整合的 AWS 服務搭配使用 AWS KMS。

此外，您可以完全控制 AWS CloudHSM 叢集，包括建立和刪除 HSMs 和管理備份。您可以使用 AWS CloudHSM 用戶端和支援的軟體程式庫來檢視、稽核和管理 KMS 金鑰的金鑰材料。當自訂金鑰存放區中斷連接時， AWS KMS 無法存取，且使用者無法使用自訂金鑰存放區中的 KMS 金鑰進行密碼編譯操作。多一道這種控制讓自訂金鑰存放區成為有需要的組織的強大解決方案。

**從何處開始？**

若要建立和管理 AWS CloudHSM 金鑰存放區，您可以使用 AWS KMS 和 的功能 AWS CloudHSM。

1. 從 開始 AWS CloudHSM。[建立作用中 AWS CloudHSM 叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/getting-started.html)或選取現有的叢集。叢集必須有至少兩個作用中 HSM 在不同的可用區域。然後為 AWS KMS建立該叢集中的[專用加密使用者 (CU) 帳戶](#concept-kmsuser)。

1. 在 中 AWS KMS，建立與所選 AWS CloudHSM 叢集相關聯的自訂金鑰存放區。 AWS KMS 提供完整的管理介面，可讓您建立、檢視、編輯和刪除自訂金鑰存放區。 [建立 AWS CloudHSM 金鑰存放區](create-keystore.md)

1. 當您準備好使用自訂金鑰存放區時，[請將其連線至相關聯的 AWS CloudHSM 叢集](connect-keystore.md)。 會 AWS KMS 建立其支援連線所需的網路基礎設施。接著會使用專用加密使用者帳戶來登入叢集，以便能夠在叢集內產生和管理金鑰資料。

1. 現在，您可以[在自訂金鑰存放區建立對稱加密 KMS 金鑰](create-cmk-keystore.md)。只需要在建立 KMS 金鑰時指定自訂金鑰存放區。

如果您在任何時候受阻，您可以在[對自訂金鑰存放區進行故障診斷](fix-keystore.md)主題中尋找說明。如果找不到問題的解答，請使用本指南每一頁底部的意見回饋連結，或將問題張貼到 [AWS Key Management Service 開發論壇](https://repost.aws/tags/TAMC3vcPOPTF-rPAHZVRj1PQ/aws-key-management-service)。

**配額**

AWS KMS 在每個 AWS 帳戶 和 區域中最多允許 [10 個自訂金鑰存放](resource-limits.md)區，包括[AWS CloudHSM 金鑰存放區](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-cloudhsm.html)和[外部金鑰存放區](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)，無論其連線狀態為何。此外，在 [金鑰存放區中使用 KMS AWS CloudHSM 金鑰](requests-per-second.md#rps-key-stores)有 AWS KMS 請求配額。

**定價**

如需 AWS KMS 自訂金鑰存放區中自訂金鑰存放區和客戶受管金鑰成本的資訊，請參閱 [AWS Key Management Service 定價](https://aws.amazon.com/kms/pricing/)。如需 AWS CloudHSM 叢集和 HSMs 成本的相關資訊，請參閱 [AWS CloudHSM 定價](https://aws.amazon.com/cloudhsm/pricing/)。<a name="cks-regions"></a>

**區域**

AWS KMS 在 AWS KMS 支援的所有 中支援 AWS CloudHSM 金鑰存放 AWS 區域 區，但亞太區域 （墨爾本）、中國 （北京）、中國 （寧夏） 和歐洲 （西班牙） 除外。

**不支援的功能**

AWS KMS 不支援自訂金鑰存放區中的下列功能。
+ [非對稱 KMS 金鑰](symmetric-asymmetric.md)
+ [HMAC KMS 金鑰](hmac.md)
+ [含有匯入金鑰資料的 KMS 金鑰](importing-keys.md)
+ [自動金鑰輪換](rotate-keys.md)
+ [多區域金鑰](multi-region-keys-overview.md)

## AWS CloudHSM 金鑰存放區概念
<a name="hsm-key-store-concepts"></a>

本主題說明 AWS CloudHSM 金鑰存放區中使用的一些術語和概念。

### AWS CloudHSM 金鑰存放區
<a name="concept-hsm-key-store"></a>

*AWS CloudHSM 金鑰存放區*是與您 AWS CloudHSM 擁有和管理的叢集相關聯的[自訂金鑰存放](key-store-overview.md#custom-key-store-overview)區。 AWS CloudHSM 叢集由 [FIPS 140-2 或 FIPS 140-3Level 3](https://docs.aws.amazon.com/cloudhsm/latest/userguide/compliance.html) 認證的硬體安全模組 (HSMs) 提供支援。

當您在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰時， 會在相關聯的 AWS CloudHSM 叢集中 AWS KMS 產生 256 位元、持久性、不可匯出的進階加密標準 (AES) 對稱金鑰。金鑰材料離開您的 HSM 時一定會加密。當您在 金鑰存放區中使用 KMS AWS CloudHSM 金鑰時，密碼編譯操作會在叢集的 HSMs中執行。

AWS CloudHSM 金鑰存放區結合了 的便利且全面的金鑰管理界面 AWS KMS ，以及 AWS CloudHSM 叢集在 中提供的額外控制項 AWS 帳戶。此整合功能可讓您在 中建立、管理和使用 KMS 金鑰， AWS KMS 同時完全控制存放其金鑰資料的 HSMs，包括管理叢集、HSMs 和備份。您可以使用 AWS KMS 主控台和 APIs 來管理金鑰存放區及其 KMS AWS CloudHSM 金鑰。您也可以使用 AWS CloudHSM 主控台、APIs、用戶端軟體和相關聯的軟體程式庫來管理相關聯的叢集。

您可以[檢視和管理](view-keystore.md) AWS CloudHSM 金鑰存放區、[編輯其屬性](update-keystore.md)，以及[連接](connect-keystore.md)和[中斷](disconnect-keystore.md)其與其相關聯 AWS CloudHSM 叢集的連線。如果您需要[刪除金鑰 AWS CloudHSM 存放](delete-keystore.md#delete-keystore-console)區，您必須先透過排程刪除並等待寬限期到期，來刪除 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。刪除金鑰 AWS CloudHSM 存放區會從 移除資源 AWS KMS，但不會影響 AWS CloudHSM 叢集。

### AWS CloudHSM 叢集
<a name="concept-cluster"></a>

每個 AWS CloudHSM 金鑰存放區都與一個*AWS CloudHSM 叢集*相關聯。當您在 AWS CloudHSM 金鑰存放區 AWS KMS key 中建立 時， AWS KMS 會在相關聯的叢集中建立其金鑰材料。在您的 AWS CloudHSM 金鑰存放區中使用 KMS 金鑰時，密碼編譯操作會在關聯的叢集中執行。

每個 AWS CloudHSM 叢集只能與一個 AWS CloudHSM 金鑰存放區相關聯。您選擇的叢集無法與另一個 AWS CloudHSM 金鑰存放區相關聯，也無法與與其他 AWS CloudHSM 金鑰存放區相關聯的叢集共用備份歷史記錄。叢集必須初始化並處於作用中狀態，而且必須位於與 AWS CloudHSM 金鑰存放區相同的 AWS 帳戶 和 區域。您可以建立新的叢集或使用現有的叢集。 AWS KMS 不需要獨佔使用叢集。若要在金鑰存放區中建立 KMS AWS CloudHSM 金鑰，其關聯的叢集必須至少包含兩個作用中HSMs。所有其他操作只需要一個 HSM。

您可以在建立 AWS CloudHSM 金鑰存放區時指定 AWS CloudHSM 叢集，而且無法變更它。不過，您可以替代與原始叢集共用備份歷史記錄的任何叢集。這可讓您刪除叢集，並在必要時將它以從其中一個備份建立的叢集取代。您可保有相關聯 AWS CloudHSM 叢集的完整控制，讓您可以管理使用者和金鑰、建立和刪除 HSM，並使用和管理備份。

當您準備好使用 AWS CloudHSM 金鑰存放區時，您可以將其連線到其相關聯的 AWS CloudHSM 叢集。您可以隨時連接和中斷連接您的自訂金鑰存放區。連接自訂金鑰存放區時，您可以建立和使用它的 KMS 金鑰。中斷連線時，您可以檢視和管理 AWS CloudHSM 金鑰存放區及其 KMS 金鑰。但是，您無法建立新的 KMS 金鑰或使用 AWS CloudHSM 金鑰存放區中的 KMS 金鑰進行密碼編譯操作。

### `kmsuser` 加密使用者
<a name="concept-kmsuser"></a>

若要代表您在相關聯的 AWS CloudHSM 叢集中建立和管理金鑰材料， AWS KMS 會在名為 的叢集中使用專用*AWS CloudHSM [加密使用者](https://docs.aws.amazon.com/cloudhsm/latest/userguide/hsm-users.html#crypto-user) (CU)*`kmsuser`。`kmsuser` CU 是標準 CU 帳戶，會自動同步到叢集中的所有 HSM，並且儲存在叢集備份中。

在建立 AWS CloudHSM 金鑰存放區之前，您可以使用 CloudHSM [`kmsuser` CLI 中的使用者建立命令，在叢集中建立 CU 帳戶](create-keystore.md#before-keystore)。 AWS CloudHSM [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)然後，當您[建立 AWS CloudHSM 金鑰存放區](create-keystore.md)時，您會提供`kmsuser`帳戶密碼給 AWS KMS。當您[連接自訂金鑰存放](connect-keystore.md)區時， 會以 CU `kmsuser` 身分 AWS KMS 登入叢集，並輪換其密碼。在安全存放`kmsuser`密碼之前， 會先 AWS KMS 加密您的密碼。當密碼輪換時，新密碼會加密並以相同的方式存放。

AWS KMS `kmsuser` 只要 AWS CloudHSM 金鑰存放區已連線， 就會保持登入狀態。您不應該將此 CU 帳戶用於其他用途。不過，您對於 `kmsuser` CU 帳戶會保有最終控制。您可以隨時[找到 擁有的金鑰](find-key-material.md)。 `kmsuser`如有需要，您可以[中斷連線自訂金鑰存放區](disconnect-keystore.md)，變更 `kmsuser` 密碼，[以 `kmsuser` 身分登入叢集](fix-keystore.md#fix-login-as-kmsuser)，以及檢視和管理 `kmsuser` 擁有的金鑰。

如需建立您的 `kmsuser` CU 帳戶的相關指示，請參閱[建立 `kmsuser` 加密使用者](create-keystore.md#before-keystore)。

### 金鑰存放區中的 KMS AWS CloudHSM 金鑰
<a name="concept-cmk-key-store"></a>

您可以使用 AWS KMS 或 AWS KMS API 在 AWS CloudHSM 金鑰存放 AWS KMS keys 區中建立 。您可以使用與您在任何 KMS 金鑰上所使用的相同技術。唯一的差別是您必須識別 AWS CloudHSM 金鑰存放區，並指定金鑰材料的來源為 AWS CloudHSM 叢集。

當您[在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰](create-cmk-keystore.md)時， 會在 中 AWS KMS 建立 KMS 金鑰， AWS KMS 並在其相關聯的叢集中產生 256 位元、持久性、不可匯出的進階加密標準 (AES) 對稱金鑰材料。當您在密碼編譯操作中使用 AWS KMS 金鑰時，操作會在 AWS CloudHSM 叢集中使用以叢集為基礎的 AES 金鑰來執行。雖然 AWS CloudHSM 支援不同類型的對稱和非對稱金鑰，但 AWS CloudHSM 金鑰存放區僅支援 AES 對稱加密金鑰。

您可以在 AWS KMS 主控台中檢視 AWS CloudHSM 金鑰存放區中的 KMS 金鑰，並使用主控台選項來顯示自訂金鑰存放區 ID。您也可以使用 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 操作來尋找 AWS CloudHSM 金鑰存放區 ID 和 AWS CloudHSM 叢集 ID。

 AWS CloudHSM 金鑰存放區中的 KMS 金鑰的運作方式與任何 KMS 金鑰相同 AWS KMS。獲授權使用者需要相同權限才能使用和管理 KMS 金鑰。您可以使用相同的主控台程序和 API 操作來檢視和管理 金鑰存放區中的 KMS AWS CloudHSM 金鑰。這些包含啟用和停用 KMS 金鑰、建立和使用標籤和別名，以及設定和變更 IAM 和金鑰政策。您可以使用 AWS CloudHSM 金鑰存放區中的 KMS 金鑰進行密碼編譯操作，並將其與支援使用客戶受管金鑰的[整合 AWS 服務](service-integration.md)搭配使用。不過，您無法啟用[自動金鑰輪換](rotate-keys.md)或將[金鑰材料匯入](importing-keys.md)金鑰存放區中的 KMS AWS CloudHSM 金鑰。

您也可以使用相同的程序來[排程刪除](deleting-keys.md#delete-cmk-keystore)金鑰存放區中的 KMS AWS CloudHSM 金鑰。在等待期間到期後， 會從 KMS AWS KMS 刪除 KMS 金鑰。然後，會盡最大努力從關聯的 AWS CloudHSM 叢集中刪除 KMS 金鑰的金鑰材料。不過，您可能需要手動從叢集及其備份[刪除遺棄的金鑰材料](fix-keystore.md#fix-keystore-orphaned-key)。

# 控制對 AWS CloudHSM 金鑰存放區的存取
<a name="authorize-key-store"></a>

您可以使用 IAM 政策來控制對 AWS CloudHSM 金鑰存放區和 AWS CloudHSM 叢集的存取。您可以使用金鑰政策、IAM 政策和授權來控制對 AWS CloudHSM 金鑰存放區 AWS KMS keys 中 的存取。建議您只提供使用者、群組和角色可能執行的任務所需的許可給他們。

為了支援您的 AWS CloudHSM 金鑰存放區， AWS KMS 需要取得叢集相關資訊 AWS CloudHSM 的許可。它還需要許可，才能建立將金鑰存放區連接到其 AWS CloudHSM 叢集的網路基礎設施 AWS CloudHSM 。若要取得這些許可， 會在您的 中 AWS KMS 建立 **AWSServiceRoleForKeyManagementServiceCustomKeyStores** 服務連結角色 AWS 帳戶。如需詳細資訊，請參閱[授權 AWS KMS 管理 AWS CloudHSM 和 Amazon EC2 資源](authorize-kms.md)。

設計您的 AWS CloudHSM 金鑰存放區時，請確定使用和管理金鑰存放區的委託人只有他們所需的許可。下列清單說明 AWS CloudHSM 金鑰存放區管理員和使用者所需的最低許可。
+ 建立和管理 AWS CloudHSM 金鑰存放區的委託人需要下列許可才能使用 AWS CloudHSM 金鑰存放區 API 操作。
  + `cloudhsm:DescribeClusters`
  + `kms:CreateCustomKeyStore`
  + `kms:ConnectCustomKeyStore`
  + `kms:DeleteCustomKeyStore`
  + `kms:DescribeCustomKeyStores`
  + `kms:DisconnectCustomKeyStore`
  + `kms:UpdateCustomKeyStore`
  + `iam:CreateServiceLinkedRole`
+ 建立和管理與您 AWS CloudHSM 金鑰存放區相關聯 AWS CloudHSM 叢集的委託人需要建立和初始化 AWS CloudHSM 叢集的許可。這包括要有許可來建立或使用 Amazon Virtual Private Cloud (VPC)、建立子網路，以及建立 Amazon EC2 執行個體。他們可能還需要建立和刪除 HSM，以及管理備份。如需必要許可的清單，請參閱《AWS CloudHSM 使用指南》中 [AWS CloudHSM的身分與存取管理](https://docs.aws.amazon.com/cloudhsm/latest/userguide/identity-access-management.html)**。
+ 在 AWS CloudHSM 金鑰存放區 AWS KMS keys 中建立和管理的委託人需要與建立和管理任何 KMS 金鑰的委託人[相同的許可](create-keys.md#create-key-permissions) AWS KMS。金鑰存放區中 KMS [金鑰的預設金鑰政策](key-policy-default.md)與 中 KMS 金鑰的預設金鑰政策相同 AWS KMS。 AWS CloudHSM [屬性型存取控制](abac.md) (ABAC) 使用標籤和別名來控制對 KMS 金鑰的存取，也適用於 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。
+ 在您的 AWS CloudHSM 金鑰存放區中使用 KMS 金鑰進行[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)的委託人需要許可，才能使用 KMS 金鑰執行密碼編譯操作，例如 [kms:Decrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html)。您可以在金鑰政策或 IAM 政策中提供這些許可。但是，它們不需要任何額外的許可，即可在 金鑰存放區中使用 KMS AWS CloudHSM 金鑰。

# 建立 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)。

# 檢視 AWS CloudHSM 金鑰存放區
<a name="view-keystore"></a>

您可以使用 AWS KMS 主控台或 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作來檢視每個帳戶和區域中的 AWS CloudHSM 金鑰存放區。

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

當您在 中檢視 AWS CloudHSM 金鑰存放區時 AWS 管理主控台，您可以看到以下內容：
+ 自訂金鑰存放區名稱和 ID
+ 關聯 AWS CloudHSM 叢集的 ID
+ 叢集中 HSM 的數量
+ 目前的連接狀態

連線狀態 (**狀態**) 值**為已中斷**連線，表示自訂金鑰存放區是新的且從未連線，或是刻意[中斷與其 AWS CloudHSM 叢集的連線](disconnect-keystore.md)。不過，如果您嘗試在連接的自訂金鑰存放區中使用 KMS 金鑰失敗，這可能表示自訂金鑰存放區或其 AWS CloudHSM 叢集發生問題。如需協助，請參閱 [如何修正失效的 KMS 金鑰](fix-keystore.md#fix-cmk-failed)。

若要檢視指定帳戶和區域中的 AWS CloudHSM 金鑰存放區，請使用下列程序。

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 金鑰存放區**。

若要自訂顯示，請按一下出現在 **Create key store (建立金鑰存放區)** 按鈕下的齒輪圖示。

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

若要檢視您的 AWS CloudHSM 金鑰存放區，請使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。在預設情況下，此操作會傳回帳戶和區域中的所有自訂金鑰存放區。但是，您可以使用 `CustomKeyStoreId` 或 `CustomKeyStoreName` 參數 (但不能同時使用) 來限制對特定自訂金鑰存放區的輸出。對於 AWS CloudHSM 金鑰存放區，輸出包含自訂金鑰存放區 ID 和名稱、自訂金鑰存放區類型、相關聯 AWS CloudHSM 叢集的 ID 和連線狀態。如果連接狀態指出錯誤，則輸出也會包含描述錯誤原因的錯誤碼。

本節中的範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何支援的程式設計語言。

例如，以下命令會傳回帳戶和區域中的所有自訂金鑰存放區。您可以使用 `Limit` 和 `Marker` 參數來切換輸出中的自訂金鑰存放區頁面。

```
$ aws kms describe-custom-key-stores
```

以下範例命令使用 `CustomKeyStoreName` 參數來取得僅具有 `ExampleCloudHSMKeyStore` 易記名稱的自訂金鑰存放區。您可以在每個命令中使用 `CustomKeyStoreName` 或 `CustomKeyStoreId` 參數 (但不可同時使用)。

下列範例輸出代表連接到其 AWS CloudHSM 叢集的 AWS CloudHSM 金鑰存放區。

**注意**  
`CustomKeyStoreType` 欄位已新增至`DescribeCustomKeyStores`回應，以區分 AWS CloudHSM 金鑰存放區與外部金鑰存放區。

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleCloudHSMKeyStore
{
   "CustomKeyStores": [ 
      { 
         "CloudHsmClusterId": "cluster-1a23b4cdefg",
         "ConnectionState": "CONNECTED",
         "CreationDate": "1.499288695918E9",
         "CustomKeyStoreId": "cks-1234567890abcdef0",
         "CustomKeyStoreName": "ExampleCloudHSMKeyStore",
         "CustomKeyStoreType": "AWS_CLOUDHSM",
         "TrustAnchorCertificate": "<certificate appears here>"
      }
   ]
}
```

`ConnectionState` 的 `Disconnected`表示自訂金鑰存放區從未連線，或刻意[與其 AWS CloudHSM 叢集中斷](disconnect-keystore.md)連線。不過，如果 嘗試在連線的金鑰存放區中使用 KMS AWS CloudHSM 金鑰失敗，這可能表示 AWS CloudHSM 金鑰存放區或其 AWS CloudHSM 叢集發生問題。如需協助，請參閱 [如何修正失效的 KMS 金鑰](fix-keystore.md#fix-cmk-failed)。

如果自訂金鑰存放區的 `ConnectionState` 為 `FAILED`，則 `DescribeCustomKeyStores` 回應會包含一個 `ConnectionErrorCode` 元素，解釋錯誤的原因。

例如，在以下輸出中，`INVALID_CREDENTIALS` 值指出自訂金鑰存放區連接失敗，因為 [`kmsuser` 密碼無效](fix-keystore.md#fix-keystore-password)。如需此錯誤和其他連接錯誤失敗的協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [ 
      { 
         "CloudHsmClusterId": "cluster-1a23b4cdefg",
         "ConnectionErrorCode": "INVALID_CREDENTIALS",
         "ConnectionState": "FAILED",
         "CustomKeyStoreId": "cks-1234567890abcdef0",
         "CustomKeyStoreName": "ExampleCloudHSMKeyStore",
         "CustomKeyStoreType": "AWS_CLOUDHSM",
         "CreationDate": "1.499288695918E9",
         "TrustAnchorCertificate": "<certificate appears here>"
      }
   ]
}
```

**進一步了解：**
+ [檢視外部金鑰存放區](view-xks-keystore.md)
+ [識別金鑰存放區中的 KMS AWS CloudHSM 金鑰](identify-key-types.md#identify-key-hsm-keystore)
+ [使用 記錄 AWS KMS API 呼叫 AWS CloudTrail](logging-using-cloudtrail.md)

# 編輯 AWS CloudHSM 金鑰存放區設定
<a name="update-keystore"></a>

您可以變更現有 AWS CloudHSM 金鑰存放區的設定。自訂金鑰存放區必須中斷其 AWS CloudHSM 叢集的連線。

若要編輯 AWS CloudHSM 金鑰存放區設定：

1. [將自訂金鑰存放區](disconnect-keystore.md)從其 AWS CloudHSM 叢集中斷連線。

   當自訂金鑰存放區中斷連線時，您無法在自訂金鑰存放區中建立 AWS KMS keys (KMS 金鑰），也無法使用其包含的 KMS 金鑰進行[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)。

1. 編輯一或多個 AWS CloudHSM 金鑰存放區設定。

   您可以編輯自訂金鑰存放區中的以下設定：  
自訂金鑰存放區的易記名稱。  
輸入新的易記名稱。新名稱在 中的所有自訂金鑰存放區中必須是唯一的 AWS 帳戶。  
請勿在此欄位包含機密或敏感資訊。此欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。  
相關聯叢集的 AWS CloudHSM 叢集 ID。  
編輯此值以取代原始叢集的相關 AWS CloudHSM 叢集。如果自訂金鑰存放區叢集 AWS CloudHSM 損毀或刪除，您可以使用此功能來修復自訂金鑰存放區。  
指定與原始 AWS CloudHSM 叢集共用備份歷史記錄[的叢集，並滿足與自訂金鑰存放區關聯的要求](create-keystore.md#before-keystore)，包括在不同的可用區域中的兩個作用中 HSMs。共用備份歷史記錄的叢集具有相同的叢集憑證。若要檢視叢集的叢集憑證，請使用 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。您無法使用編輯功能，將自訂金鑰存放區與不相關的 AWS CloudHSM 叢集產生關聯。  
[`kmsuser` 加密使用者](keystore-cloudhsm.md#concept-kmsuser) (CU) 的目前密碼。  
告知叢集中 `kmsuser` AWS CloudHSM CU 的 AWS KMS 目前密碼。此動作不會變更 AWS CloudHSM 叢集中 `kmsuser` CU 的密碼。  
如果您變更 AWS CloudHSM 叢集中 `kmsuser` CU 的密碼，請使用此功能來告知 AWS KMS 新密碼`kmsuser`。否則， AWS KMS 會無法登入叢集，並且將自訂金鑰存放區連接到叢集的所有嘗試都會失敗。

1. [將自訂金鑰存放區重新連接](connect-keystore.md)至其 AWS CloudHSM 叢集。

## 編輯您的金鑰存放區設定
<a name="edit-keystore-settings"></a>

您可以在 AWS KMS 主控台或使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作來編輯 AWS CloudHSM 金鑰存放區設定。

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

編輯 AWS CloudHSM 金鑰存放區時，您可以變更任何 或可設定的值。

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. 選擇您要編輯的 AWS CloudHSM 金鑰存放區資料列。

   如 **Connection state** (連接狀態) 欄的值不是 **DISCONNECTED** (已中斷連接)，則在編輯之前，您必須先中斷連接自訂金鑰存放區。(從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Disconnect** (中斷連接)。)

   當 AWS CloudHSM 金鑰存放區中斷連線時，您可以管理 AWS CloudHSM 金鑰存放區及其 KMS 金鑰，但無法在 AWS CloudHSM 金鑰存放區中建立或使用 KMS 金鑰。

1. 從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Edit** (編輯)。

1. 執行下列其中一或多個動作。
   + 輸入自訂金鑰存放區的易記名稱。
   + 輸入相關叢集的 AWS CloudHSM 叢集 ID。
   + 在關聯的 AWS CloudHSM 叢集中輸入`kmsuser`加密使用者的目前密碼。

1. 選擇**儲存**。

   當程序成功時，會出現訊息描述您編輯的設定。當操作失敗時，會出現錯誤訊息，其中描述問題並提供如何修正的協助。如果您需要更多協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

1. [重新連接自訂金鑰存放區。](connect-keystore.md)

   若要使用 AWS CloudHSM 金鑰存放區，您必須在編輯後重新連線。您可以將 AWS CloudHSM 金鑰存放區保持中斷連接。但在中斷連線時，您無法在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰，或在[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)中使用 AWS CloudHSM 金鑰存放區中的 KMS 金鑰。

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

若要變更 AWS CloudHSM 金鑰存放區的屬性，請使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作。您可以在相同命令中變更自訂金鑰存放區的多個屬性。如果操作成功， 會 AWS KMS 傳回 HTTP 200 回應和沒有屬性的 JSON 物件。若要確認變更已生效，請使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。

本節中的範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何支援的程式設計語言。

首先使用 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) [將自訂金鑰存放區與其叢集中斷連線](disconnect-keystore.md)。 AWS CloudHSM 將範例自訂金鑰存放區 ID cks-1234567890abcdef0 以實際 ID 取代。

```
$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

第一個範例使用 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 將 AWS CloudHSM 金鑰存放區的易記名稱變更為 `DevelopmentKeys`。命令使用 `CustomKeyStoreId` 參數來識別 AWS CloudHSM 金鑰存放區，並使用 `CustomKeyStoreName`來指定自訂金鑰存放區的新名稱。

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --new-custom-key-store-name DevelopmentKeys
```

下列範例會將與 AWS CloudHSM 金鑰存放區相關聯的叢集變更為相同叢集的另一個備份。命令使用 `CustomKeyStoreId` 參數來識別 AWS CloudHSM 金鑰存放區，並使用 `CloudHsmClusterId` 參數來指定新的叢集 ID。

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --cloud-hsm-cluster-id cluster-1a23b4cdefg
```

下列範例 AWS KMS 會告知目前的`kmsuser`密碼為 `ExamplePassword`。命令使用 `CustomKeyStoreId` 參數來識別 AWS CloudHSM 金鑰存放區，並使用 `KeyStorePassword` 參數來指定目前的密碼。

```
$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password ExamplePassword
```

最後一個命令會將 AWS CloudHSM 金鑰存放區重新連線至其 AWS CloudHSM 叢集。您可以將自訂金鑰存放區保持在中斷連線狀態，但必須先將其連線，才能建立新的 KMS 金鑰或將現有的 KMS 金鑰用於[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)。將範例自訂金鑰存放區 ID 以實際 ID 取代。

```
$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

# 連接 AWS CloudHSM 金鑰存放區
<a name="connect-keystore"></a>

新 AWS CloudHSM 金鑰存放區未連線。在 AWS CloudHSM 金鑰存放區 AWS KMS keys 中建立和使用 之前，您需要將其連接到其相關聯的 AWS CloudHSM 叢集。您可以隨時連接和中斷連接您的 AWS CloudHSM 金鑰存放區，並[檢視其連線狀態](view-keystore.md#view-keystore-console)。

您不需要連接 AWS CloudHSM 金鑰存放區。您可以讓 AWS CloudHSM 金鑰存放區無限期處於中斷連線狀態，並只在您需要使用它時才連接。不過，您可能希望定期測試連接，以驗證設定正確並且可連接。

**注意**  
AWS CloudHSM 只有在金鑰存放區從未連線或您明確中斷`DISCONNECTED`連線時，金鑰存放區才會有連線狀態。如果您的 AWS CloudHSM 金鑰存放區連線狀態為 ，`CONNECTED`但您無法使用它，請確定其相關聯的 AWS CloudHSM 叢集處於作用中狀態，且至少包含一個作用中HSMs。如需連線失敗的協助，請參閱 [對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

當您連接 AWS CloudHSM 金鑰存放區時， 會 AWS KMS 尋找相關聯的 AWS CloudHSM 叢集、連接至該叢集、以[`kmsuser`加密使用者](keystore-cloudhsm.md#concept-kmsuser) (CU) 身分登入 AWS CloudHSM 用戶端，然後只要 AWS CloudHSM 金鑰存放區已連線，就會輪換登入 AWS CloudHSM 用戶端`kmsuser`的 password. AWS KMS remains。

若要建立連線， 會在叢集的虛擬私有雲端 (VPC) `kms-<custom key store ID>` 中 AWS KMS 建立名為 [的安全群組](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html)。安全群組具有單一規則，允許來自叢集安全群組的傳入流量。 AWS KMS 也會在叢集私有子網路的每個可用區域中建立[彈性網路介面](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_ElasticNetworkInterfaces.html) (ENI)。 會將 ENIs AWS KMS 新增至`kms-<cluster ID>`安全群組和叢集的安全群組。每個 ENI 的描述為 `KMS managed ENI for cluster <cluster-ID>`。

連接程序可能需要很長的時間才能完成；最多 20 分鐘。

連接 AWS CloudHSM 金鑰存放區之前，請確認其符合要求。
+ 其關聯的 AWS CloudHSM 叢集必須至少包含一個作用中的 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)。
+ 叢集必須擁有[`kmsuser`加密使用者](create-keystore.md#kmsuser-concept) (CU) 帳戶，但當您連接 AWS CloudHSM 金鑰存放區時，該 CU 無法登入叢集。如需登出的說明，請參閱[如何登出和重新連線](fix-keystore.md#login-kmsuser-2)。
+  AWS CloudHSM 金鑰存放區的連線狀態不能是 `DISCONNECTING`或 `FAILED`。若要檢視連線狀態，請使用 AWS KMS 主控台或 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 回應。如果連接狀態為 `FAILED`，請中斷連接自訂金鑰存放區，解決問題，然後進行連接。

如需連線失敗的協助，請參閱 [如何修正連線失敗](fix-keystore.md#fix-keystore-failed)。

當您的 AWS CloudHSM 金鑰存放區連線時，您可以在[其中建立 KMS 金鑰](create-cmk-keystore.md)，並在[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)中使用現有的 KMS 金鑰。

## 連接並重新連線至您的 AWS CloudHSM 金鑰存放區
<a name="connect-hsm-keystore"></a>

您可以在 AWS KMS 主控台或使用 [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 操作來連接或重新連接您的 AWS CloudHSM 金鑰存放區。

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

若要連接 中的 AWS CloudHSM 金鑰存放區 AWS 管理主控台，請先從自訂 AWS CloudHSM 金鑰存放區頁面選取金鑰存放區。 ****此連接程序最長可能需要 20 分鐘的時間才能完成。

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. 選擇您要連線的 AWS CloudHSM 金鑰存放區資料列。

   如果 AWS CloudHSM 金鑰存放區的連線狀態為**失敗**，您必須在連接之前[中斷連接自訂金鑰存放](disconnect-keystore.md#disconnect-keystore-console)區。

1. 從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Connect** (連接)。

AWS KMS 會開始連接自訂金鑰存放區的程序。它會找到相關的 AWS CloudHSM 叢集，建置所需的網路基礎設施，連接它，以 `kmsuser` CU 身分登入 AWS CloudHSM 叢集，並輪換 `kmsuser` 密碼。當操作完成時，連接狀態會變為 **CONNECTED** (已連接)。

如果部署失敗，說明失敗原因的錯誤訊息會顯示。在您嘗試再次連線之前，[請先檢視金鑰存放區的連線狀態](view-keystore.md)。 AWS CloudHSM 如狀態為 **FAILED** (失敗)，在重新連接之前，您必須先[中斷連接自訂金鑰存放區](disconnect-keystore.md#disconnect-keystore-console)。如果您需要協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

**下一步：**[在 金鑰存放區中建立 KMS AWS CloudHSM 金鑰](create-cmk-keystore.md)。

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

若要連接中斷連接的 AWS CloudHSM 金鑰存放區，請使用 [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 操作。相關聯的 AWS CloudHSM 叢集必須至少包含一個作用中的 HSM，且連線狀態不能為 `FAILED`。

連接程序可能需要很長的時間才能完成；最多 20 分鐘。除非其快速失敗，否則 操作會傳回 HTTP 200 回應和不帶屬性的 JSON 物件。不過，這個初始回應並不表示連接已成功。若要判斷自訂金鑰存放區的連接狀態，請參閱 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 回應。

本節中的範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何支援的程式設計語言。

若要識別 AWS CloudHSM 金鑰存放區，請使用其自訂金鑰存放區 ID。您可以在主控台的 **Custom key stores** (自訂金鑰存放區) 頁面查找 ID，也可以使用不帶參數的 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。執行此範例之前，請將範例 ID 以有效的 ID 取代。

```
$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

若要驗證 AWS CloudHSM 金鑰存放區是否已連線，請使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。在預設情況下，此操作會傳回您帳戶和區域中的所有自訂金鑰存放區。但是，您可以使用 `CustomKeyStoreId` 或 `CustomKeyStoreName` 參數 (但不能同時使用) 來限制對特定自訂金鑰存放區的回應。此 `ConnectionState` 值 `CONNECTED` 指出自訂的金鑰存放區連接到它的 AWS CloudHSM 叢集。

**注意**  
`CustomKeyStoreType` 欄位已新增至`DescribeCustomKeyStores`回應，以區分 AWS CloudHSM 金鑰存放區與外部金鑰存放區。

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleCloudHSMKeyStore",
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "CustomKeyStoreType": "AWS_CLOUDHSM",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "CONNECTED"
   ],
}
```

如果 `ConnectionState` 值為 failed，`ConnectionErrorCode` 元素會指出失敗的原因。在此情況下，在您的帳戶中 AWS KMS 找不到 AWS CloudHSM 叢集 ID 為 的叢集`cluster-1a23b4cdefg`。如果已刪除叢集，則可以從原始叢集的[備份還原叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)，然後[編輯自訂金鑰存放區的叢集 ID](update-keystore.md)。如需回應連接錯誤代碼的說明，請參閱 [如何修正連線失敗](fix-keystore.md#fix-keystore-failed)。

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "CustomKeyStoreType": "AWS_CLOUDHSM",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "FAILED"
      "ConnectionErrorCode": "CLUSTER_NOT_FOUND"
   ],
}
```

# 中斷連接 AWS CloudHSM 金鑰存放區
<a name="disconnect-keystore"></a>

當您中斷連接 AWS CloudHSM 金鑰存放區時， 會 AWS KMS 登出 AWS CloudHSM 用戶端、中斷與相關聯 AWS CloudHSM 叢集的連線，並移除其為支援連線而建立的網路基礎設施。

當 AWS CloudHSM 金鑰存放區中斷連線時，您可以管理 AWS CloudHSM 金鑰存放區及其 KMS 金鑰，但無法在 AWS CloudHSM 金鑰存放區中建立或使用 KMS 金鑰。金鑰存放區的連接狀態為 `DISCONNECTED`，並且自訂金鑰存放區中 KMS 金鑰的[金鑰狀態](key-state.md)為 `Unavailable`，除非其為 `PendingDeletion`。您可以隨時重新連接 AWS CloudHSM 金鑰存放區。

**注意**  
AWS CloudHSM 只有在金鑰存放區從未連線或您明確中斷`DISCONNECTED`連線時，金鑰存放區才會有連線狀態。如果您的 AWS CloudHSM 金鑰存放區連線狀態為 ，`CONNECTED`但您無法使用它，請確定其相關聯的 AWS CloudHSM 叢集處於作用中狀態，且至少包含一個作用中HSMs。如需連線失敗的協助，請參閱 [對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

當您中斷連接自訂金鑰存放區時，該金鑰存放區中的 KMS 金鑰會立即變成無法使用 (視最終一致性而定)。不過，使用受 KMS 金鑰保護之[資料金鑰](data-keys.md)所加密的資源不會受影響，除非再次使用 KMS 金鑰 (例如解密資料金鑰)。此問題會影響 AWS 服務，其中許多服務會使用資料金鑰來保護您的資源。如需詳細資訊，請參閱[無法使用的 KMS 金鑰如何影響資料金鑰](unusable-kms-keys.md)。

**注意**  
當自訂金鑰存放區中斷連接時，所有在自訂金鑰存放區中建立 KMS 金鑰的嘗試，或在密碼編譯操作中使用現有 KMS 金鑰的嘗試，均會失敗。此動作可防止使用者存放和存取敏感資料。

若要更好地預估中斷連接您的自訂金鑰存放區的效果，請在自訂金鑰存放區中[識別 KMS 金鑰](find-cmk-in-keystore.md)，並[判斷其過去的使用情形](deleting-keys-determining-usage.md)。

您可能會因為下列原因中斷連接 AWS CloudHSM 金鑰存放區：
+ **為了輪換 `kmsuser` 密碼。** AWS KMS 會在每次連接到 AWS CloudHSM 叢集時變更 `kmsuser` 密碼。若要強制密碼輪換，只需中斷連接並重新連接。
+ **稽核叢集中 KMS 金鑰的金鑰材料**。 AWS CloudHSM 當您中斷連接自訂金鑰存放區時， 會 AWS KMS 登出 AWS CloudHSM 用戶端中的[`kmsuser`加密使用者帳戶](keystore-cloudhsm.md#concept-kmsuser)。這可讓您以 `kmsuser` CU 身分登入叢集，並稽核和管理 KMS 金鑰的金鑰材料。
+ **立即停用 AWS CloudHSM 金鑰存放區中的所有 KMS 金鑰。**您可以使用 AWS 管理主控台 或 [DisableKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisableKey.html) 操作，在 AWS CloudHSM 金鑰存放區中[停用和重新啟用 KMS](enabling-keys.md) 金鑰。這些操作會快速完成，但一次只能對一個 KMS 金鑰進行。中斷連接 AWS CloudHSM 金鑰存放區會立即將 AWS CloudHSM 金鑰存放區中所有 KMS 金鑰的金鑰狀態變更為 `Unavailable`，以防止在任何密碼編譯操作中使用它們。
+ **為了修復失敗的連接嘗試**。如果嘗試連接 AWS CloudHSM 金鑰存放區失敗 （自訂金鑰存放區的連線狀態為 `FAILED`)，您必須先中斷連接 AWS CloudHSM 金鑰存放區，然後再嘗試再次連接。

## 中斷連接您的 AWS CloudHSM 金鑰存放區
<a name="disconnect-hsm-keystore"></a>

您可以在 AWS KMS 主控台或使用 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 操作中斷連接 AWS CloudHSM 金鑰存放區。

### 使用 AWS KMS 主控台中斷連線
<a name="disconnect-keystore-console"></a>

若要中斷 AWS KMS 主控台中已連線的 AWS CloudHSM 金鑰存放區，請先從自訂 AWS CloudHSM 金鑰存放區頁面中選擇金鑰存放區。 ****

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. 選擇您想要中斷連接的外部金鑰存放區列。

1. 從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Disconnect** (中斷連接)。

當操作完成時，連接狀態會從 **Disconnecting** (正在中斷連接) 變為 **Disconnected** (已中斷連接)。如果操作失敗，會出現錯誤訊息，其中描述問題並提供如何修正的協助。如果您需要更多協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

### 使用 AWS KMS API 中斷連線
<a name="disconnect-keystore-api"></a>

若要中斷連接已連線的 AWS CloudHSM 金鑰存放區，請使用 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 操作。如果操作成功， 會 AWS KMS 傳回 HTTP 200 回應和沒有屬性的 JSON 物件。

本節中的範例使用 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/)，但您可以使用任何支援的程式設計語言。

此範例會中斷 AWS CloudHSM 金鑰存放區的連線。執行此範例之前，請將範例 ID 以有效的 ID 取代。

```
$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

若要確認 AWS CloudHSM 金鑰存放區已中斷連線，請使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。在預設情況下，此操作會傳回您帳戶和區域中的所有自訂金鑰存放區。但是，您可以使用 `CustomKeyStoreId` 和 `CustomKeyStoreName` 參數 (但不能同時使用) 來限制對特定自訂金鑰存放區的回應。`ConnectionState` 的值`DISCONNECTED`表示此範例 AWS CloudHSM 金鑰存放區未連線到其 AWS CloudHSM 叢集。

```
$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
{
   "CustomKeyStores": [
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "ConnectionState": "DISCONNECTED",
      "CreationDate": "1.499288695918E9",
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "CustomKeyStoreType": "AWS_CLOUDHSM",
      "TrustAnchorCertificate": "<certificate string appears here>"
   ],
}
```

# 刪除 AWS CloudHSM 金鑰存放區
<a name="delete-keystore"></a>

當您刪除 AWS CloudHSM 金鑰存放區時， 會從 KMS AWS KMS 刪除 AWS CloudHSM 有關金鑰存放區的所有中繼資料，包括其與 AWS CloudHSM 叢集關聯的資訊。此操作不會影響 AWS CloudHSM 叢集、其 HSMs 或其使用者。您可以建立與相同 AWS CloudHSM 叢集相關聯的新 AWS CloudHSM 金鑰存放區，但無法復原刪除操作。

您只能刪除與其 AWS CloudHSM 叢集中斷連線且不包含任何 的 AWS CloudHSM 金鑰存放區 AWS KMS keys。刪除自訂金鑰存放區之前，請執行下列動作。
+ 驗證您將不再需要使用金鑰存放區中的任何 KMS 金鑰進行任何[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)。然後，[排程從金鑰存放區刪除](deleting-keys.md#delete-cmk-keystore)所有 KMS 金鑰。如需在 金鑰存放區中尋找 KMS AWS CloudHSM 金鑰的說明，請參閱 [在 金鑰存放區中尋找 KMS AWS CloudHSM 金鑰](find-cmk-in-keystore.md)。
+ 確認已刪除所有 KMS 金鑰。若要檢視 金鑰存放區中的 KMS AWS CloudHSM 金鑰，請參閱 [識別金鑰存放區中的 KMS AWS CloudHSM 金鑰](identify-key-types.md#identify-key-hsm-keystore)。
+ [中斷 AWS CloudHSM 金鑰存放區與其叢集的連線](disconnect-keystore.md)。 AWS CloudHSM 

請考慮[中斷其與其相關聯叢集的連線](disconnect-keystore.md)，而不是刪除 AWS CloudHSM 金鑰存放區。 AWS CloudHSM 當 AWS CloudHSM 金鑰存放區中斷連線時，您可以管理 AWS CloudHSM 金鑰存放區及其 AWS KMS keys。但您無法在金鑰存放區中建立或使用 KMS AWS CloudHSM 金鑰。您可以隨時重新連接 AWS CloudHSM 金鑰存放區。

## 刪除您的 AWS CloudHSM 金鑰存放區
<a name="delete-hsm-keystore"></a>

您可以在 AWS KMS 主控台或使用 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 操作來刪除 AWS CloudHSM 金鑰存放區。

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

若要刪除 中的 AWS CloudHSM 金鑰存放區 AWS 管理主控台，請先從自訂 AWS CloudHSM 金鑰存放區頁面中選取金鑰存放區。 ****

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. 尋找代表您要刪除之 AWS CloudHSM 金鑰存放區的列。如果 AWS CloudHSM 金鑰存放區的**連線狀態**未**中斷連線**，您必須在刪除[AWS CloudHSM 金鑰存放區之前中斷連線](disconnect-keystore.md)。

1. 從 **Key store actions** (金鑰存放區動作) 選單中，選擇 **Delete** (刪除)。

當操作完成時，會顯示成功訊息，且 AWS CloudHSM 金鑰存放區不會再出現在金鑰存放區清單中。如果操作失敗，就會出現錯誤訊息，其中描述問題並提供如何修正的協助。如果您需要更多協助，請參閱[對自訂金鑰存放區進行故障診斷](fix-keystore.md)。

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

若要刪除 AWS CloudHSM 金鑰存放區，請使用 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 操作。如果操作成功， 會 AWS KMS 傳回 HTTP 200 回應和沒有屬性的 JSON 物件。

若要開始，請確認 AWS CloudHSM 金鑰存放區不包含任何 AWS KMS keys。您無法刪除包含 KMS 金鑰的自訂金鑰存放區。第一個範例命令使用 [ListKeys](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListKeys.html) 和 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)，以範例 *cks-1234567890abcdef0* 自訂金鑰存放區 ID 在 AWS CloudHSM 金鑰存放區 AWS KMS keys 中搜尋 。在此情況下，命令不會傳回任何 KMS 金鑰。如果有傳回，請使用 [ScheduleKeyDeletion](https://docs.aws.amazon.com/kms/latest/APIReference/API_ScheduleKeyDeletion.html) 操作來排程每個 KMS 金鑰的刪除。

------
#### [ Bash ]

```
for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; 
do aws kms describe-key --key-id $key | 
grep '"CustomKeyStoreId": "cks-1234567890abcdef0"' --context 100; done
```

------
#### [ PowerShell ]

```
PS C:\> Get-KMSKeyList | Get-KMSKey | where CustomKeyStoreId -eq 'cks-1234567890abcdef0'
```

------

接著，中斷連接 AWS CloudHSM 金鑰存放區。此範例命令使用 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 操作來中斷 AWS CloudHSM 金鑰存放區與其 AWS CloudHSM 叢集的連線。執行此命令之前，請將範例自訂金鑰存放區 ID 以有效的 ID 取代。

------
#### [ Bash ]

```
$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

------
#### [ PowerShell ]

```
PS C:\> Disconnect-KMSCustomKeyStore -CustomKeyStoreId cks-1234567890abcdef0
```

------

自訂金鑰存放區中斷連接之後，您就可以使用 [DeleteCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DeleteCustomKeyStore.html) 操作將其刪除。

------
#### [ Bash ]

```
$ aws kms delete-custom-key-store --custom-key-store-id cks-1234567890abcdef0
```

------
#### [ PowerShell ]

```
PS C:\> Remove-KMSCustomKeyStore -CustomKeyStoreId cks-1234567890abcdef0
```

------

# 對自訂金鑰存放區進行故障診斷
<a name="fix-keystore"></a>

AWS CloudHSM 金鑰存放區旨在提供可用性和彈性。不過，您可能需要修復一些錯誤條件，才能維持 AWS CloudHSM 金鑰存放區的運作。

**Topics**
+ [如何修正無法使用的 KMS 金鑰](#fix-unavailable-cmks)
+ [如何修正失效的 KMS 金鑰](#fix-cmk-failed)
+ [如何修正連線失敗](#fix-keystore-failed)
+ [如何回應密碼編譯操作失敗](#fix-keystore-communication)
+ [如何修正無效的 `kmsuser` 登入資料](#fix-keystore-password)
+ [如何刪除遺棄的金鑰材料](#fix-keystore-orphaned-key)
+ [如何復原 KMS 金鑰已刪除的金鑰材料](#fix-keystore-recover-backing-key)
+ [如何以 `kmsuser` 身分登入](#fix-login-as-kmsuser)

## 如何修正無法使用的 KMS 金鑰
<a name="fix-unavailable-cmks"></a>

金鑰存放區 AWS KMS keys 中 [的金鑰狀態](key-state.md)通常是 `Enabled`。 AWS CloudHSM 如同所有 KMS 金鑰，當您停用金鑰存放區中的 KMS 金鑰或排定刪除金鑰時， AWS CloudHSM 金鑰狀態會變更。不過，與其他 KMS 金鑰不同，自訂金鑰存放區中的 KMS 金鑰也可以有 `Unavailable` 的[金鑰狀態](key-state.md)。

`Unavailable` 的金鑰狀態表示自訂金鑰存放區中的 KMS 金鑰是特意[中斷連接](disconnect-keystore.md)，並且會在失敗時 (如果有) 嘗試重新連接。當 KMS 金鑰無法使用時，您可以檢視和管理 KMS 金鑰，但無法將它用於[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)。

若要尋找 KMS 金鑰的金鑰狀態，請在 **Customer managed keys** (客戶受管金鑰) 頁面上，檢視 KMS 金鑰的 **Status** (狀態) 欄位。或使用 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 操作並檢視回應中的 `KeyState` 元素。如需詳細資訊，請參閱[識別和檢視金鑰](viewing-keys.md)。

中斷連線的自訂金鑰存放區中的 KMS 金鑰會有 `Unavailable` 或 `PendingDeletion` 的金鑰狀態。排程要從自訂金鑰存放區刪除的 KMS 金鑰會有 `Pending Deletion` 金鑰狀態，即使自訂金鑰存放區中斷連接時亦然。這可讓您取消排程的金鑰刪除，而無需重新連接自訂金鑰存放區。

若要修正無法使用的 KMS 金鑰，請[重新連線自訂金鑰存放區](disconnect-keystore.md)。自訂金鑰存放區重新連接之後，自訂金鑰存放區中 KMS 金鑰的金鑰狀態會自動還原到其先前的狀態，例如 `Enabled` 或 `Disabled`。等待刪除的 KMS 金鑰會保持在 `PendingDeletion` 狀態。不過，當問題存在時，[啟用和停用無法使用的 KMS 金鑰](enabling-keys.md)不會變更它的金鑰狀態。啟用或停用動作僅在金鑰可供使用時生效。

如需失敗的連接的協助，請參閱[如何修正連線失敗](#fix-keystore-failed)。

## 如何修正失效的 KMS 金鑰
<a name="fix-cmk-failed"></a>

在 AWS CloudHSM 金鑰存放區中建立和使用 KMS 金鑰的問題可能是由 AWS CloudHSM 金鑰存放區、其關聯的 AWS CloudHSM 叢集、KMS 金鑰或其金鑰材料的問題所造成。

當 AWS CloudHSM 金鑰存放區與其 AWS CloudHSM 叢集中斷連線時，自訂金鑰存放區中 KMS 金鑰的金鑰狀態為 `Unavailable`。在中斷連線的金鑰存放區中建立 KMS AWS CloudHSM 金鑰的所有請求都會傳回`CustomKeyStoreInvalidStateException`例外狀況。加密、解密、重新加密或產生資料金鑰的所有請求會傳回 `KMSInvalidStateException` 例外狀況。若要修正此問題，[請重新連接 AWS CloudHSM 金鑰存放區](connect-keystore.md)。

不過，即使 AWS CloudHSM 金鑰狀態為 `Enabled`且金鑰存放區的連線狀態為 ，您嘗試在金鑰存放區中使用 KMS AWS CloudHSM 金鑰進行[密碼編譯操作](manage-cmk-keystore.md#use-cmk-keystore)仍可能會失敗`Connected`。這可能是因為以下任何情況所造成。
+ 可能已從相關聯的 AWS CloudHSM 叢集刪除 KMS 金鑰的金鑰材料。若要調查，[請尋找 KMS 金鑰之金鑰材料的金鑰 ID](find-handle-for-cmk-id.md)，並視需要嘗試[復原金鑰材料](#fix-keystore-recover-backing-key)。
+ 所有 HSMs都已從與 AWS CloudHSM 金鑰存放區相關聯的 AWS CloudHSM 叢集中刪除。若要在密碼編譯操作的 AWS CloudHSM 金鑰存放區中使用 KMS 金鑰，其 AWS CloudHSM 叢集必須至少包含一個作用中的 HSM。若要驗證 AWS CloudHSM 叢集中 HSMs的數量和狀態，[請使用 AWS CloudHSM 主控台](https://docs.aws.amazon.com/cloudhsm/latest/userguide/add-remove-hsm.html)或 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。若要將 HSM 新增至叢集，請使用 AWS CloudHSM 主控台或 [CreateHsm](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) 操作。
+ 已刪除與 AWS CloudHSM 金鑰存放區相關聯的 AWS CloudHSM 叢集。若要修正此問題，請從與原始叢集相關的備份 (例如，原始叢集的備份，或用於建立原始叢集的備份) [建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)。然後在自訂金鑰存放區設定中[編輯叢集 ID](update-keystore.md)。如需說明，請參閱[如何復原 KMS 金鑰已刪除的金鑰材料](#fix-keystore-recover-backing-key)。
+ 與自訂金鑰存放區相關聯的 AWS CloudHSM 叢集沒有任何可用的 PKCS \$111 工作階段。這通常發生在高爆量流量期間，此時需要額外的工作階段來服務流量。若要回應帶有關於 PKCS \$111 工作階段錯誤訊息的 `KMSInternalException`，請退回並重試請求。

## 如何修正連線失敗
<a name="fix-keystore-failed"></a>

如果您嘗試[將 AWS CloudHSM 金鑰存放區](connect-keystore.md)連接至其 AWS CloudHSM 叢集，但 操作失敗，則 AWS CloudHSM 金鑰存放區的連線狀態會變更為 `FAILED`。若要尋找 AWS CloudHSM 金鑰存放區的連線狀態，請使用 AWS KMS 主控台或 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作。

或者，由於很容易偵測到叢集組態錯誤，一些連接嘗試會很快失敗。在這種情況下，連接狀態仍然是 `DISCONNECTED`。這些失敗會傳回錯誤訊息或 [例外狀況](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html#API_ConnectCustomKeyStore_Errors)來說明嘗試失敗的原因。檢閱例外狀況描述和[叢集需求](create-keystore.md#before-keystore)、修正問題、視需要[更新 AWS CloudHSM 金鑰存放區](update-keystore.md)，然後再次嘗試連線。

當連接狀態為 `FAILED` 時，請執行 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作，並查看回應中的 `ConnectionErrorCode` 元素。

**注意**  
當 AWS CloudHSM 金鑰存放區的連線狀態為 時`FAILED`，您必須先[中斷連接 AWS CloudHSM 金鑰存放區，](disconnect-keystore.md)然後再嘗試重新連線。您無法以連線狀態`FAILED`連接 AWS CloudHSM 金鑰存放區。
+ `CLUSTER_NOT_FOUND` 表示 AWS KMS 找不到具有指定 AWS CloudHSM 叢集 ID 的叢集。發生此情況可能是因為提供給 API 操作的是錯誤的叢集 ID 或是已刪除叢集而無法取代。若要修正此錯誤，請驗證叢集 ID，例如使用 AWS CloudHSM 主控台或 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。如果已刪除叢集，請從原始叢集的[最近備份建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)。然後，[中斷連接 AWS CloudHSM 金鑰存放](disconnect-keystore.md)區、[編輯 AWS CloudHSM 金鑰存放](update-keystore.md)區叢集 ID 設定，然後將[AWS CloudHSM 金鑰存放區重新](connect-keystore.md)連線至叢集。
+ `INSUFFICIENT_CLOUDHSM_HSMS` 表示相關聯的 AWS CloudHSM 叢集不包含任何 HSMs。若要連接，叢集必須至少有一個 HSM。若要尋找叢集中的 HSM 數量，請使用 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 操作。若要解決此錯誤，請[新增至少一個 HSM](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-hsm.html) 到叢集。如果您新增多個 HSM，最好在不同的可用區域建立它們。
+ `INSUFFICIENT_FREE_ADDRESSES_IN_SUBNET` 表示 AWS KMS 無法將 AWS CloudHSM 金鑰存放區連接至其 AWS CloudHSM 叢集，因為至少一個[與叢集相關聯的私有子網路](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-subnets.html)沒有任何可用的 IP 地址。 AWS CloudHSM 金鑰存放區連線在每個相關聯的私有子網路中需要一個可用的 IP 地址，但最好有兩個。

  您[無法新增 IP 地址](https://aws.amazon.com/premiumsupport/knowledge-center/vpc-ip-address-range/) (CIDR 區塊) 至現有的子網路。如果可能，請移動或刪除子網路中使用 IP 地址的其他資源，例如未使用的 EC2 執行個體或彈性網路介面。否則，您可以從[最近備份的叢集建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)，該 AWS CloudHSM 叢集具有新的或現有的私有子網路，這些子網路具有[更多可用的地址空間](https://docs.aws.amazon.com/vpc/latest/userguide/configure-subnets.html#subnet-sizing)。然後，若要將新叢集與您的 AWS CloudHSM 金鑰存放區建立關聯，[請中斷連接自訂金鑰存放區](disconnect-keystore.md)，[將金鑰存放區的叢集 ID 變更為](update-keystore.md)新叢集的 ID，然後再次嘗試連線。 AWS CloudHSM 
**提示**  
若要避免[重設密碼`kmsuser`](#fix-keystore-password)，請使用 AWS CloudHSM 叢集的最新備份。
+ `INTERNAL_ERROR` 表示 AWS KMS 因內部錯誤而無法完成請求。重試 請求。對於`ConnectCustomKeyStore`請求，請先中斷連接 AWS CloudHSM 金鑰存放區，然後再嘗試再次連線。
+ `INVALID_CREDENTIALS` 表示 AWS KMS 無法登入相關聯的 AWS CloudHSM 叢集，因為它沒有正確的`kmsuser`帳戶密碼。如需此錯誤的協助，請參閱[如何修正無效的 `kmsuser` 登入資料](#fix-keystore-password)。
+ `NETWORK_ERRORS` 通常指出暫時性的網路問題。[中斷連接 AWS CloudHSM 金鑰存放區](disconnect-keystore.md)，等待幾分鐘，然後再次嘗試連線。
+ `SUBNET_NOT_FOUND` 表示 AWS CloudHSM 叢集組態中至少有一個子網路已刪除。如果 AWS KMS 找不到叢集組態中的所有子網路， 會嘗試將 AWS CloudHSM 金鑰存放區連線至 AWS CloudHSM 叢集失敗。

  若要修正此錯誤，[請從相同叢集的最近備份建立](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html) AWS CloudHSM 叢集。(此程序會建立具有 VPC 和私有子網路的新叢集組態)。請確認新叢集符合[自訂金鑰存放區的需求](create-keystore.md#before-keystore)，並記下新的叢集 ID。然後，若要將新叢集與您的 AWS CloudHSM 金鑰存放區建立關聯，[請中斷連接自訂金鑰存放區](disconnect-keystore.md)，將 AWS CloudHSM 金鑰存放區的[叢集 ID 變更為](update-keystore.md)新叢集的 ID，然後再次嘗試連線。
**提示**  
若要避免[重設密碼`kmsuser`](#fix-keystore-password)，請使用 AWS CloudHSM 叢集的最新備份。
+ `USER_LOCKED_OUT` 指出 [`kmsuser` 加密使用者 (CU) 帳戶](keystore-cloudhsm.md#concept-kmsuser)因為有太多失敗的密碼嘗試，已鎖定在相關聯的 AWS CloudHSM 叢集之外。如需此錯誤的協助，請參閱[如何修正無效的 `kmsuser` 登入資料](#fix-keystore-password)。

  若要修正此錯誤，[請中斷連接 AWS CloudHSM 金鑰存放區](disconnect-keystore.md)，並使用 CloudHSM CLI 中的[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 命令來變更`kmsuser`帳戶密碼。然後編輯自訂金鑰存放區的[`kmsuser` 密碼設定](update-keystore.md)，並嘗試重新連接。如需協助，請使用[如何修正無效的 `kmsuser` 登入資料](#fix-keystore-password)主題中描述的程序。
+ `USER_LOGGED_IN` 表示 CU `kmsuser` 帳戶已登入相關聯的 AWS CloudHSM 叢集。這 AWS KMS 可防止 輪換`kmsuser`帳戶密碼和登入叢集。若要修正這個錯誤，請將 `kmsuser` CU 登出叢集。如果您變更`kmsuser`密碼以登入叢集，也必須更新金鑰存放區的 AWS CloudHSM 金鑰存放區密碼值。如需協助，請參閱 [如何登出和重新連線](#login-kmsuser-2)。
+ `USER_NOT_FOUND` 表示 在關聯的 AWS CloudHSM 叢集中 AWS KMS 找不到 `kmsuser` CU 帳戶。若要修正此錯誤，請在叢集中[建立 `kmsuser` CU 帳戶](create-keystore.md#kmsuser-concept)，然後[更新金鑰存放區的金鑰存放區密碼值](update-keystore.md)。 AWS CloudHSM 如需協助，請參閱 [如何修正無效的 `kmsuser` 登入資料](#fix-keystore-password)。

## 如何回應密碼編譯操作失敗
<a name="fix-keystore-communication"></a>

在自訂金鑰存放區採用 KMS 金鑰的密碼編譯操作可能失敗，並顯示 `KMSInvalidStateException`。下列錯誤訊息可能會伴隨 `KMSInvalidStateException`。


|  | 
| --- |
| KMS 無法與 CloudHSM 叢集通訊。這可能是暫時性的網路問題。如果您重複看到此錯誤，請確認 AWS CloudHSM 叢集 VPC 的網路 ACLs 和安全群組規則正確無誤。 | 
+ 雖然這是 HTTPS 400 錯誤，但可能是因為暫時性網路問題所造成的。若要回應，請先重試請求。不過，如果繼續失敗，請檢查聯網元件的組態。此錯誤很可能是因為聯網元件設定錯誤所造成，例如防火牆規則或 VPC 安全群組規則封鎖傳出流量。例如，KMS 無法透過 IPv6 與 AWS CloudHSM 叢集通訊。如需先決條件的詳細資訊，請參閱 [建立 AWS CloudHSM 金鑰存放區](create-keystore.md)。


|  | 
| --- |
| KMS 無法與您的 AWS CloudHSM 叢集通訊，因為 kmsuser 已鎖定。如果您重複看到此錯誤，請中斷連接 AWS CloudHSM 金鑰存放區並重設 kmsuser 帳戶密碼。更新自訂金鑰存放區的 kmsuser 密碼並重試請求。 | 
+ 此錯誤訊息指出 [`kmsuser`加密使用者 (CU) 帳戶](keystore-cloudhsm.md#concept-kmsuser)因密碼嘗試多次失敗，已鎖定在關聯的 AWS CloudHSM 叢集之外。如需此錯誤的協助，請參閱[如何中斷連線和登入](#login-kmsuser-1)。

## 如何修正無效的 `kmsuser` 登入資料
<a name="fix-keystore-password"></a>

當您[連接 AWS CloudHSM 金鑰存放區](connect-keystore.md)時， 會以[`kmsuser`加密使用者](keystore-cloudhsm.md#concept-kmsuser) (CU) 身分 AWS KMS 登入相關聯的 AWS CloudHSM 叢集。它會保持登入狀態，直到 AWS CloudHSM 金鑰存放區中斷連線為止。[DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 回應顯示 `FAILED` 的 `ConnectionState` 和 `INVALID_CREDENTIALS` 的 `ConnectionErrorCode` 值，如以下範例所示。

如果您中斷連接 AWS CloudHSM 金鑰存放區並變更`kmsuser`密碼， AWS KMS 無法使用 CU `kmsuser` 帳戶的登入資料登入 AWS CloudHSM 叢集。因此，所有連線 AWS CloudHSM 金鑰存放區的嘗試都會失敗。`DescribeCustomKeyStores` 回應顯示 `FAILED` 的 `ConnectionState` 和 `INVALID_CREDENTIALS` 的 `ConnectionErrorCode` 值，如以下範例所示。

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleKeyStore
{
   "CustomKeyStores": [
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "ConnectionErrorCode": "INVALID_CREDENTIALS"
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "FAILED"
   ],
}
```

此外，在以不正確的密碼嘗試登入叢集失敗五次之後， AWS CloudHSM 會鎖定該使用者帳戶。若要登入叢集，您必須變更帳戶的密碼。

如果 嘗試以 CU `kmsuser` 身分登入叢集時 AWS KMS 取得鎖定回應，連線 AWS CloudHSM 金鑰存放區的請求會失敗。[DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 回應包含 `FAILED` 的 `ConnectionState` 和 `USER_LOCKED_OUT` 的 `ConnectionErrorCode` 值，如以下範例所示。

```
$ aws kms describe-custom-key-stores --custom-key-store-name ExampleKeyStore
{
   "CustomKeyStores": [
      "CloudHsmClusterId": "cluster-1a23b4cdefg",
      "ConnectionErrorCode": "USER_LOCKED_OUT"
      "CustomKeyStoreId": "cks-1234567890abcdef0",
      "CustomKeyStoreName": "ExampleKeyStore",
      "TrustAnchorCertificate": "<certificate string appears here>",
      "CreationDate": "1.499288695918E9",
      "ConnectionState": "FAILED"
   ],
}
```

若要修正任一個情況，請使用下列程序。

1. [中斷連接 AWS CloudHSM 金鑰存放區](disconnect-keystore.md)。

1. 執行 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作，並檢視回應中 `ConnectionErrorCode` 元素的值。
   + 如果 `ConnectionErrorCode` 值為 `INVALID_CREDENTIALS`，請判斷 `kmsuser` 帳戶目前的密碼。如有必要，請使用 CloudHSM CLI 中的[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 命令，將密碼設定為已知值。
   + 如果`ConnectionErrorCode`值為 `USER_LOCKED_OUT`，您必須使用 CloudHSM CLI 中的[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 命令來變更`kmsuser`密碼。

1. [編輯 `kmsuser` 密碼設定](update-keystore.md)，讓它符合叢集中目前的 `kmsuser` 密碼。此動作可告知 AWS KMS 要使用哪個密碼來登入叢集。它不會變更叢集中的 `kmsuser` 密碼。

1. [連接自訂金鑰存放區](connect-keystore.md)。

## 如何刪除遺棄的金鑰材料
<a name="fix-keystore-orphaned-key"></a>

排程從金鑰存放區刪除 KMS AWS CloudHSM 金鑰之後，您可能需要從相關聯的 AWS CloudHSM 叢集手動刪除對應的金鑰材料。

當您在 AWS CloudHSM 金鑰存放區中建立 KMS 金鑰時， 會在 中 AWS KMS 建立 KMS 金鑰中繼資料， AWS KMS 並在相關聯的 AWS CloudHSM 叢集中產生金鑰材料。當您排程刪除 AWS CloudHSM 金鑰存放區中的 KMS 金鑰時，在等待期間之後， 會 AWS KMS 刪除 KMS 金鑰中繼資料。然後， AWS KMS 會盡最大努力從 AWS CloudHSM 叢集中刪除對應的金鑰材料。如果 AWS KMS 無法存取叢集，則嘗試可能會失敗，例如當它與 AWS CloudHSM 金鑰存放區中斷連線或`kmsuser`密碼變更時。 AWS KMS 不會嘗試從叢集備份中刪除金鑰材料。

AWS KMS 會在 AWS CloudTrail 日誌`DeleteKey`的事件項目中報告嘗試從叢集刪除金鑰材料的結果。它會出現在 `additionalEventData` 元素的 `backingKeysDeletionStatus` 元素中，如以下範例項目所示。項目也包含 KMS 金鑰 ARN、 AWS CloudHSM 叢集 ID 和金鑰材料的 ID (`backing-key-id`)。

```
{
    "eventVersion": "1.08",
    "userIdentity": {
        "accountId": "111122223333",
        "invokedBy": "AWS Internal"
    },
    "eventTime": "2021-12-10T14:23:51Z",
    "eventSource": "kms.amazonaws.com",
    "eventName": "DeleteKey",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "AWS Internal",
    "userAgent": "AWS Internal",
    "requestParameters": null,
    "responseElements":  {
        "keyId":"arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
    },
    "additionalEventData": {
        "customKeyStoreId": "cks-1234567890abcdef0",
        "clusterId": "cluster-1a23b4cdefg",
        "backingKeys": "[{\"backingKeyId\":\"backing-key-id\"}]",
        "backingKeysDeletionStatus": "[{\"backingKeyId\":\"backing-key-id\",\"deletionStatus\":\"FAILURE\"}]"
    },
    "eventID": "c21f1f47-f52b-4ffe-bff0-6d994403cf40",
    "readOnly": false,
    "resources": [
        {
            "accountId": "111122223333",
            "type": "AWS::KMS::Key",
            "ARN": "arn:aws:kms:eu-west-1:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"
        }
    ],
    "eventType": "AwsServiceEvent",
    "recipientAccountId": "111122223333",
    "managementEvent": true,
    "eventCategory": "Management"
}
```

**備註**  
下列程序使用 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)。

下列程序示範如何從相關聯的 AWS CloudHSM 叢集刪除孤立的金鑰材料。

1. 如果 AWS CloudHSM 金鑰存放區尚未中斷連線，請中斷連線，然後[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-login.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-login.html)，如中所述[如何中斷連線和登入](#login-kmsuser-1)。
**注意**  
當自訂金鑰存放區中斷連接時，所有在自訂金鑰存放區中建立 KMS 金鑰的嘗試，或在密碼編譯操作中使用現有 KMS 金鑰的嘗試，均會失敗。此動作可防止使用者存放和存取敏感資料。

1. 使用 CloudHSM CLI 中的[金鑰刪除](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-key-delete.html)命令，從叢集中的 HSMs刪除金鑰。

    AWS CloudHSM 金鑰存放區中具有 KMS 金鑰之密碼編譯操作的所有 CloudTrail 日誌項目都包含具有 `customKeyStoreId`和 `additionalEventData`的欄位`backingKey`。`backingKeyId` 欄位中傳回的值是 CloudHSM 金鑰`id`屬性。建議您透過 篩選**金鑰刪除**操作`id`，以刪除您在 CloudTrail 日誌中識別的孤立金鑰材料。

   AWS CloudHSM 會將`backingKeyId`值識別為十六進位值。若要依 篩選`id`，您必須在 前面`backingKeyId`加上 `Ox`。例如，如果 CloudTrail 日誌`backingKeyId`中的 是 `1a2b3c45678abcdef`，您會依 篩選`0x1a2b3c45678abcdef`。

   下列範例會從叢集中的 HSMs刪除金鑰。`backing-key-id` 會列在 CloudTrail 日誌項目中。執行此命令之前，請將範例取代`backing-key-id`為您的帳戶中有效的範例。

   ```
   aws-cloudhsm key delete --filter attr.id="0x<backing-key-id>"
   {
     "error_code": 0,
     "data": {
       "message": "Key deleted successfully"
     }
   }
   ```

1. 如中所述登出並重新連接 AWS CloudHSM 金鑰存放區[如何登出和重新連線](#login-kmsuser-2)。

## 如何復原 KMS 金鑰已刪除的金鑰材料
<a name="fix-keystore-recover-backing-key"></a>

如果刪除 AWS KMS key 的金鑰材料，則 KMS 金鑰無法使用，而且無法在 KMS 金鑰下加密的所有加密文字都無法解密。如果從關聯的 AWS CloudHSM 叢集中刪除金鑰存放區中 KMS 金鑰的 AWS CloudHSM 金鑰材料，就會發生這種情況。不過，復原金鑰材料可能可行。

當您在 AWS CloudHSM 金鑰存放區中建立 AWS KMS key (KMS 金鑰） 時， 會 AWS KMS 登入相關聯的 AWS CloudHSM 叢集，並建立 KMS 金鑰的金鑰材料。它也會將密碼變更為只有它知道的值，只要 AWS CloudHSM 金鑰存放區已連線，就會保持登入狀態。由於只有金鑰擁有者 (也就是建立金鑰的 CU) 可以刪除金鑰，幾乎不可能會從 HSM 中不慎刪除金鑰。

不過，如果某個 KMS 金鑰的金鑰材料已從叢集中的 HSM 刪除，KMS 金鑰之金鑰狀態最終會變更為 `UNAVAILABLE`。如果您嘗試將該 KMS 金鑰用於密碼編譯操作，則該操作會失敗，出現 `KMSInvalidStateException` 例外狀況。最重要的是，使用該 KMS 金鑰加密的任何資料會無法解密。

在某些情況下，您可以透過[從包含金鑰材料的備份建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)來復原已刪除的金鑰材料。此策略僅在當該金鑰存在時並且在刪除它之前建立了至少一個備份的情況下才有用。

使用以下程序來復原金鑰材料。

1. 尋找包含金鑰材料的叢集備份。該備份也必須包含您需要支援叢集及其加密資料的所有使用者和金鑰。

   使用 [DescribeBackups](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeBackups.html) 操作來列出叢集的備份。然後使用備份時間戳記來協助您選取備份。若要限制與 AWS CloudHSM 金鑰存放區相關聯的叢集輸出，請使用 `Filters` 參數，如下列範例所示。

   ```
   $ aws cloudhsmv2 describe-backups --filters clusterIds=<cluster ID>
   {
       "Backups": [
           {
               "ClusterId": "cluster-1a23b4cdefg",
               "BackupId": "backup-9g87f6edcba",
               "CreateTimestamp": 1536667238.328,
               "BackupState": "READY"
           },
                ...
       ]
   }
   ```

1. [從選取的備份建立叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html)。驗證備份包含已刪除的金鑰和叢集所需的其他使用者和金鑰。

1. [中斷連接 AWS CloudHSM 金鑰存放區](disconnect-keystore.md)，以便編輯其屬性。

1. [編輯金鑰存放區的叢集 ID](update-keystore.md)。 AWS CloudHSM 輸入您從備份建立之叢集的叢集 ID。由於該叢集與原始叢集共用備份歷史記錄，新叢集 ID 應該是有效的。

1. [重新連接 AWS CloudHSM 金鑰存放區](connect-keystore.md)。

## 如何以 `kmsuser` 身分登入
<a name="fix-login-as-kmsuser"></a>

若要為您的金鑰存放區在 AWS CloudHSM 叢集中建立和管理 AWS CloudHSM 金鑰材料， AWS KMS 會使用[`kmsuser`加密使用者 (CU) 帳戶](keystore-cloudhsm.md#concept-kmsuser)。您可以在叢集中[建立 `kmsuser` CU 帳戶](create-keystore.md#before-keystore)，並在建立 AWS CloudHSM 金鑰存放區 AWS KMS 時提供其密碼給 。

一般而言， 會 AWS KMS 管理`kmsuser`帳戶。不過，對於某些任務，您需要中斷連接 AWS CloudHSM 金鑰存放區、以 CU `kmsuser` 身分登入叢集，並使用 [CloudHSM 命令列界面 (CLI)](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli.html)。

**注意**  
當自訂金鑰存放區中斷連接時，所有在自訂金鑰存放區中建立 KMS 金鑰的嘗試，或在密碼編譯操作中使用現有 KMS 金鑰的嘗試，均會失敗。此動作可防止使用者存放和存取敏感資料。

本主題說明如何[中斷連接您的 AWS CloudHSM 金鑰存放區並以 身分登入](#login-kmsuser-1)`kmsuser`、執行 AWS CloudHSM 命令列工具，以及[登出並重新連接您的 AWS CloudHSM 金鑰存放區](#login-kmsuser-2)。

**Topics**
+ [如何中斷連線和登入](#login-kmsuser-1)
+ [如何登出和重新連線](#login-kmsuser-2)

### 如何中斷連線和登入
<a name="login-kmsuser-1"></a>

每次都需要使用下列程序，以`kmsuser`加密使用者身分登入相關聯的叢集。

**備註**  
下列程序使用 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 金鑰存放區尚未中斷連線，請中斷其連線。您可以使用 AWS KMS 主控台或 AWS KMS API。

   當您的 AWS CloudHSM 金鑰連線時， AWS KMS 會以 身分登入`kmsuser`。如此會防止您以 `kmsuser` 身分登入或變更 `kmsuser` 密碼。

   例如，此命令使用 [DisconnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_DisconnectCustomKeyStore.html) 來中斷連接範例金鑰存放區。將範例 AWS CloudHSM 金鑰存放區 ID 取代為有效的 ID。

   ```
   $ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
   ```

1. 使用**登入**命令以管理員身分登入。使用 *AWS CloudHSM 使用者指南*[的使用 CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-getting-started.html#w17aac19c11c13b7) 一節中所述的程序。

   ```
   aws-cloudhsm > login --username admin --role admin
             Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "admin",
       "role": "admin"
     }
   }
   ```

1. 使用 CloudHSM CLI 中的[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-user-change-password.html) 命令，將`kmsuser`帳戶的密碼變更為您知道的密碼。（在您連接 AWS CloudHSM 金鑰存放區時AWS KMS 輪換密碼。) 密碼必須包含 7 到 32 個英數字元。區分大小寫，且不能包含任何特殊字元。

1. `kmsuser` 使用您設定的密碼登入為 。如需詳細說明，請參閱*AWS CloudHSM 《 使用者指南*》中的[使用 CloudHSM CLI](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-getting-started.html#w17aac19c11c13b7) 一節。

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

### 如何登出和重新連線
<a name="login-kmsuser-2"></a>

每次您需要以`kmsuser`加密使用者身分登出並重新連接金鑰存放區時，請使用下列程序。

**備註**  
下列程序使用 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. 執行任務，然後使用 CloudHSM CLI 中的[https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-logout.html](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_cli-logout.html)命令來登出。如果您不登出，嘗試重新連接您的 AWS CloudHSM 金鑰存放區將會失敗。

   ```
   aws-cloudhsm  logout
   {
     "error_code": 0,
     "data": "Logout successful"
   }
   ```

1. [編輯自訂金鑰存放區的 `kmsuser` 密碼設定](update-keystore.md)。

   這會告知叢集`kmsuser`中 的 AWS KMS 目前密碼。如果您省略此步驟， AWS KMS 將無法以 身分登入叢集`kmsuser`，而且所有重新連線自訂金鑰存放區的嘗試都會失敗。您可以使用 AWS KMS 主控台或 [UpdateCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateCustomKeyStore.html) 操作的 `KeyStorePassword` 參數。

   例如，此命令 AWS KMS 會告知目前的密碼為 `tempPassword`。將範例密碼以實際密碼取代。

   ```
   $ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password tempPassword
   ```

1. 將 AWS KMS 金鑰存放區重新連線至其 AWS CloudHSM 叢集。將範例 AWS CloudHSM 金鑰存放區 ID 取代為有效的 ID。在連線過程中， 會將`kmsuser`密碼 AWS KMS 變更為只有它知道的值。

   [ConnectCustomKeyStore](https://docs.aws.amazon.com/kms/latest/APIReference/API_ConnectCustomKeyStore.html) 操作會很快傳回，但連接程序可能需要一段很長的時間。初始回應並不表示連接程序已成功。

   ```
   $ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0
   ```

1. 使用 [DescribeCustomKeyStores](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeCustomKeyStores.html) 操作來驗證 AWS CloudHSM 金鑰存放區是否已連線。將範例 AWS CloudHSM 金鑰存放區 ID 取代為有效的 ID。

   在此範例中，連線狀態欄位會顯示 AWS CloudHSM 金鑰存放區現在已連線。

   ```
   $ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0
   {
      "CustomKeyStores": [
         "CustomKeyStoreId": "cks-1234567890abcdef0",
         "CustomKeyStoreName": "ExampleKeyStore",
         "CloudHsmClusterId": "cluster-1a23b4cdefg",
         "TrustAnchorCertificate": "<certificate string appears here>",
         "CreationDate": "1.499288695918E9",
         "ConnectionState": "CONNECTED"
      ],
   }
   ```