

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

# 入門 AWS CloudHSM
<a name="getting-started"></a>

下列主題可協助您在 中建立、初始化和啟用叢集 AWS CloudHSM。完成這些程序之後，您就能管理使用者、管理叢集，以及使用隨附的軟體程式庫執行密碼編譯操作。為了獲得最佳體驗，請依照列出的順序遵循主題。

**Topics**
+ [建立 的 IAM 管理群組 AWS CloudHSM](create-iam-user.md)
+ [建立 的虛擬私有雲端 (VPC) AWS CloudHSM](create-vpc.md)
+ [在 中建立叢集 AWS CloudHSM](create-cluster.md)
+ [在 中檢閱叢集的安全群組 AWS CloudHSM](configure-sg.md)
+ [啟動 Amazon EC2 用戶端執行個體以與 互動 AWS CloudHSM](launch-client-instance.md)
+ [設定 的用戶端 Amazon EC2 執行個體安全群組 AWS CloudHSM](configure-sg-client-instance.md)
+ [在 中建立 HSM AWS CloudHSM](create-hsm.md)
+ [驗證叢集 HSM in AWS CloudHSM （選用） 的身分和真偽](verify-hsm-identity.md)
+ [在 中初始化叢集 AWS CloudHSM](initialize-cluster.md)
+ [下載和設定 CloudHSM CLI](gs_cloudhsm_cli-install.md)
+ [在 中啟用叢集 AWS CloudHSM](activate-cluster.md)
+ [在用戶端和 之間設定交互 TLS AWS CloudHSM （建議）](getting-started-setup-mtls.md)
+ [在 中建立和使用金鑰 AWS CloudHSM](create-apps.md)

# 建立 的 IAM 管理群組 AWS CloudHSM
<a name="create-iam-user"></a>

開始使用 的第一步 AWS CloudHSM 是設定 IAM 許可。

根據[最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users)，請勿使用 AWS 帳戶根使用者 與 互動 AWS，包括 AWS CloudHSM。反之，請使用 AWS Identity and Access Management (IAM) 來建立 IAM 使用者、IAM 角色或聯合身分使用者。依照 [建立 IAM 使用者和管理員群組](#create-iam-admin) 區段中的步驟來建立管理員群組，並附加 **AdministratorAccess** 政策。然後建立新管理使用者，並將該使用者新增到群組。視需要將其他使用者新增至該群組。您新增的每位使用者都會繼承群組的 **AdministratorAccess** 政策。

另一個最佳實務是建立只有執行所需許可的 AWS CloudHSM 管理員群組 AWS CloudHSM。視需要將個別使用者新增至此群組。每位使用者都會繼承已連接至群組的有限許可，而不是完整的 AWS 存取權。以下[的客戶受管政策 AWS CloudHSM](identity-access-management.md#permissions-for-cloudhsm)章節包含您應連接至 AWS CloudHSM 管理員群組的政策。

AWS CloudHSM 會為 AWS 您的帳戶定義[服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-linked-role)。服務連結角色目前定義許可，允許您的帳戶記錄 AWS CloudHSM 事件。角色可以由 自動建立， AWS CloudHSM 也可以由您手動建立。您無法編輯此角色，但可以刪除。如需詳細資訊，請參閱[的服務連結角色 AWS CloudHSM](service-linked-roles.md)。

## 建立 IAM 使用者和管理員群組
<a name="create-iam-admin"></a>

首先，建立 IAM 使用者以及該使用者的管理員群組。

### 註冊 AWS 帳戶
<a name="sign-up-for-aws"></a>

如果您沒有 AWS 帳戶，請完成下列步驟來建立一個。

**註冊 AWS 帳戶**

1. 開啟 [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup)。

1. 請遵循線上指示進行。

   部分註冊程序需接收來電或簡訊，並在電話鍵盤輸入驗證碼。

   當您註冊 時 AWS 帳戶，*AWS 帳戶根使用者*會建立 。根使用者有權存取該帳戶中的所有 AWS 服務 和資源。作為安全最佳實務，請將管理存取權指派給使用者，並且僅使用根使用者來執行[需要根使用者存取權的任務](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 會在註冊程序完成後傳送確認電子郵件給您。您可以隨時登錄 [https://aws.amazon.com/](https://aws.amazon.com/) 並選擇**我的帳戶**，以檢視您目前的帳戶活動並管理帳戶。

### 建立具有管理存取權的使用者
<a name="create-an-admin"></a>

註冊 後 AWS 帳戶，請保護 AWS 帳戶根使用者、啟用 AWS IAM Identity Center和建立管理使用者，以免將根使用者用於日常任務。

**保護您的 AWS 帳戶根使用者**

1.  選擇**根使用者**並輸入 AWS 帳戶 您的電子郵件地址，以帳戶擁有者[AWS 管理主控台](https://console.aws.amazon.com/)身分登入 。在下一頁中，輸入您的密碼。

   如需使用根使用者登入的說明，請參閱 *AWS 登入 使用者指南*中的[以根使用者身分登入](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 若要在您的根使用者帳戶上啟用多重要素驗證 (MFA)。

   如需說明，請參閱《*IAM 使用者指南*》中的[為您的 AWS 帳戶 根使用者 （主控台） 啟用虛擬 MFA 裝置](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**建立具有管理存取權的使用者**

1. 啟用 IAM Identity Center。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[啟用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，將管理存取權授予使用者。

   如需使用 IAM Identity Center 目錄 做為身分來源的教學課程，請參閱*AWS IAM Identity Center 《 使用者指南*》中的[使用預設值設定使用者存取 IAM Identity Center 目錄](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理存取權的使用者身分登入**
+ 若要使用您的 IAM Identity Center 使用者簽署，請使用建立 IAM Identity Center 使用者時傳送至您電子郵件地址的簽署 URL。

  如需使用 IAM Identity Center 使用者登入的說明，請參閱*AWS 登入 《 使用者指南*》中的[登入 AWS 存取入口網站](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**指派存取權給其他使用者**

1. 在 IAM Identity Center 中，建立一個許可集來遵循套用最低權限的最佳實務。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[建立許可集](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 將使用者指派至群組，然後對該群組指派單一登入存取權。

   如需指示，請參閱《AWS IAM Identity Center 使用者指南》**中的[新增群組](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

如需可連接至 IAM 使用者群組 AWS CloudHSM 的 政策範例，請參閱 [的身分和存取管理 AWS CloudHSM](identity-access-management.md)。

# 建立 的虛擬私有雲端 (VPC) AWS CloudHSM
<a name="create-vpc"></a>

您需要 中叢集的虛擬私有雲端 (VPC) AWS CloudHSM。如果您還沒有 VPC，請依照本主題中的步驟建立 VPC。

**注意**  
按照這些步驟將建立公有和私有子網路。

**建立 VPC**

1. 在 [https://console.aws.amazon.com/vpc/](https://console.aws.amazon.com/vpc/) 開啟 Amazon VPC 主控台。

1. 在導覽列上，使用區域選擇器來選擇[AWSAWS CloudHSM 目前支援 的其中一個區域](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)。

1. 選取**建立 VPC** 按鈕。

1. 針對 **Resources to create** (建立資源)，選擇 **VPC and more** (VPC 等)。

1. 針對**名稱標籤自動產生**，請輸入可識別的名稱，例如 **CloudHSM**。

1. 針對 **IPv6 CIDR 區塊**，選取 **Amazon 提供的 IPv6 CIDR 區塊**，為您的 HSMs 使用 IPv6 連線，並為您的叢集 AWS 配置 IPv6 CIDR 區塊。此設定支援雙堆疊網路類型。如果您不需要 IPv6 連線，請保留預設設定。

1. 所有其他選項保持設定為預設值。

1. 選擇**建立 VPC**。

1. 建立 VPC 之後，選取**檢視 VPC** 以檢視您剛建立的 VPC。

# 在 中建立叢集 AWS CloudHSM
<a name="create-cluster"></a>

叢集是個別硬體安全模組 (HSMs) 的集合。 AWS CloudHSM 會同步每個叢集中的 HSMs，使其做為邏輯單位運作。 AWS CloudHSM 提供兩種 HSMs 類型：*hsm1.medium* 和 *hsm2m.medium*。建立叢集時，您可以選擇叢集中的兩個。如需每個 HSM 類型與叢集模式間差異的詳細資訊，請參閱 [AWS CloudHSM 叢集模式](cluster-hsm-types.md)。

當您建立叢集時， AWS CloudHSM 會代表您建立叢集的安全群組。此安全群組會控制對叢集中 HSM 的網路存取。該群組僅允許來自安全群組中 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的傳入連接。在預設情況下，此安全群組不包含任何執行個體。您之後會[啟動用戶端執行個體](launch-client-instance.md)並[設定叢集的安全群組](configure-sg.md)，以允許與 HSM 進行通訊並連線。

**考量事項**
+ 以下是在 中建立叢集時的一些考量 AWS CloudHSM：
  + 當您建立叢集時， AWS CloudHSM 會建立名為 AWSServiceRoleForCloudHSM [的服務連結角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)。如果 AWS CloudHSM 無法建立角色或角色尚未存在，您可能無法建立叢集。如需詳細資訊，請參閱[解決 AWS CloudHSM 叢集建立失敗](troubleshooting-create-cluster.md)。如需服務連結角色的詳細資訊，請參閱[的服務連結角色 AWS CloudHSM](service-linked-roles.md)。
  +  如果您使用[AWS CloudHSM 雙堆疊端點](https://docs.aws.amazon.com/general/latest/gr/cloudhsm.html) （即 cloudhsmv2.*<region>*.api.aws)，請確定您的 IAM 政策已更新以處理 IPv6。如需詳細資訊，請參閱[安全性下的將 IAM 政策升級至 IPv6 一節](https://docs.aws.amazon.com/cloudhsm/latest/userguide/ip-access.html)。

您可以從 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)、[AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 或 AWS CloudHSM API 建立叢集。

如需叢集引數和 APIs，請參閱《 AWS CLI 命令參考》[https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html)中的 。

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

**建立叢集 (主控台)**

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

1. 在導覽列上，使用區域選擇器，選擇其中一個[目前支援 AWS CloudHSM 的AWS 區域](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)。

1. 選擇**建立叢集**。

1. 在**叢集組態**區段中，執行下列操作：

   1. 對於 **VPC**，請選取您在 [建立 的虛擬私有雲端 (VPC) AWS CloudHSM](create-vpc.md) 建立的 VPC。

   1. 對於**可用區域**，請在每個可用區域旁選擇您建立的私有子網路。
**注意**  
即使指定的可用區域 AWS CloudHSM 不支援 ，效能也不應受到影響，因為 AWS CloudHSM 會自動平衡叢集中所有 HSMs負載。請參閱 中的[AWS CloudHSM 區域和端點](https://docs.aws.amazon.com/general/latest/gr/rande.html#cloudhsm_region)*AWS 一般參考*，以查看 的可用區域支援 AWS CloudHSM。

   1. 針對 **HSM 類型**，選取可在叢集中建立的 HSM 類型，以及叢集所需的模式。若要查看每個區域支援哪些 HSM 類型，請參閱[AWS CloudHSM 定價計算器](https://aws.amazon.com/cloudhsm/pricing/)。
**重要**  
建立叢集之後，就無法變更叢集模式。如需適合您使用案例的類型和模式的資訊，請參閱 [AWS CloudHSM 叢集模式](cluster-hsm-types.md)。

   1. 針對**網路類型**，選擇用於存取 HSMs IP 地址通訊協定。IPv4 會將應用程式和 HSMs之間的通訊限制為僅限 IPv4。此為預設選項。雙堆疊可同時啟用 IPv4 和 IPv6 通訊。若要使用雙堆疊，請將 IPv4 和 IPv6 CIDRs 新增至您的 VPC 和子網路組態。網路類型在初始設定後很難變更。若要修改它，請建立現有叢集的備份，並使用所需的網路類型還原新的叢集。如需詳細資訊，請參閱[從備份建立 AWS CloudHSM 叢集](https://docs.aws.amazon.com/cloudhsm/latest/userguide/create-cluster-from-backup.html) 

   1. 針對**叢集來源**，指定您要建立新的叢集，還是從現有的備份還原叢集。
      + 處於非 FIPS 模式的叢集備份只能用來還原處於非 FIPS 模式的叢集。
      + 處於 FIPS 模式的叢集備份只能用來還原處於 FIPS 模式的叢集。

1. 選擇**下一步**。

1. 指定服務應保留備份的時間長度。

   1. 接受預設保留期 90 天，或輸入介於 7 到 379 天之間的新值。服務會自動刪除此叢集中超過您在此指定值的備份。您之後可以變更這個設定。如需詳細資訊，請參閱[設定備份保留](manage-backup-retention.md)。

1. 選擇**下一步**。

1. (選用) 輸入標籤索引鍵和選用標籤值。若要將多個標籤新增至叢集，請選擇**新增標籤**。

1. 選擇**檢閱**。

1. 檢閱您的叢集組態，然後選擇**建立叢集**。

如果您嘗試建立叢集失敗，這可能與服務 AWS CloudHSM 連結角色的問題有關。如需解決失敗的協助，請參閱 [解決 AWS CloudHSM 叢集建立失敗](troubleshooting-create-cluster.md)。

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

**建立叢集 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示中，執行 **[create-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-cluster.html)** 命令。指定您計劃建立 HSM 所在子網路的 HSM 執行個體類型、備份保留時長和子網路 ID。使用您建立之私有子網路的子網路 ID。僅能對每個可用區域指定一個子網路。

  ```
  $ aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium \
                      --backup-retention-policy Type=DAYS,Value=<number of days> \
                      --subnet-ids <subnet ID> \
                      --mode <FIPS> \
                      --network-type <IPV4>
  
  {
      "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",
          "NetworkType": "IPV4",
          "Certificates": {},
          "State": "CREATE_IN_PROGRESS",
          "Hsms": [],
          "ClusterId": "cluster-igklspoyj5v",
          "ClusterMode": "FIPS",
          "CreateTimestamp": 1502423370.069
      }
  }
  ```
**注意**  
`ClusterMode` 是所有 hsm 類型的必要參數，hsm1.medium 除外。`--mode`：  

  ```
  $ aws cloudhsmv2 create-cluster --hsm-type hsm2m.medium \
    				--backup-retention-policy Type=DAYS,Value=<number of days> \
    				--subnet-ids <subnet ID> \
  				--mode NON_FIPS
  ```

如果您嘗試建立叢集失敗，這可能與服務 AWS CloudHSM 連結角色的問題有關。如需解決失敗的協助，請參閱 [解決 AWS CloudHSM 叢集建立失敗](troubleshooting-create-cluster.md)。

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

**建立叢集 (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateCluster.html) 要求。指定您計劃建立 HSM 所在子網路的 HSM 執行個體類型、備份保留政策和子網路 ID。使用您建立之私有子網路的子網路 ID。僅能對每個可用區域指定一個子網路。

如果您嘗試建立叢集失敗，這可能與服務 AWS CloudHSM 連結角色的問題有關。如需解決失敗的協助，請參閱 [解決 AWS CloudHSM 叢集建立失敗](troubleshooting-create-cluster.md)。

------

# 在 中檢閱叢集的安全群組 AWS CloudHSM
<a name="configure-sg"></a>

 當您建立叢集或將 HSM 新增至叢集時，`cloudhsm-cluster-<clusterID>-sg`如果名稱不存在， 會使用名稱 AWS CloudHSM 建立安全群組。此安全群組包含預先設定的 TCP 規則，其允許叢集安全群組內透過連接埠 2223-2225 的傳入和傳出通訊。此 SG 可讓您的 EC2 執行個體使用 VPC 與叢集中的 HSM 進行通訊。

**警告**  
 請勿刪除或修改預先設定的 TCP 規則 (已填入叢集安全群組中)。這個規則可以防止連線問題和對 HSM 未經授權的存取。
 叢集安全群組可防止對 HSM 未經授權的存取。可以存取安全群組中執行個體的任何人都可以存取您的 HSM。大多數操作需要使用者登入 HSM，但可能會在未經驗證的情況下就將 HSM 歸零，而將金鑰資料、憑證和其他資料銷毀。如果發生這種情況，在最新的備份之後建立或修改的資料會遺失且無法復原。為了避免未經授權的存取，請確保只有受信任的管理員可以修改或存取預設安全群組中的執行個體。  
 hsm2m.medium 叢集推出 mTLS 功能，以限制未經授權的使用者連線至叢集。在嘗試歸零之前，未經授權的使用者將需要有效的 mTLS 登入資料才能成功連線到叢集。

 在下一個步驟中，您可以[啟動 Amazon EC2 執行個體](launch-client-instance.md)，並將其[連接叢集安全群組](configure-sg-client-instance.md)以將它連接到您的 HSM。

# 啟動 Amazon EC2 用戶端執行個體以與 互動 AWS CloudHSM
<a name="launch-client-instance"></a>

 若要與 AWS CloudHSM 叢集和 HSM 執行個體互動和管理，您必須能夠與 HSMs的彈性網路介面通訊。最簡單的方式是使用與您的叢集位於相同 VPC 的 EC2 執行個體。您也可以使用下列 AWS 資源來連線至叢集：
+ [Amazon VPC 對等互連](https://docs.aws.amazon.com/vpc/latest/peering/Welcome.html)
+ [Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)
+ [VPN 連接](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/vpn-connections.html)

**注意**  
本指南提供如何將 EC2 執行個體連接至 AWS CloudHSM 叢集的簡化範例。如需安全網路組態的最佳實務，請參閱 [安全存取您的叢集](bp-cluster-management.md#bp-secure-access)。

 AWS CloudHSM 文件通常會假設您在建立叢集的相同 VPC 和可用區域 (AZ) 中使用 EC2 執行個體。

**建立 EC2 執行個體**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 **EC2 儀表板**。

1. 選取**啟動執行個體**。從下拉式選單中，選擇**啟動執行個體**。

1. 在名稱欄位中，輸入 EC2 執行個體的名稱。

1. 在**應用程式和 OS 影像 (Amazon Machine Image)** 區段，選擇與 CloudHSM 支援平台相對應的 Amazon Machine Image (AMI)。如需詳細資訊，請參閱[AWS CloudHSM 用戶端 SDK 5 支援的平台](client-supported-platforms.md)。

1. 在**執行個體類型**區段中，選取執行個體類型。

1. 在**金錀對**區段中，使用現有金錀對，或選取**建立新金鑰配對**並完成下列步驟：

   1. 在**金鑰對名稱**中，輸入新金鑰對的名稱。

   1. 在**金鑰對類型**中，選擇一個金鑰對類型。

   1. 在**私有金鑰檔案格式**中，選擇私有金鑰的儲存格式。

   1. 選取**建立金錀對**。

   1. 下載並存儲私有金鑰檔案。
**重要**  
這是您儲存私有金鑰檔案的唯一機會。將檔案下載並儲存於安全處。當您啟動執行個體時，必須提供金鑰對的名稱。此外，每次連接至執行個體，您都必須提供對應的私有金鑰，同時要選擇您在設定時建立的金錀對。

1. 在**網路設定**中選取**編輯**。

1. 在 **VPC** 中，選擇先前為叢集建立的 VPC。

1. 在**子網路**中，選擇先前為 VPC 建立的公有子網路。

1. 在 **Auto-assign Public IP (自動指派公有 IP)** 中，選擇 **Enable (啟用)**。

1. 針對**自動指派 IPv6 IP**，選擇**啟用**以將 IPv6 連線與叢集和雙堆疊 NetworkType 搭配使用。如果您啟用此選項，請更新 Amazon EC2 執行個體的安全群組規則、VPC 和子網路路由表，以及網路 ACLs，以允許從執行個體到 HSMs IPv6 傳出流量。

1. 選擇 **Select an existing security group** (選取現有的安全群組)。

1. 在**一般安全群組**中，從下拉式選單中選取預設安全群組。

1. 在**設定儲存**中，使用下拉式功能表選擇儲存組態。

1. 在**彙總**視窗中，選取**啟動執行個體**。
**注意**  
完成此步驟後，將開始建立 EC2 執行個體的執行程序。

如需建立 Linux Amazon EC2 用戶端的詳細資訊，請參閱 [Amazon EC2 Linux 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。如需連接到執行中用戶端的詳細資訊，請參閱下列主題：
+ [使用 SSH 連接至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)
+ [使用 PuTTY 從 Windows 連接至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)

 Amazon EC2 使用者指南包含設定和使用 Amazon EC2 執行個體的詳細說明。以下清單提供適用於 Linux 和 Windows Amazon EC2 用戶端的可用文件概觀：
+ 若要建立 Linux Amazon EC2 用戶端，請參閱 [Amazon EC2 Linux 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)。

  如需連接到執行中用戶端的詳細資訊，請參閱下列主題：
  + [使用 SSH 連接至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AccessingInstancesLinux.html)
  + [使用 PuTTY 從 Windows 連接至您的 Linux 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/putty.html)
+  若要建立 Windows Amazon EC2 用戶端，請參閱 [Amazon EC2 Windows 執行個體入門](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html)。如需連接到您的 Windows 用戶端的詳細資訊，請參閱[ 連接到您的 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2_GetStarted.html#ec2-connect-to-instance-windows)。

**注意**  
 您的 EC2 執行個體可以執行本指南中包含的所有 AWS CLI 命令。如果未安裝 AWS CLI ，您可以從 [AWS Command Line Interface](https://aws.amazon.com/cli/) 下載。如果您使用 Windows，可以下載及執行 64 位元或 32 位元 Windows 安裝程式。如果您使用 Linux 或 macOS，可以使用 pip 安裝 CLI。

# 設定 的用戶端 Amazon EC2 執行個體安全群組 AWS CloudHSM
<a name="configure-sg-client-instance"></a>

當您在 中啟動叢集的 Amazon EC2 執行個體時 AWS CloudHSM，您會將其與預設的 Amazon VPC 安全群組建立關聯。本主題說明如何將叢集安全群組與 EC2 執行個體建立關聯。此關聯允許在 EC2 執行個體上執行的 AWS CloudHSM 用戶端與您的 HSMs 通訊。若要將 EC2 執行個體連線至 AWS CloudHSM 叢集，您必須正確設定 VPC 預設安全群組，*並將*叢集安全群組與執行個體建立關聯。

使用下列步驟來完成組態變更。

**Topics**
+ [步驟 1. 修改預設安全群組](#configure-sg-client-instance-modify-default-security-group)
+ [步驟 2. 將 Amazon EC2 執行個體連接至 AWS CloudHSM 叢集](#configure-sg-client-instance-connect-the-ec2-instance-to-the-HSM-cluster)

## 步驟 1. 修改預設安全群組
<a name="configure-sg-client-instance-modify-default-security-group"></a>

您需要修改預設安全群組，允許 SSH 或 RDP 連線，以便下載及安裝用戶端軟體，並與您的 HSM 互動。

**修改預設安全群組**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 **EC2 儀表板**。

1. 選取**執行個體 （執行中）**，然後選取您要安裝 AWS CloudHSM 用戶端之 EC2 執行個體旁的核取方塊。

1. 在**安全**標籤下方，選擇名稱為**預設**的安全群組。

1. 在頁面頂端，依序選擇 **Actions (動作)** 和 **Edit Inbound Rules (編輯傳入規則)**。

1. 選取 **Add Rule (新增規則)**。

1. 針對 **Type (類型)**，執行下列其中一項操作：
   + 若是 Windows Server Amazon EC2 執行個體，請選擇 **RDP**。即會自動填入連接埠 `3389`。
   + 若是 Linux EC2 執行個體，請選擇 **SSH**。即會自動填入連接埠範圍 `22`。

1. 對於任意一個選項，請將**來源**設定為**我的 IP**，以便與 Amazon EC2 執行個體進行通訊。
**重要**  
請不要將 0.0.0.0/0 指定為 CIDR 範圍，避免其他人存取您的執行個體。

1. 選擇**儲存**。

## 步驟 2. 將 Amazon EC2 執行個體連接至 AWS CloudHSM 叢集
<a name="configure-sg-client-instance-connect-the-ec2-instance-to-the-HSM-cluster"></a>

您必須將叢集安全群組連接到 EC2 執行個體，以便 EC2 執行個體可以與叢集中的 HSM 通訊。叢集安全群組包含預先設定的規則，其允許透過連接埠 2223-2225 的傳入通訊。

**將 EC2 執行個體連線至 AWS CloudHSM 叢集**

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 **EC2 儀表板**。

1. 選取**執行個體 （執行中）**，然後選取您要安裝 AWS CloudHSM 用戶端之 EC2 執行個體的核取方塊。

1. 在頁面頂端，依序選擇**動作**、**聯網**和**變更安全群組**。

1. 選取群組名稱符合您叢集 ID 的安全群組，例如 `cloudhsm-cluster-<clusterID>-sg`。

1. 選擇**新增安全群組**。

1. 選取**儲存**。

**注意**  
 您最多可以指派 5 個安全群組給 Amazon EC2 執行個體。如果您已達到上限，則必須修改 Amazon EC2 執行個體的預設安全群組和叢集安全群組：  
在預設安全群組中，執行下列動作：  
新增傳入規則，允許使用 TCP 通訊協定、來自叢集安全群組，且透過連接埠 `2223-2225` 的流量。
在叢集安全群組中，執行下列動作：  
新增傳入規則，允許使用 TCP 通訊協定、來自預設安全群組，且透過連接埠 `2223-2225` 的流量。

# 在 中建立 HSM AWS CloudHSM
<a name="create-hsm"></a>

 在 中建立叢集後 AWS CloudHSM，您可以建立硬體安全模組 (HSM)。不過，叢集必須在未初始化狀態，您才能在叢集建立 HSM。若要判斷叢集的狀態，[請在 AWS CloudHSM 主控台中檢視叢集頁面](https://console.aws.amazon.com/cloudhsm/home)、使用 AWS CLI 執行 **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)**命令，或在 AWS CloudHSM API 中傳送 [DescribeClusters](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 請求。您可以從 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)、[AWS CLI](https://aws.amazon.com/cli/) 或 AWS CloudHSM API 建立 HSM。

**重要**  
 僅在叢集處於未初始化狀態時建立一個 HSM。

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

**建立 HSM (主控台)**

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

1. 在您要為其建立 HSM 的叢集 ID 旁邊，選取選項按鈕。

1. 選取**動作**。從下拉式功能表中，選擇**初始化**。

1. 針對您要建立的 HSM 選擇可用區域 (AZ)。

1. 選取**建立**。

在建立叢集和 HSM 之後，您可以選擇[驗證 HSM 的身分](verify-hsm-identity.md)，或直接開始[初始化叢集](initialize-cluster.md)。

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

**建立 HSM ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示中，執行 **[create-hsm](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/create-hsm.html)** 命令。指定您先前建立之叢集的叢集 ID，以及 HSM 的可用區域。指定可用區域，格式為 `us-west-2a`、`us-west-2b` 等。

  ```
  $ aws cloudhsmv2 create-hsm --cluster-id <cluster ID> --availability-zone <Availability Zone>
  
  {
      "Hsm": {
          "HsmId": "hsm-ted36yp5b2x",
          "EniIp": "10.0.1.12",
          "EniIpV6": "2600:113f:404:be09:310e:ed34:3412:f733",
          "AvailabilityZone": "us-west-2a",
          "ClusterId": "cluster-igklspoyj5v",
          "EniId": "eni-5d7ade72",
          "SubnetId": "subnet-fd54af9b",
          "State": "CREATE_IN_PROGRESS"
      }
  }
  ```

在建立叢集和 HSM 之後，您可以選擇[驗證 HSM 的身分](verify-hsm-identity.md)，或直接開始[初始化叢集](initialize-cluster.md)。

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

**建立 HSM (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_CreateHsm.html) 要求。指定您先前建立之叢集的叢集 ID，以及 HSM 的可用區域。

在建立叢集和 HSM 之後，您可以選擇[驗證 HSM 的身分](verify-hsm-identity.md)，或直接開始[初始化叢集](initialize-cluster.md)。

------

# 驗證叢集 HSM in AWS CloudHSM （選用） 的身分和真偽
<a name="verify-hsm-identity"></a>

若要在 中初始化叢集 AWS CloudHSM，您可以簽署叢集第一個硬體安全模組 (HSM) 產生的憑證簽署請求 (CSR)。在這樣做之前，您可能需要驗證 HSM 的身分和真偽。

**注意**  
此為選用程序。然而只在叢集初始化之前適用。叢集初始化之後，您就無法使用此程序來取得憑證或驗證 HSM。

若要驗證叢集第一個 HSM 的身分，請完成以下步驟：

1. [取得憑證和 CSR](#get-certificates)：在此步驟中，您從 HSM 取得三個憑證和一個 CSR。您也可以取得兩個根憑證，一個來自 HSM 硬體製造商 AWS CloudHSM ，另一個來自 HSM 硬體製造商。

1. [驗證憑證鏈](#verify-certificate-chains) – 在此步驟中，您會建構兩個憑證鏈，一個是 AWS CloudHSM 根憑證，另一個是製造商根憑證。然後，您可以使用這些憑證鏈驗證 HSM 憑證，以確定 AWS CloudHSM 和硬體製造商都證明 HSM 的身分和真實性。

1. [比較公有金鑰](#compare-public-keys)：在此步驟中，您擷取並比較 HSM 憑證和叢集 CSR 中的公有金鑰，以確保金鑰相同。這樣可讓您確信 CSR 是由真實可信任的 HSM 所產生。

下圖顯示 CSR、憑證及其相互關係。後續清單定義每個憑證。

![\[HSM 憑證和其關係。\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/hsm-certificate-relationships.png)


**AWS 根憑證**  
這是 AWS CloudHSM根憑證。

**製造商根憑證**  
這是硬體製造商的根憑證。

**AWS 硬體憑證**  
AWS CloudHSM 會在 HSM 硬體新增至機群時建立此憑證。此憑證宣告 AWS CloudHSM 擁有硬體。

**製造商硬體憑證**  
HSM 硬體製造商在製造 HSM 硬體時建立此憑證。此憑證聲明製造商建立此硬體。

**HSM 憑證**  
當您在叢集中建立第一個 HSM 時，通過 FIPS 驗證的硬體會產生 HSM 憑證。此憑證聲明 HSM 硬體建立此 HSM。

**叢集 CSR**  
第一個 HSM 建立叢集 CSR。當您[簽署叢集 CSR](initialize-cluster.md#sign-csr) 時，您即宣稱擁有叢集。然後，您可以使用已簽署的 CSR 來[初始化叢集](initialize-cluster.md#initialize)。

## 步驟 1. 從 HSM 取得憑證
<a name="get-certificates"></a>

若要驗證 HSM 的身分和真偽，請先取得一個 CSR 和 5 個 HSM。您可以從 HSM 取得三個憑證，您可以使用 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)、 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 或 AWS CloudHSM API 來執行。

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

**取得 CSR 和 HSM 憑證 (主控台)**

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

1. 選取您要驗證的 HSM 叢集 ID 旁的選項按鈕。

1. 選取**動作**。從下拉式功能表中，選擇**初始化**。

1. 如果您未完成[上一個步驟](create-hsm.md)來建立 HSM，請為您正在建立的 HSM 選擇一個可用區域 (AZ)。然後選取**建立**。

1. 當憑證和 CSR 準備好時，您會看到下載連結。  
![\[AWS CloudHSM 主控台中的下載憑證簽署請求頁面。\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/download-csr-hsm-cert.png)

1. 選擇每個連結來下載和儲存 CSR 和憑證。為了簡化後續步驟，請將所有檔案儲存到相同目錄，並使用預設的檔案名稱。

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

**取得 CSR 和 HSM 憑證 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示字元中，執行 **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** 命令四次，每次都擷取 CSR 和不同的憑證，並將其儲存到檔案。

  1. 發出下列命令來擷取叢集 CSR。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ClusterCsr' \
                                        > <cluster ID>_ClusterCsr.csr
     ```

  1. 發出下列命令來擷取 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.HsmCertificate' \
                                        > <cluster ID>_HsmCertificate.crt
     ```

  1. 發出下列命令來擷取 AWS 硬體憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.AwsHardwareCertificate' \
                                        > <cluster ID>_AwsHardwareCertificate.crt
     ```

  1. 發出下列命令來擷取製造商硬體憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

     ```
     $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                        --output text \
                                        --query 'Clusters[].Certificates.ManufacturerHardwareCertificate' \
                                        > <cluster ID>_ManufacturerHardwareCertificate.crt
     ```

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

**取得 CSR 和 HSM 憑證 (AWS CloudHSM API)**
+ 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 請求，然後從回應中擷取並儲存 CSR 和憑證。

------

## 步驟 2. 取得根憑證
<a name="get-root-certificates"></a>

請依照下列步驟取得 AWS CloudHSM 和 製造商的根憑證。將根憑證檔案儲存到包含 CSR 和 HSM 憑證檔案的目錄。

**取得 AWS CloudHSM 和製造商根憑證**

1. 下載 AWS CloudHSM 根憑證：[AWS\$1CloudHSM\$1Root-G1.zip](samples/AWS_CloudHSM_Root-G1.zip)

1. 為您的 HSM 類型下載正確的製造商根憑證：
   + hsm1.medium 製造商根憑證：[liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquid_security_certificate.zip)
   + hsm2m.medium 製造商根憑證：[liquid\$1security\$1certificate.zip](https://www.marvell.com/content/dam/marvell/en/public-collateral/security-solutions/liquidsecurity2_ar_v1.zip)
**注意**  
若要從其登陸頁面下載每個憑證，請使用下列連結：  
hsm1.medium [製造商根憑證](https://www.marvell.com/products/security-solutions/liquid-security-hsm-adapters-and-appliances/liquidsecurity-certificate.html)的登陸頁面
hsm2m.medium [製造商根憑證](https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/liquidsecurity2-certificate-ls2-g-axxx-ar-f-bo-v1.html)的登陸頁面
您可能需要用滑鼠右鍵按一下 **Download Certificate (下載憑證)** 連結，然後選擇 **Save Link As...(另存連結為...)** 以儲存憑證檔案。

1. 下載檔案之後，將其內容解壓縮 (unzip)。

## 步驟 3。驗證憑證鏈
<a name="verify-certificate-chains"></a>

在此步驟中，您會建構兩個憑證鏈，一個是 AWS CloudHSM 根憑證，另一個是製造商根憑證。然後，使用 OpenSSL 根據每個憑證鏈來驗證 HSM 憑證。

若要建立憑證鏈，請開啟 Linux shell。您需要 OpenSSL (大多數的 Linux shell 中都有)，還需要有您下載的[根憑證](#get-root-certificates)和 [HSM 憑證檔案](#get-certificates)。不過，您不需要此步驟 AWS CLI 的 ，而且 shell 不需要與 AWS 您的帳戶建立關聯。

**使用 AWS CloudHSM 根憑證驗證 HSM 憑證**

1. 導覽至您下載的[根憑證](#get-root-certificates)和 [HSM 憑證檔案](#get-certificates)的儲存目錄。以下命令假設所有憑證都在目前的目錄中，且使用預設的檔案名稱。

   使用下列命令，依該順序建立包含 AWS 硬體憑證和 AWS CloudHSM 根憑證的憑證鏈。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ cat <cluster ID>_AwsHardwareCertificate.crt \
         AWS_CloudHSM_Root-G1.crt \
         > <cluster ID>_AWS_chain.crt
   ```

1. 使用下列 OpenSSL 命令，根據 AWS 憑證鏈來驗證 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ openssl verify -CAfile <cluster ID>_AWS_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

**根據製造商根憑證來驗證 HSM 憑證**

1. 使用下列命令來建立憑證鏈，其中依序包含製造商硬體憑證和製造商根憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ cat <cluster ID>_ManufacturerHardwareCertificate.crt \
         liquid_security_certificate.crt \
         > <cluster ID>_manufacturer_chain.crt
   ```

1. 使用以下 OpenSSL 命令，根據製造商憑證鏈來驗證 HSM 憑證。將 *<cluster ID>* 取代為您先前建立的叢集 ID。

   ```
   $ openssl verify -CAfile <cluster ID>_manufacturer_chain.crt <cluster ID>_HsmCertificate.crt
   <cluster ID>_HsmCertificate.crt: OK
   ```

## 步驟 4. 擷取和比較公有金鑰
<a name="compare-public-keys"></a>

使用 OpenSSL 來擷取並比較 HSM 憑證和叢集 CSR 中的公有金鑰，以確保金鑰相同。

若要比較公有金鑰，請使用 Linux shell。您需要 OpenSSL，其可在大多數 Linux shell 中使用，但此步驟不需要 AWS CLI 。shell 不需要與 AWS 您的帳戶建立關聯。

**擷取和比較公有金鑰**

1. 使用下列命令從 HSM 憑證中擷取公有金鑰。

   ```
   $ openssl x509 -in <cluster ID>_HsmCertificate.crt -pubkey -noout > <cluster ID>_HsmCertificate.pub
   ```

1. 使用下列命令從叢集 CSR 中擷取公有金鑰。

   ```
   $ openssl req -in <cluster ID>_ClusterCsr.csr -pubkey -noout > <cluster ID>_ClusterCsr.pub
   ```

1. 使用下列命令來比較公有金鑰。如果公有金鑰相同，以下命令不會產生任何輸出。

   ```
   $ diff <cluster ID>_HsmCertificate.pub <cluster ID>_ClusterCsr.pub
   ```

驗證 HSM 的身分和真偽之後，請繼續[初始化叢集](initialize-cluster.md)。

# 在 中初始化叢集 AWS CloudHSM
<a name="initialize-cluster"></a>

建立叢集並在其中新增硬體安全模組 (HSM) 之後 AWS CloudHSM，您可以初始化叢集。完成下列主題中的步驟來初始化 叢集。

**注意**  
初始化叢集之前，請檢閱您可以用來[驗證 HSM 的身分和真實性](verify-hsm-identity.md)的程序。此程序為選擇性，且只能在叢集初始化前使用。將叢集初始化後，您無法使用此程序來取得您的憑證或驗證 HSM。

**Topics**
+ [概觀](#initialize-cluster-overview)
+ [步驟 1. 取得叢集 CSR](#get-csr)
+ [步驟 2. 為您的根 CA 建立私有金鑰](#sign-csr-create-key)
+ [步驟 3。簽署 CSR](#sign-csr)
+ [步驟 4. 初始化叢集](#initialize)

## 概觀
<a name="initialize-cluster-overview"></a>

 叢集初始化程序會透過憑證型身分驗證系統建立您對叢集和 HSMs擁有權和控制權。此程序以密碼編譯方式證明您是叢集中 HSMs的唯一擁有者，並建立 HSMs 未來所有連線所需的信任基礎。

 此頁面將示範如何執行下列操作：
+ 擷取叢集的憑證簽署請求 (CSR)。
+ 產生並使用私有金鑰 （私有金鑰） 來建立自我簽署的根憑證或憑證鏈。
+ 簽署叢集的 CSR 以產生已簽署的 HSM 憑證。
+ 使用簽章的 HSM 憑證和自我簽署的憑證或憑證鏈來初始化您的叢集。

當您準備好開始時，請移至[步驟 1. 取得叢集 CSR](#get-csr)。

## 步驟 1. 取得叢集 CSR
<a name="get-csr"></a>

初始化叢集之前，您必須下載並簽署憑證簽署請求 (CSR)，CSR 是由叢集的第一個 HSM 產生。如果您之前已依照[驗證叢集的 HSM 身分](verify-hsm-identity.md)中的步驟操作，則您已有 CSR，可以直接簽署。否則，請使用 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)、 [AWS Command Line Interface (AWS CLI)](https://aws.amazon.com/cli/) 或 AWS CloudHSM API 立即取得 CSR。

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

**取得 CSR (主控台)**

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

1. 選取您要驗證的 HSM 叢集 ID 旁的選項按鈕。

1. 選取**動作**。從下拉式功能表中，選擇**初始化**。

1. 如果您未完成[上一個步驟](create-hsm.md)來建立 HSM，請為您正在建立的 HSM 選擇一個可用區域 (AZ)。然後選取**建立**。

1. 當 CSR 準備好，您會看到可下載它的連結。  
![\[在 AWS CloudHSM 主控台中下載憑證簽署請求頁面。\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/download-csr-hsm-cert.png)

1. 選擇 **Cluster CSR (叢集 CSR)** 以下載並儲存 CSR。

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

**取得 CSR ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示字元，執行下列 **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** 命令，其會擷取 CSR 並將它儲存到檔案。將 *<cluster ID>* 取代為[先前建立](create-cluster.md)的叢集 ID。

  ```
  $ aws cloudhsmv2 describe-clusters --filters clusterIds=<cluster ID> \
                                     --output text \
                                     --query 'Clusters[].Certificates.ClusterCsr' \
                                     > <cluster ID>_ClusterCsr.csr
  ```

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

**取得 CSR (AWS CloudHSM API)**

1. 傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_DescribeClusters.html) 要求。

1. 擷取並儲存來自回應的 CSR。

------

## 步驟 2. 為您的根 CA 建立私有金鑰
<a name="sign-csr-create-key"></a>

**注意**  
針對生產叢集，應使用信任的隨機來源以安全的方式建立您想建立的金鑰。我們建議您使用安全的離站和離線 HSM 或其他同等項目。安全地存放金鑰。金鑰會建立叢集的身分識別，以及您對叢集所包含的 HSM 的唯一控制權。  
在開發和測試時，您可以使用任何方便的工具 (如 OpenSSL) 來建立和簽署叢集憑證。下列範例說明如何建立金鑰。在使用該金鑰建立自我簽署憑證 (請見以下) 後，您應該妥善存放它。若要登入 AWS CloudHSM 執行個體，憑證必須存在，但私有金鑰不會存在。

下表概述憑證產生支援的演算法、金鑰大小和曲線。


| 演算法 | 大小/曲線 | 
| --- | --- | 
| **RSA PKCSv1.5** |  2048、3072、4096  | 
| **RSA-PSS** |  2048、3072、4096  | 
| **ECDSA** |  prime256v1、secp384r1、secp521r1  | 
| **摘要** |  SHA-224, SHA-256, SHA-384和 SHA-512  | 

使用下列範例命令，為您的自我簽署根 CA 建立私有金鑰。

```
$ openssl genrsa -aes256 -out customerRootCA.key 2048
Generating RSA private key, 2048 bit long modulus
........+++
............+++
e is 65537 (0x10001)
Enter pass phrase for customerRootCA.key:
Verifying - Enter pass phrase for customerRootCA.key:
```

## 步驟 3。簽署 CSR
<a name="sign-csr"></a>

在先前的步驟中，您擷取叢集的 CSR，並為根 CA 建立私有金鑰。在此步驟中，您將使用私有金鑰產生簽署憑證，以簽署叢集的 CSR。以下主題將引導您使用 OpenSSL 建立單一自我簽署憑證或憑證鏈的程序。此步驟不需要 AWS CLI ，而且 shell 不需要與 AWS 您的帳戶建立關聯。

**重要**  
如要初始化叢集，您的信任錨點必須符合 [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) 並符合下列需求：  
如使用 X509v3 延伸功能，則必須存在 X509v3 基本限制條件延伸。
信任錨點必須是自我簽署的憑證。
延伸值不得相互衝突。

選擇下列其中一種方法來簽署叢集的 CSR：

### 選擇您的憑證方法
<a name="certificate-approach-choice"></a>

您必須選擇下列兩種方法之一。請勿完成這兩個方法。

**選項 A：單一自我簽署憑證**  
建立單一自我簽署根憑證，以簽署叢集的 CSR。這是建立信任的最簡單直接方法。  
**建議用於：**  
+ 不需要外部 PKI 的環境
+ 測試和開發環境，其中偏好簡單性
前往： [建立單一自我簽署憑證](#self-signed-certificate)

**選項 B：具有中繼 CA 的憑證鏈**  
使用中繼憑證授權機構建立憑證鏈。中繼憑證鏈透過允許根憑證授權機構 (CAs) 在將憑證發行委派給中繼 CAs 的同時保持離線，從而降低損害根 CA 的風險，來提供增強的安全性、可擴展性和靈活性。  
**建議用於：**  
+ 需要外部 PKI 的環境
+ 與 AWS Private Certificate Authority (PCA) 整合
**AWS PCA 整合範例：**您可以使用 AWS 私有憑證授權機構來建立和管理中繼 CA 憑證。這可提供自動化憑證生命週期管理，包括續約和撤銷，同時保持根 CA 離線的安全優勢。如需 AWS PCA 的詳細資訊，請參閱 [AWS Private Certificate Authority 使用者指南](https://docs.aws.amazon.com/privateca/latest/userguide/PcaWelcome.html)。  
前往： [建立中繼憑證授權機構 (ICA) 鏈](#certificate-chain)

### 建立單一自我簽署憑證
<a name="self-signed-certificate"></a>

您用來建立生產叢集私有金鑰的信任硬體，也應該提供軟體工具來產生使用該金鑰的自我簽署憑證。下列範例使用 OpenSSL 和您在上一個步驟中建立的私有金鑰來建立自我簽署的根 CA 簽署憑證。憑證有效期限是 10 年 (3652 天)。請閱讀畫面上的指示，並依照提示操作。

```
$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt
Enter pass phrase for customerRootCA.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

此命令會建立名為 `customerRootCA.crt` 的憑證檔案。將此憑證放在您要從中連線至 AWS CloudHSM 叢集的每個主機上。如果您替檔案取了其他名稱，或將其存放在主機根目錄以外的路徑，請據此編輯您的用戶端組態檔案。使用您剛建立的憑證和私有金鑰來簽署後續步驟中的叢集憑證簽署請求 (CSR)。

#### 使用自我簽署的根 CA 簽署叢集 CSR
<a name="sign-csr-sign-cluster-csr-with-root-ca"></a>

您用來建立生產叢集私有金鑰的信任硬體，也應該提供工具來簽署使用該金鑰的 CSR。以下範例會使用 OpenSSL 來簽署叢集的 CSR。以下範例命令使用自我簽署簽署的 CSR `customerRootCA.crt`

```
$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \
		-CA <customerRootCA>.crt \
		-CAkey <customerRootCA>.key \
		-CAcreateserial \
		-out <cluster ID>_CustomerHsmCertificate.crt
Signature ok
subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode
Getting CA Private Key
Enter pass phrase for <customerRootCA>.key:
```

此命令會建立名為 `<cluster ID>_CustomerHsmCertificate.crt` 的檔案。初始化叢集時，使用這個檔案做為已簽署的憑證。

根據根 CA 驗證已簽署的憑證 （選用）：

```
$ openssl verify -purpose sslserver -CAfile customerRootCA.crt <cluster ID>_CustomerHsmCertificate.crt
<cluster ID>_CustomerHsmCertificate.crt: OK
```

使用自我簽署的根 CA 產生已簽署的 HSM 憑證後，請前往 [步驟 4. 初始化叢集](#initialize)。

### 建立中繼憑證授權機構 (ICA) 鏈
<a name="certificate-chain"></a>

下列範例將逐步引導您建立長度為 2 的憑證鏈，其中包含根憑證授權機構 (CA) 和中繼 CA。您必須先建立自我簽署的根 CA 憑證，然後產生由根 CA 簽署的中繼 CA。最後，您將使用中繼 CA 簽署叢集的 CSR，從 HSM 憑證建立完整的信任鏈，再回到根 CA。此方法透過在將中繼 CA day-to-day憑證操作時保持根 CA 離線，提供增強的安全性。

**重要**  
若要使用憑證鏈初始化叢集，您的鏈必須符合下列要求：  
必須排序鏈，從簽署叢集 CSR 的中繼 CA 開始。依此順序，第一個 ICA 應該有一個符合鏈結中下一個 ICA 主體的發行者，以此類推。
只有根 CA 應該自我簽署，這表示其發行者和主體應該是相同的。
鏈必須包含不超過 4 個憑證 （包括結尾的根 CA)，且鏈的總大小不得超過 16 kb (KB)。
所有憑證授權機構 CAs) 都應該符合 [RFC 5280](https://datatracker.ietf.org/doc/html/rfc5280) 準則。

本節提供使用兩種不同方法來建立中繼憑證授權機構鏈結的範例：用於產生本機憑證的 OpenSSL，以及用於受管憑證服務的 AWS 私有憑證授權機構 (PCA)。選擇最適合您環境和安全需求的方法。

**注意**  
下列範例是一般使用案例，並使用最基本的組態進行簡化。對於生產環境，請檢閱您的使用案例特有的其他組態選項和安全性需求。

------
#### [ OpenSSL ]

使用 CA 的常見 v3 副檔名建立 OpenSSL 組態檔案：

```
$ cat > ca-extensions.conf <<EOF
[req]
distinguished_name = req_distinguished_name
[req_distinguished_name]
C = Country Name (2 letter code)
ST = State or Province Name (full name)
L = Locality Name (eg, city)
O = Organization Name (eg, company)
OU = Organizational Unit Name (eg, section)
CN = Common Name (e.g. server FQDN or YOUR name)
[v3_ca]
subjectKeyIdentifier = hash
authorityKeyIdentifier = keyid:always,issuer
basicConstraints = critical,CA:true
keyUsage = critical, keyCertSign, cRLSign, digitalSignature
EOF
```

使用 OpenSSL 產生自我簽署的根 CA：

```
$ openssl req -new -x509 -days 3652 -key customerRootCA.key -out customerRootCA.crt -extensions v3_ca -config ca-extensions.conf
Enter pass phrase for customerRootCA.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

產生中繼 CA 金鑰：

```
$ openssl genrsa -aes256 -out intermediateCA.key 2048
Generating RSA private key, 2048 bit long modulus
........+++
............+++
e is 65537 (0x10001)
Enter pass phrase for intermediateCA.key:
Verifying - Enter pass phrase for intermediateCA.key:
```

建立中繼 CA 憑證簽署請求 (CSR)：

```
$ openssl req -new -key intermediateCA.key -out intermediateCA.csr
Enter pass phrase for intermediateCA.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

使用自我簽署的根 CA，建立中繼 CA 憑證：

```
$ openssl x509 -req -in intermediateCA.csr \
		-CA customerRootCA.crt \
		-CAkey customerRootCA.key \
		-CAcreateserial \
		-days 3652 \
		-extensions v3_ca \
		-extfile ca-extensions.conf \
		-out intermediateCA.crt

Certificate request self-signature ok
subject=C= , ST= , L= , O= , OU=
```

將憑證合併為鏈結檔案：

```
$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt

-----BEGIN CERTIFICATE-----
[Intermediate CA]
-----END CERTIFICATE-----
...
...
-----BEGIN CERTIFICATE-----
[Root CA]
-----END CERTIFICATE-----
```

使用中繼 CA 簽署叢集 CSR：

```
$ openssl x509 -req -days 3652 -in <cluster ID>_ClusterCsr.csr \
			-CA intermediateCA.crt \
			-CAkey intermediateCA.key \
			-CAcreateserial \
			-out <cluster ID>_CustomerHsmCertificate.crt
Signature ok
subject=/C=US/ST=CA/O=Cavium/OU=N3FIPS/L=SanJose/CN=HSM:<HSM identifier>:PARTN:<partition number>, for FIPS mode
Getting CA Private Key
Enter pass phrase for intermediateCA.key:
```

------
#### [ AWS PCA ]

使用 AWS Private Certificate Authority 建立和啟用根 CA：

```
$ # 1. Create Root CA
aws acm-pca create-certificate-authority \
    --certificate-authority-configuration \
        "KeyAlgorithm=RSA_4096,
        SigningAlgorithm=SHA256WITHRSA,
        Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=RootCA}" \
    --certificate-authority-type ROOT

# Store the Root CA Authority ARN from the previous output
ROOT_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>"

# 2. Generate Root CA CSR
aws acm-pca get-certificate-authority-csr \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --output text > customerRootCA.csr

# 3. Self-sign Root CA Certificate
aws acm-pca issue-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --csr fileb://customerRootCA.csr \
    --signing-algorithm SHA256WITHRSA \
	--template-arn arn:aws:acm-pca:::template/RootCACertificate/V1 \
    --validity Value=3652,Type=DAYS

# Store the Root CA certificate ARN from the previous output
ROOT_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<ca-authority-id>/certificate/<cert-id>"

# 4. Retrieve the Root CA certificate
aws acm-pca get-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate-arn $ROOT_CA_ARN \
    --output text > customerRootCA.crt

# 5. Import the Root CA Certificate
aws acm-pca import-certificate-authority-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate fileb://customerRootCA.crt
```

建立和啟用次級 CA （也稱為中繼 CA)：

```
$ # 6. Create Subordinate CA
aws acm-pca create-certificate-authority \
    --certificate-authority-configuration \
        "KeyAlgorithm=RSA_4096,
        SigningAlgorithm=SHA256WITHRSA,
        Subject={Country=US,Organization=MyOrg,OrganizationalUnit=IT,CommonName=SubordinateCA}" \
    --certificate-authority-type SUBORDINATE

# Store the Subordinate CA Authority ARN from the previous output
SUB_CA_AUTHORITY_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>"

# 7. Generate Subordinate CA CSR
aws acm-pca get-certificate-authority-csr \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --output text > intermediateCA.csr

# 8. Issue Subordinate CA Certificate using Root CA
aws acm-pca issue-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --csr fileb://intermediateCA.csr \
    --signing-algorithm SHA256WITHRSA \
    --template-arn arn:aws:acm-pca:::template/SubordinateCACertificate_PathLen0/V1 \
    --validity Value=3651,Type=DAYS

# Store the Subordinate CA certificate ARN from the previous output
SUB_CA_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<sub-ca-authority-id>"

# 9. Retrieve Subordinate CA Certificate
aws acm-pca get-certificate \
    --certificate-authority-arn $ROOT_CA_AUTHORITY_ARN \
    --certificate-arn $SUB_CA_ARN \
    --query 'Certificate' \
    --output text > intermediateCA.crt

# 10. Import the Subordinate CA Certificate
aws acm-pca import-certificate-authority-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --certificate fileb://intermediateCA.crt \
    --certificate-chain fileb://customerRootCA.crt
```

將憑證合併為鏈結檔案：

```
$ cat intermediateCA.crt customerRootCA.crt > chainCA.crt

-----BEGIN CERTIFICATE-----
[Intermediate CA]
-----END CERTIFICATE-----
...
...
-----BEGIN CERTIFICATE-----
[Root CA]
-----END CERTIFICATE-----
```

使用 AWS PCA 簽署叢集 CSR：

```
$ aws acm-pca issue-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --csr fileb://<cluster ID>_ClusterCsr.csr \
    --signing-algorithm SHA256WITHRSA \
    --template-arn arn:aws:acm-pca:::template/EndEntityCertificate/V1 \
    --validity Value=3650,Type=DAYS

# Store your cluster's cert ARN from the previous output
CLUSTER_CERT_ARN="arn:aws:acm-pca:<region>:<account-id>:certificate-authority/<cluster-cert-arn>"
```

下載簽章的叢集憑證：

```
$ aws acm-pca get-certificate \
    --certificate-authority-arn $SUB_CA_AUTHORITY_ARN \
    --certificate-arn $CLUSTER_CERT_ARN \
    --output text --query Certificate > <cluster ID>_CustomerHsmCertificate.crt
```

------

此命令會建立名為 `<cluster ID>_CustomerHsmCertificate.crt` 的檔案。初始化叢集時，使用這個檔案做為已簽署的憑證。

根據憑證鏈驗證簽章的憑證 （選用）：

```
$ openssl verify -purpose sslserver -CAfile chainCA.crt <cluster ID>_CustomerHsmCertificate.crt
<cluster ID>_CustomerHsmCertificate.crt: OK
```

使用中繼 CA 產生已簽署的 HSM 憑證後，請前往 [步驟 4. 初始化叢集](#initialize)。

## 步驟 4. 初始化叢集
<a name="initialize"></a>

使用已簽署的 HSM 憑證和簽署憑證來初始化您的叢集。您可以使用 [AWS CloudHSM 主控台](https://console.aws.amazon.com/cloudhsm/)[AWS CLI](https://aws.amazon.com/cli/)、 或 AWS CloudHSM API。

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

**初始化叢集 (主控台)**

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

1. 選取您要驗證的 HSM 叢集 ID 旁的選項按鈕。

1. 選取**動作**。從下拉式功能表中，選擇**初始化**。

1. 如果您未完成[上一個步驟](create-hsm.md)來建立 HSM，請為您正在建立的 HSM 選擇一個可用區域 (AZ)。然後選取**建立**。

1. 在 **Download certificate signing request (下載憑證簽署請求)** 頁面上，選擇 **Next (下一步)**。如果無法使用 ** Next (下一步)**，先選擇其中一個 CSR 或憑證連結。然後選擇**下一步**。

1. 在 **Sign certificate signing request (簽署憑證簽署請求)** 頁面上，選擇 **Next (下一步)**。

1. 在 **Upload the certificates (上傳憑證)** 頁面上，執行下列動作：

   1. 選擇 **Cluster certificate (叢集憑證)** 旁的 **Upload file (上傳檔案)**。然後，尋找並選取您之前簽署的 HSM 憑證。如果您已完成先前區段的步驟，請選取 `<cluster ID>_CustomerHsmCertificate.crt` 檔案。

   1. 選擇 **Issuing certificate (發行憑證)** 旁的 **Upload file (上傳檔案)**。然後，根據您選擇的方法選取簽署憑證：
      + **如果您選擇選項 A （單一自我簽署憑證）：**選取名為 的檔案 `<customerRootCA>.crt`
      + **如果您選擇選項 B （憑證鏈）：**選取名為 的檔案 `<chainCA>.crt`

   1. 選擇 **Upload and initialize (上傳並初始化)**。

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

**初始化叢集 ([AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/))**
+ 在命令提示中，執行 **[initialize-cluster](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/initialize-cluster.html)** 命令。提供下列資訊：
  + 您先前建立之叢集的 ID。
  + 您先前簽署的 HSM 憑證。如果您已完成先前區段的步驟，它會儲存在名為 `<cluster ID>_CustomerHsmCertificate.crt` 的檔案中。
  + 根據您選擇的方法簽署憑證：
    + **如果您選擇選項 A （單一自我簽署憑證）：**使用名為 的檔案 `<customerRootCA>.crt`
    + **如果您選擇選項 B （憑證鏈）：**使用名為 的檔案 `<chainCA>.crt`

  ```
  $ aws cloudhsmv2 initialize-cluster --cluster-id <cluster ID> \
                                      --signed-cert file://<cluster ID>_CustomerHsmCertificate.crt \
                                      --trust-anchor file://<customerRootCA.crt OR chainCA.crt>
  {
      "State": "INITIALIZE_IN_PROGRESS",
      "StateMessage": "Cluster is initializing. State will change to INITIALIZED upon completion."
  }
  ```

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

**初始化叢集 (AWS CloudHSM API)**
+ 使用下列項目傳送 [https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_InitializeCluster.html](https://docs.aws.amazon.com/cloudhsm/latest/APIReference/API_InitializeCluster.html) 請求：
  + 您先前建立之叢集的 ID。
  + 您先前簽署的 HSM 憑證。如果您已完成先前區段的步驟，它會儲存在名為 `<cluster ID>_CustomerHsmCertificate.crt` 的檔案中。
  + 根據您選擇的方法簽署憑證：
    + **如果您選擇選項 A （單一自我簽署憑證）：**使用名為 的檔案 `<customerRootCA>.crt`
    + **如果您選擇選項 B （憑證鏈）：**使用名為 的檔案 `<chainCA>.crt`

------

# 下載和設定 CloudHSM CLI
<a name="gs_cloudhsm_cli-install"></a>

若要與 AWS CloudHSM 叢集中的 HSM 互動，您需要 CloudHSM CLI。

連接至您的用戶端執行個體並執行下列命令，以下載並安裝 AWS CloudHSM 命令列工具。如需詳細資訊，請參閱[啟動 Amazon EC2 用戶端執行個體以與 互動 AWS CloudHSM](launch-client-instance.md)。

------
#### [ Amazon Linux 2023 ]

x86\$164 架構上的 Amazon Linux 2023：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-cli-latest.amzn2023.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.amzn2023.x86_64.rpm
```

ARM64 架構上的 Amazon Linux 2023：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Amzn2023/cloudhsm-cli-latest.amzn2023.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.amzn2023.aarch64.rpm
```

------
#### [ Amazon Linux 2 ]

Amazon Linux 2 (x86\$164 架構)：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-cli-latest.el7.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el7.x86_64.rpm
```

Amazon Linux 2 (ARM64 架構)：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL7/cloudhsm-cli-latest.el7.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el7.aarch64.rpm
```

------
#### [ RHEL 10 (10.0\$1) ]

x86\$164 架構上的 RHEL 10：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-cli-latest.el10.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el10.x86_64.rpm
```

ARM64 架構上的 RHEL 10：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL10/cloudhsm-cli-latest.el10.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el10.aarch64.rpm
```

------
#### [ RHEL 9 (9.2\$1) ]

x86\$164 架構上的 RHEL 9：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-cli-latest.el9.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el9.x86_64.rpm
```

ARM64 架構上的 RHEL 9：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL9/cloudhsm-cli-latest.el9.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el9.aarch64.rpm
```

------
#### [ RHEL 8 (8.3\$1) ]

RHEL 8 (x86\$164 架構)：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-cli-latest.el8.x86_64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el8.x86_64.rpm
```

ARM64 架構上的 RHEL 8：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL8/cloudhsm-cli-latest.el8.aarch64.rpm
```

```
$ sudo yum install ./cloudhsm-cli-latest.el8.aarch64.rpm
```

------
#### [ Ubuntu 24.04 LTS ]

x86\$164 架構上的 Ubuntu 24.04 LTS：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-cli_latest_u24.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u24.04_amd64.deb
```

ARM64 架構上的 Ubuntu 24.04 LTS：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Noble/cloudhsm-cli_latest_u24.04_arm64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u24.04_arm64.deb
```

------
#### [ Ubuntu 22.04 LTS ]

Ubuntu 22.04 LTS (x86\$164 架構)：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-cli_latest_u22.04_amd64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u22.04_amd64.deb
```

ARM64 架構上的 Ubuntu 22.04 LTS：

```
$ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Jammy/cloudhsm-cli_latest_u22.04_arm64.deb
```

```
$ sudo apt install ./cloudhsm-cli_latest_u22.04_arm64.deb
```

------
#### [ Windows Server 2022 ]

對於 x86\$164 架構上的 Windows Server 2022，請以管理員身分開啟 PowerShell，並執行下列命令：

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------
#### [ Windows Server 2019 ]

對於 Windows Server 2019 (x86\$164 架構)，請以系統管理員身分開啟 PowerShell，然後執行下列命令：

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------
#### [ Windows Server 2016 ]

對於 Windows Server 2016 (x86\$164 架構)，請以系統管理員身分開啟 PowerShell，然後執行下列命令：

```
PS C:\> wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMCLI-latest.msi -Outfile C:\AWSCloudHSMCLI-latest.msi
```

```
PS C:\> Start-Process msiexec.exe -ArgumentList '/i C:\AWSCloudHSMCLI-latest.msi /quiet /norestart /log C:\client-install.txt' -Wait
```

------

使用下列命令來設定 CloudHSM CLI。

**為用戶端 SDK 5 引導 Linux EC2 執行個體**
+  使用設定工具指定叢集中 HSM 的 IP 地址。

  ```
  $ sudo /opt/cloudhsm/bin/configure-cli -a <The ENI IPv4 / IPv6 addresses of the HSMs>
  ```

**為用戶端 SDK 5 引導 Windows EC2 執行個體**
+  使用設定工具指定叢集中 HSM 的 IP 地址。

  ```
  PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" -a <The ENI IPv4 / IPv6 addresses of the HSMs>
  ```

# 在 中啟用叢集 AWS CloudHSM
<a name="activate-cluster"></a>

當您啟用 AWS CloudHSM 叢集時，叢集的狀態會從初始化變更為作用中。然後，您就可以[管理硬體安全模組 (HSM) 的使用者](manage-hsm-users.md)和[使用 HSM](use-hsm.md)。

**重要**  
在啟動叢集之前，您必須先將簽發的憑證複製到連線至叢集的每個 EC2 執行個體平台的預設位置 (您可以在初始化叢集時建立發行憑證)。根據您在叢集初始化期間選擇的方法，使用適當的憑證檔案：  
**如果您選擇選項 A （單一自我簽署憑證）：**複製 `customerRootCA.crt`
**如果您選擇選項 B （憑證鏈）：**複製 `chainCA.crt`
**Linux 位置：**  

```
/opt/cloudhsm/etc/<customerRootCA.crt OR chainCA.crt>
```
**Windows 位置：**  

```
C:\ProgramData\Amazon\CloudHSM\<customerRootCA.crt OR chainCA.crt>
```
複製憑證檔案後，請編輯 `/opt/cloudhsm/etc/cloudhsm-cli.cfg` 檔案，以確保憑證檔案名稱與您複製的 CA 憑證名稱相符。

放置簽發的憑證後，請安裝 CloudHSM CLI，並在您的第一個 HSM 上執行 [**cluster activate**](cloudhsm_cli-cluster-activate.md) 命令。您會注意到叢集中第一個 HSM 上的管理員帳戶具有[未啟用的管理員](understanding-users.md)角色。這是僅在叢集啟動之前暫時存在的角色。當您啟動叢集時，未啟用的管理員角色會變更為管理員。

**啟用叢集**

1. 連接到您先前啟動的用戶端執行個體。如需詳細資訊，請參閱[啟動 Amazon EC2 用戶端執行個體以與 互動 AWS CloudHSM](launch-client-instance.md)。您可以啟動 Linux 執行個體或 Windows Server。

1. 以互動式模式執行 CloudHSM CLI。

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. (選用) 使用 **user list** 命令來顯示現有的使用者。

   ```
   aws-cloudhsm > user list
   {
     "error_code": 0,
     "data": {
       "users": [
         {
           "username": "admin",
           "role": "unactivated-admin",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         },
         {
           "username": "app_user",
           "role": "internal(APPLIANCE_USER)",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         }
       ]
     }
   }
   ```

1. 使用 **cluster activate** 命令設定初始管理員密碼。

   ```
   aws-cloudhsm > cluster activate
   Enter password:<NewPassword>
   Confirm password:<NewPassword>
   {
     "error_code": 0,
     "data": "Cluster activation successful"
   }
   ```

   建議您將新密碼寫在密碼工作表。不要遺失此工作表。建議您列印一份密碼工作表，用來記錄重要的 HSM 密碼，並存放於安全之處。另外也建議您將一份這個工作表存放於安全的離站儲存區。

1. (選用) 使用 **user list** 命令，確認使用者的類型已變更為[管理員/CO](understanding-users-cmu.md#crypto-officer)。

   ```
   aws-cloudhsm > user list
   {
     "error_code": 0,
     "data": {
       "users": [
         {
           "username": "admin",
           "role": "admin",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         },
          {
           "username": "app_user",
           "role": "internal(APPLIANCE_USER)",
           "locked": "false",
           "mfa": [],
           "cluster-coverage": "full"
         }
       ]
     }
   }
   ```

1. 使用 **quit** 命令來停止 CloudHSM CLI 工具。

   ```
   aws-cloudhsm > quit
   ```

如需使用 CloudHSM CLI 或 CMU 的詳細資訊，請參閱[了解 HSM 使用者](understanding-users.md)和[了解使用 CMU 的 HSM 使用者管理](understand-users.md)。

# 在用戶端和 之間設定交互 TLS AWS CloudHSM （建議）
<a name="getting-started-setup-mtls"></a>

下列主題說明您必須完成的步驟，才能在用戶端與 之間啟用交互 Transport Layer Security (mTLS) AWS CloudHSM。

**考量事項**
+ 目前此功能僅適用於 hsm2m.medium。如需 HSM 類型的詳細資訊，請參閱 [AWS CloudHSM 叢集模式](cluster-hsm-types.md)。
+ 與 搭配使用的 AWS CloudHSM 金鑰存放區不支援 mTLS AWS Key Management Service。

**Topics**
+ [步驟 1. 在 HSM 上建立並註冊信任錨點](#setup-mtls-create-and-register-trust-anchor)
+ [步驟 2. 為 啟用 mTLS AWS CloudHSM](#getting-start-setup-mtl-sdk)
+ [步驟 3。設定 的 mTLS 強制執行 AWS CloudHSM](#getting-start-setup-mtls-enforcement)

## 步驟 1. 在 HSM 上建立並註冊信任錨點
<a name="setup-mtls-create-and-register-trust-anchor"></a>

必須先在 HSM 上建立並註冊信任錨點，才能啟用 mTLS。這是一個兩步驟的程序：

**Topics**
+ [建立私有金鑰和自我簽署根憑證](#setup-mtls-create-trust-anchor)
+ [在 HSM 上註冊信任錨點](#setup-mtls-register-trust-anchor)

### 建立私有金鑰和自我簽署根憑證
<a name="setup-mtls-create-trust-anchor"></a>

**注意**  
針對生產叢集，應使用信任的隨機來源以安全的方式建立您想建立的金鑰。我們建議您使用安全的離站和離線 HSM 或其他同等項目。安全地存放金鑰。  
對於開發和測試，您可以使用任何方便的工具 （例如 OpenSSL) 來建立金鑰並自我簽署根憑證。您將需要 金鑰和根憑證，才能在[啟用 mTLS 的 AWS CloudHSM](#getting-start-setup-mtl-sdk) 中簽署用戶端憑證。

下列範例示範如何使用 [OpenSSL](https://www.openssl.org/) 建立私有金鑰和自我簽署根憑證。

**Example – 使用 OpenSSL 建立私有金鑰**  
使用下列命令來建立使用 AES-256 演算法加密的 4096 位元 RSA 金鑰。若要使用此範例，請將 *<mtls\$1ca\$1root\$11.key>* 取代為您要存放金鑰的檔案名稱。  

```
$ openssl genrsa -out <mtls_ca_root_1.key> -aes256 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
Enter pass phrase for mtls_ca_root_1.key:
Verifying - Enter pass phrase for mtls_ca_root_1.key:
```

**Example – 使用 OpenSSL 建立自我簽署根憑證**  
使用下列命令，`mtls_ca_root_1.crt`從您剛建立的私有金鑰建立名為 的自我簽署根憑證。憑證有效期為 25 年 (9130 天）。請閱讀畫面上的指示，並依照提示操作。  

```
$ openssl req -new -x509 -days 9130 -key mtls_ca_root_1.key -out mtls_ca_root_1.crt
Enter pass phrase for mtls_ca_root_1.key:
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

### 在 HSM 上註冊信任錨點
<a name="setup-mtls-register-trust-anchor"></a>

建立自我簽署根憑證之後，管理員必須將憑證註冊為 AWS CloudHSM 叢集的信任錨點。

**向 HSM 註冊信任錨點**

1. 使用下列命令來啟動 CloudHSM CLI：

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. 使用 CloudHSM CLI，以管理員身分登入。

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

1. 使用 ** [向 CloudHSM CLI 註冊信任錨點](cloudhsm_cli-cluster-mtls-register-trust-anchor.md) **命令來註冊信任錨點。如需詳細資訊，請參閱下列範例或使用 **help cluster mtls register-trust-anchor** 命令。

**Example – 向 AWS CloudHSM 叢集註冊信任錨點**  
下列範例示範如何在 CloudHSM CLI 中使用 **cluster mtls register-trust-anchor**命令，將信任錨點註冊到 HSM。若要使用此命令，管理員必須登入 HSM。以您自己的值取代這些值：  

```
aws-cloudhsm > cluster mtls register-trust-anchor --path </path/mtls_ca_root_1.crt>
{
  "error_code": 0,
  "data": {
    "trust_anchor": {
      "certificate-reference": "0x01",
      "certificate": "<PEM Encoded Certificate>",
      "cluster-coverage": "full"
    }
  }
}
```
AWS CloudHSM 支援將中繼憑證註冊為信任錨點。在這種情況下，整個 PEM 編碼的憑證鏈檔案需要註冊到 HSM，並以階層順序使用憑證。  
 AWS CloudHSM 支援 6980 位元組的憑證鏈。
成功註冊信任錨點後，您可以執行 **cluster mtls list-trust-anchors**命令來檢查目前註冊的信任錨點，如下所示：  

```
aws-cloudhsm > cluster mtls list-trust-anchors
{
  "error_code": 0,
  "data": {
    "trust_anchors": [
      {
        "certificate-reference": "0x01",
        "certificate": "<PEM Encoded Certificate>",
        "cluster-coverage": "full"
      }
    ]
  }
}
```
 可以在 hsm2m.medium 上註冊的信任錨點數目上限為兩 (2) 個。

## 步驟 2. 為 啟用 mTLS AWS CloudHSM
<a name="getting-start-setup-mtl-sdk"></a>

若要為 啟用 mTLS AWS CloudHSM，您需要建立私有金鑰和由我們在[建立和註冊信任錨點到 HSM](#setup-mtls-create-and-register-trust-anchor) 中產生的根憑證簽署的用戶端憑證，然後使用任何用戶端 SDK 5 設定工具來設定私有金鑰路徑和用戶端憑證鏈路徑。

**Topics**
+ [建立私有金鑰和用戶端憑證鏈](#create-client-ssl)
+ [為用戶端 SDK 5 設定 mTLS](#enable-ssl-5)

### 建立私有金鑰和用戶端憑證鏈
<a name="create-client-ssl"></a>

**Example – 使用 OpenSSL 建立私有金鑰**  
使用下列命令來建立 4096 位元 RSA 金鑰。若要使用此範例，請將 *<ssl-client.key>* 取代為您要存放金鑰的檔案名稱。  

```
$ openssl genrsa -out <ssl-client.key> 4096
Generating RSA private key, 4096 bit long modulus
.....................................+++
.+++
e is 65537 (0x10001)
```

**Example – 使用 OpenSSL 產生憑證簽署請求 (CSR)**  
使用下列命令，從您剛建立的私有金鑰產生憑證簽署請求 (CSR)。請閱讀畫面上的指示，並依照提示操作。  

```
$ openssl req -new -key <ssl-client.key> -out <ssl-client.csr>
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:
```

**Example – 使用根憑證簽署 CSR**  
使用下列命令，以我們在[建立信任錨點並將其註冊到 HSM 中建立和註冊的根憑證簽署 CSR，](#setup-mtls-create-and-register-trust-anchor)並建立名為 的用戶端憑證`ssl-client.crt`。憑證有效期為 5 年 (1826 天）。  

```
$ openssl x509 -req -days 1826 -in <ssl-client.csr> -CA <mtls_ca_root_1.crt> -CAkey <mtls_ca_root_1.key> -CAcreateserial -out <ssl-client.crt>
```

**Example – 建立用戶端憑證鏈**  
使用下列命令，將我們在[建立信任錨點並註冊到 HSM](#setup-mtls-create-and-register-trust-anchor) 中建立和註冊的用戶端憑證和根憑證合併，並建立名為 的用戶端憑證鏈`ssl-client.pem`，用於在下一個步驟中設定。  

```
$ cat <ssl-client.crt> <mtls_ca_root_1.crt> > <ssl-client.pem>
```
 如果您在[建立中繼憑證並在 HSM 上註冊信任錨點](#setup-mtls-create-and-register-trust-anchor)做為信任錨點，請務必將用戶端憑證與整個憑證鏈結合，以建立用戶端憑證鏈。

### 為用戶端 SDK 5 設定 mTLS
<a name="enable-ssl-5"></a>

使用任何 用戶端 SDK 5 設定工具，透過提供正確的用戶端金鑰路徑和用戶端憑證鏈路徑來啟用交互 TLS。如需設定用戶端 SDK 5 工具的詳細資訊，請參閱 [AWS CloudHSM 用戶端 SDK 5 設定工具](configure-sdk-5.md) 。

------
#### [ PKCS \$111 library ]

**使用自訂憑證和金鑰搭配 Linux 上的用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   $ sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   $ sudo /opt/cloudhsm/bin/configure-pkcs11 \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**在 Windows 上使用自訂憑證和金鑰與用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  使用 PowerShell 解譯器時，請使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-pkcs11.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ OpenSSL Dynamic Engine ]

**使用自訂憑證和金鑰搭配 Linux 上的用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   $ sudo /opt/cloudhsm/bin/configure-dyn \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

------
#### [ Key Storage Provider (KSP) ]

**在 Windows 上使用自訂憑證和金鑰與用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  使用 PowerShell 解譯器時，請使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-ksp.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ JCE provider ]

**使用自訂憑證和金鑰搭配 Linux 上的用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   $ sudo /opt/cloudhsm/bin/configure-jce \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**在 Windows 上使用自訂憑證和金鑰與用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  使用 PowerShell 解譯器時，請使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------
#### [ CloudHSM CLI ]

**使用自訂憑證和金鑰搭配 Linux 上的用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   $ sudo cp ssl-client.pem </opt/cloudhsm/etc>
   sudo cp ssl-client.key </opt/cloudhsm/etc>
   ```

1.  使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   $ sudo /opt/cloudhsm/bin/configure-cli \
               --client-cert-hsm-tls-file </opt/cloudhsm/etc/ssl-client.pem> \
               --client-key-hsm-tls-file </opt/cloudhsm/etc/ssl-client.key>
   ```

**在 Windows 上使用自訂憑證和金鑰與用戶端 SDK 5 進行 TLS 用戶端-HSM 交互身分驗證**

1. 將您的金鑰和憑證複製到適當的目錄。

   ```
   cp ssl-client.pem <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem>
   cp ssl-client.key <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

1.  使用 PowerShell 解譯器時，請使用設定工具來指定 `ssl-client.pem` 和 `ssl-client.key`。

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-cli.exe" `
               --client-cert-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.pem> `
               --client-key-hsm-tls-file <C:\ProgramData\Amazon\CloudHSM\ssl-client.key>
   ```

------

## 步驟 3。設定 的 mTLS 強制執行 AWS CloudHSM
<a name="getting-start-setup-mtls-enforcement"></a>

使用任何 用戶端 SDK 5 設定工具設定 之後， 用戶端與 之間的連線 AWS CloudHSM 將是叢集中的交互 TLS。不過，從組態檔案移除私有金鑰路徑和用戶端憑證鏈路徑，將再次將連線轉換為一般 TLS。您可以使用 CloudHSM CLI 完成下列步驟，在叢集中設定 mtls 強制執行：

1. 使用下列命令來啟動 CloudHSM CLI：

------
#### [ Linux ]

   ```
   $ /opt/cloudhsm/bin/cloudhsm-cli interactive
   ```

------
#### [ Windows ]

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\cloudhsm-cli.exe" interactive
   ```

------

1. 使用 CloudHSM CLI，以管理員身分登入。

   ```
   aws-cloudhsm > login --username <admin> --role admin
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "admin"
     }
   }
   ```
**注意**  
 1. 請確定您已設定 CloudHSM CLI，並在 mTLS 連線下啟動 CloudHSM CLI。  
 2. 在設定 mTLS 強制執行之前，您必須以使用者名稱為 **admin** 的預設管理員使用者身分登入。

1. 使用 ** [使用 CloudHSM CLI 設定 mTLS 強制執行層級](cloudhsm_cli-cluster-mtls-set-enforcement.md) **命令來設定強制執行。如需詳細資訊，請參閱下列範例或使用 **help cluster mtls set-enforcement** 命令。  
**Example – 使用 AWS CloudHSM 叢集設定 mTLS 強制執行**  

   下列範例示範如何在 CloudHSM CLI 中使用 **cluster mtls set-enforcement**命令，透過 HSM 設定 mTLS 強制執行。若要使用此命令，使用者名稱為 admin 的管理員必須登入 HSM。

   ```
   aws-cloudhsm > cluster mtls set-enforcement --level cluster
   {
     "error_code": 0,
     "data": {
       "message": "Mtls enforcement level set to Cluster successfully"
     }
   }
   ```
**警告**  
在叢集中強制執行 mTLS 用量之後，所有現有的非 mTLS 連線都會遭到捨棄，而且您只能使用 mTLS 憑證連線到叢集。

# 在 中建立和使用金鑰 AWS CloudHSM
<a name="create-apps"></a>

在新叢集中建立和使用金鑰之前，請使用 AWS CloudHSM CLI 建立硬體安全模組 (HSM) 使用者 如需詳細資訊，請參閱[了解 HSM 使用者管理任務](understand-users.md)、[AWS CloudHSM 命令列界面 (CLI) 入門](cloudhsm_cli-getting-started.md)和[如何管理 HSM 使用者](manage-hsm-users.md)。

**注意**  
如使用用戶端 SDK 3，請使用 [CloudHSM 管理公用程式 (CMU)](cloudhsm_mgmt_util.md) 而不是 CloudHSM CLI。

建立 HSM 使用者之後，您可以使用下列任一選項登入 HSM 並管理金鑰：
+ 使用[金錀管理公用程式，命令列工具](key_mgmt_util-getting-started.md)
+ 使用[PKCS \$111 程式庫](pkcs11-library.md)建立 C 應用程式
+ 使用 [JCE 提供程序](java-library.md)建立 Java 應用程式
+ 使用[直接從命令列使用 OpenSSL 動態引擎](openssl-library.md)
+ 使用 OpenSSL 動態引擎在 [NGINX 和 Apache Web 伺服器](ssl-offload.md)上進行 TLS 卸載
+ 使用 的金鑰儲存提供者 (KSP) AWS CloudHSM 搭配 [Microsoft Windows Server 憑證授權機構 (CA)](win-ca-overview-sdk5.md)
+ 使用適用於 的金鑰儲存提供者 (KSP) AWS CloudHSM 搭配 [Microsoft Sign Tool](signtool-sdk5.md)
+ 使用金鑰儲存提供者 (KSP) 搭配[網際網路資訊伺服器 (IIS) Web 伺服器](ssl-offload.md)進行 TLS 卸載