

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

# 叢集 HSM 類型遷移
<a name="cluster-hsm-type-modification"></a>

AWS CloudHSM 提供變更現有叢集 HSM 類型的功能。檢閱此頁面上的資料表，判斷是否允許修改 HSM 類型。

如需支援的 HSMs 類型及其功能的詳細資訊，請參閱 [中的 HSM 類型 AWS CloudHSM](hsm-types.md)。

**注意**  
您無法在此操作期間變更叢集的 FIPS 模式。


| 從 | 到 | Comment | 
| --- | --- | --- | 
| hsm1.medium | hsm2m.medium | 允許 | 
| hsm2m.medium | hsm1.medium | 條件式。您可以在遷移開始的 24 小時內，從 hsm2m.medium 復原至 hsm1.medium。 | 

**Topics**
+ [從 hsm1.medium 遷移至 hsm2m.medium](hsm1-to-hsm2-migration.md)

# 從 hsm1.medium 遷移至 hsm2m.medium
<a name="hsm1-to-hsm2-migration"></a>

您可以將 AWS CloudHSM 叢集從 hsm1.medium 遷移至 hsm2m.medium。本主題說明先決條件、遷移程序和轉返程序。

開始遷移之前，請確定您的應用程式遵循 中的建議[架構您的叢集以獲得高可用性](bp-cluster-management.md#bp-high-availability)。這有助於避免程序期間的停機時間。

**注意**  
hsm2m.medium 的自動遷移將於 2026 年 1 月 20 日開始。

## hsm1.medium 到 hsm2m.medium 遷移程序概觀
<a name="migration-overview"></a>

您可以使用 AWS CloudHSM 主控台、 AWS CLI或 AWS CloudHSM API 開始遷移。無論您在何處啟動， AWS CloudHSM 叢集遷移都會使用 `modify-cluster` API 端點。或者，AWS CloudHSM 將代表您自動遷移叢集。一旦遷移開始，您的整個叢集就會進入有限寫入模式。如需詳細資訊，請參閱[叢集有限寫入模式](#migration-limited-write-mode)。

為了將影響降至最低， 會將 HSMs 從 hsm1.medium AWS CloudHSM 變更為 hsm2m.medium，一次一個。替換 HSMs 會維護相同的 IP 地址，因此不需要在遷移期間或之後變更組態。

以下是遷移的運作方式：

1. 在遷移第一個 HSM 之前， AWS CloudHSM 會建立整個叢集的完整備份。

1. 使用此備份， AWS CloudHSM 會建立請求類型 (hsm2m.medium) 的新 HSM，以取代第一個 HSM。

1. 在遷移每個後續 HSM 之前， 會 AWS CloudHSM 建立整個叢集的新完整備份。

1. AWS CloudHSM 針對叢集中的每個 HSM 重複步驟 3 和 4，一次遷移一個 HSM。

1. 每個個別 HSM 遷移大約需要 30 分鐘。

AWS CloudHSM 會監控叢集運作狀態，並在整個遷移過程中執行驗證。如果 AWS CloudHSM 偵測到錯誤增加或驗證檢查失敗，它會自動停止遷移，並將叢集還原為其原始 HSM 類型。您也可以在開始遷移後最多 24 小時內手動復原。在復原之前，請參閱 [HSM 類型復原考量](#rollback-migration)。

## 遷移至 hsm2m.medium 的先決條件
<a name="migration-validation-checks"></a>

您現有的 AWS CloudHSM 叢集必須符合這些需求，才能遷移至 hsm2m.medium。如果在驗證檢查期間不符合任何條件， AWS CloudHSM 會自動將叢集還原為其原始 HSM 類型。

如需已知遷移問題的清單，請參閱 [AWS CloudHSM 叢集修改的已知問題](ki-cluster-modification.md)
+ 在過去 7 天內：
  + 所有用戶端連線都已使用 SDK 5.9 或更新版本。
    + 如果執行 ECDSA 驗證，所有用戶端連線都已使用 SDK 5.13 或更新版本。
  + AWS CloudHSM 執行個體只使用支援 （且沒有已棄用） 的功能。如需詳細資訊，請參閱[棄用通知](compliance-dep-notif.md#compliance-dep-notif-1)。
  + 您必須在過去 7 天內使用 SDK 與叢集中至少一個 HSM 連線。
+ 叢集處於 ACTIVE 狀態。
+ 叢集有 27 HSMs 或更少。
+ HSM 操作的錯誤率在遷移期間不會增加。

**注意**  
先前防止具有字符金鑰工作負載的客戶遷移的限制已移除。

## 叢集有限寫入模式
<a name="migration-limited-write-mode"></a>

當您的叢集開始遷移時，它會進入有限寫入模式。可變更 HSM 狀態的操作會遭到拒絕。所有讀取操作都不會受到影響。

在遷移期間，您的應用程式在嘗試這些操作時收到來自 HSM 的錯誤：
+ 產生和刪除字符金鑰 （工作階段金鑰工作負載會繼續運作）。
+ 所有使用者建立、刪除或修改。
+ 配額操作。
+ HSM 內金鑰的修改，例如變更金鑰屬性。
+ mTLS 註冊。

AWS CloudHSM 也會在遷移期間將您的叢集置於 `MODIFY_IN_PROGRESS` 狀態。在此期間，您無法從叢集新增或移除 HSMs。

## 開始遷移
<a name="starting-migration"></a>

叢集遷移程序會逐一取代叢集中的個別 HSMs。持續時間取決於叢集中的 HSMs 數目。每個 HSM 平均需要約 30 分鐘。您可以透過監控叢集中個別 HSM HSMs 已遷移至新類型。

------
#### [ Console ]

**變更 HSM 類型 （主控台）**

1. 在 https：//[https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) 開啟 AWS CloudHSM 主控台。

1. 選取您要變更之叢集 ID 旁的選項按鈕

1. 從動作功能表中，選擇`Modify HSM Type`並選取所需的 HSM 類型

此程序會讓您的叢集進入 `MODIFY_IN_PROGRESS` 狀態。遷移後，您的叢集會返回 `ACTIVE` 狀態。

------
#### [ AWS CLI ]

**變更 HSM 類型 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示中，執行 **[ modify-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/modify-cluster.html)** 命令。指定叢集 ID 和所需的 HSM 類型。

  ```
  $ aws cloudhsmv2 modify-cluster --cluster-id <cluster ID> --hsm-type <HSM Type>
                                                   
   
   {
       "Cluster": {
           "BackupPolicy": "DEFAULT",
           "BackupRetentionPolicy": {
               "Type": "DAYS",
               "Value": 90
            },
           "VpcId": "vpc-50ae0636",
           "SubnetMapping": {
               "us-west-2b": "subnet-49a1bc00",
               "us-west-2c": "subnet-6f950334",
               "us-west-2a": "subnet-fd54af9b"
           },
           "SecurityGroup": "sg-6cb2c216",
           "HsmType": "hsm2m.medium",
           "HsmTypeRollbackExpiration": 1730383180.000,
           "Certificates": {},
           "State": "MODIFY_IN_PROGRESS",
           "Hsms": [],
           "ClusterId": "cluster-igklspoyj5v",
           "ClusterMode": "FIPS",
           "CreateTimestamp": 1502423370.069
       }
   }
  ```

此程序會讓您的叢集進入 `MODIFY_IN_PROGRESS` 狀態。遷移後，您的叢集會返回 `ACTIVE` 狀態。

------
#### [ AWS CloudHSM API ]

**變更 HSM 類型 (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyCluster.html) 要求。指定叢集 ID 和叢集所需的 HSM 類型。

此程序會讓您的叢集進入 `MODIFY_IN_PROGRESS` 狀態。遷移後，您的叢集會返回 `ACTIVE` 狀態。

------

## 復原遷移
<a name="rollback-migration"></a>

AWS CloudHSM 會監控提高的錯誤率，並在整個遷移過程中執行持續驗證檢查。如果 AWS CloudHSM 偵測到服務品質降低或任何驗證失敗，它會自動啟動復原至叢集的原始 HSM 類型。在復原期間，針對叢集中的每個 HSM：
+ AWS CloudHSM 使用在該 HSM 遷移開始時取得的備份。
+ 它會一次取代一個 HSM，直到所有 HSMs都傳回原始類型為止。
+ 在整個過程中，您的叢集會保持有限寫入模式。

您可以在啟動遷移的 24 小時內復原遷移。若要檢查轉返截止日期：

1. 執行 [describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html) 命令。

1. 尋找 `HsmTypeRollbackExpiration`值。此時間戳記是您的轉返截止日期。

如果您決定轉返，請在此截止日期之前完成。復原會使用原始 HSM 類型的最新備份。

**警告**  
遷移完成後，請小心轉返。如果您完成遷移，然後使用 AWS CloudHSM 建立新的金鑰或使用者，轉返可能會導致資料遺失。請參閱[在復原後同步資料](#cluster-rollback-datasync)，了解如何減少復原後的資料遺失。

------
#### [ Console ]

**復原 HSM 類型 （主控台）**

1. 在 https：//[https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) 開啟 AWS CloudHSM 主控台。

1. 選取您要復原的叢集 ID。

1. 從動作功能表中，選擇`Modify HSM Type`並選取原始 HSM 類型

此程序會讓您的叢集進入 `ROLLBACK_IN_PROGRESS` 狀態。復原後，您的叢集會返回 `ACTIVE` 狀態。

------
#### [ AWS CLI ]

**復原 HSM 類型 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示中，執行 **[ modify-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/modify-cluster.html)** 命令。指定叢集 ID 和原始 HSM 類型。

  ```
  $ aws cloudhsmv2 modify-cluster --cluster-id <cluster ID> --hsm-type <HSM Type>
                                  
  {
   "Cluster": {
       "BackupPolicy": "DEFAULT",
       "BackupRetentionPolicy": {
           "Type": "DAYS",
           "Value": 90
        },
       "VpcId": "vpc-50ae0636",
       "SubnetMapping": {
           "us-west-2b": "subnet-49a1bc00",
           "us-west-2c": "subnet-6f950334",
           "us-west-2a": "subnet-fd54af9b"
       },
       "SecurityGroup": "sg-6cb2c216",
       "HsmType": "hsm1.medium",
       "HsmTypeRollbackExpiration": 1730383180.000,
       "Certificates": {},
       "State": "ROLLBACK_IN_PROGRESS",
       "Hsms": [],
       "ClusterId": "cluster-igklspoyj5v",
       "ClusterMode": "FIPS",
       "CreateTimestamp": 1502423370.069
   }
  }
  ```

此程序會讓您的叢集進入 `ROLLBACK_IN_PROGRESS` 狀態。復原後，您的叢集會返回 `ACTIVE` 狀態。

------
#### [ AWS CloudHSM API ]

**復原 HSM 類型 (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_ModifyCluster.html) 要求。指定叢集的叢集 ID 和叢集的原始 HSM 類型。

此程序會讓您的叢集進入 `ROLLBACK_IN_PROGRESS` 狀態。復原後，您的叢集會返回 `ACTIVE` 狀態。

------

## 在復原後同步資料
<a name="cluster-rollback-datasync"></a>

在遷移期間，HSMs處於有限寫入模式，防止 HSM 狀態變更。如果您在這段時間轉返 （當叢集為 時`MODIFY_IN_PROGRESS`)，會產生與原始叢集內容相同的叢集。

叢集返回 `ACTIVE` 狀態後，就會解除有限寫入模式。如果您在處於 `ACTIVE` 狀態時建立金鑰或使用者，然後轉返，則該金鑰或使用者將不會出現在您的轉返叢集中。

若要解決使用者同步，請使用[使用者管理](manage-hsm-users-chsm-cli.md)搭配 CloudHSM CLI，在復原叢集上重新建立缺少的使用者。必須手動重新建立使用者，因為 `user replicate`命令不支援將使用者從 hsm2m.medium 同步到 hsm1.medium。請參閱使用者複寫[已知問題](troubleshoot-sdk5-user-replicate-failures.md#troubleshoot-sdk5-user-replicate-failures-hsm2m-to-hsm1)。

若要解決金鑰同步，請使用[金鑰複](cloudhsm_cli-key-replicate.md)寫命令在兩個叢集之間複寫金鑰。如果您尚未安裝 CloudHSM CLI，請參閱 中的指示[開始使用 AWS CloudHSM 命令列界面 (CLI)](cloudhsm_cli-getting-started.md)。

**在復原後同步金鑰**

完成轉返後，請遵循下列步驟。我們會使用下列術語：
+ "cluster-1"：您的復原叢集 （現在為 hsm1.medium)
+ "cluster-2"：您將建立的新暫時 hsm2m.medium 叢集

1. 使用來自 cluster-1 的最新 hsm2m.medium 備份建立新的 hsm2m.medium 叢集 (cluster-2)：

   ```
   aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium \
                                   --subnet-ids <subnet ID 1> <subnet ID 2> <subnet ID N> \
                                   --source-backup-id <backup ID>
                                   --mode <FIPS>
   ```

1. 在 cluster-2 中建立 HSM：

   ```
   aws cloudhsmv2 create-hsm --cluster-id <cluster-2 ID>
   ```

1. 列出 cluster-2 中需要複寫的金鑰：

   ```
   cloudhsm-cli key list --cluster-id <cluster-2 ID>
   ```

1. 將每個金鑰從 cluster-2 複寫到 cluster-1：

   ```
   cloudhsm-cli key replicate --source-cluster-id <cluster-2 ID> \
                           --destination-cluster-id <cluster-1 ID> \
                           --filter attr.label=<key ID>
   ```

1. 針對需要複製的每個金鑰重複步驟 4。

1. 刪除 cluster-2 中的 HSM：

   ```
   aws cloudhsmv2 delete-hsm --cluster-id <cluster-2 ID> --hsm-id <HSM ID>
   ```

1. 刪除 cluster-2：

   ```
   aws cloudhsmv2 delete-cluster --cluster-id <cluster-2 ID>
   ```