

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

# 使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理
<a name="manage-hsm-users-cmu"></a>

 若要在 中管理硬體安全模組 (HSM) 使用者 AWS CloudHSM，您必須使用[密碼編譯主管](understanding-users-cmu.md#crypto-officer) (CO) 的使用者名稱和密碼登入 HSM。只有 CO 可以管理使用者。HSM 包含名為 admin 的預設 CO。您可以在[啟用叢集](activate-cluster.md)時設定 admin 管理員的密碼。

本主題提供使用 AWS CloudHSM Management Utility (CMU) 管理 HSM step-by-step說明和詳細資訊。

**Topics**
+ [先決條件](understand-users.md)
+ [使用者類型](understanding-users-cmu.md)
+ [許可表](user-permissions-table-cmu.md)
+ [建立使用者](create-users-cmu.md)
+ [列出所有使用者](list-users.md)
+ [變更密碼](change-user-password-cmu.md)
+ [刪除使用者](delete-user.md)
+ [管理使用者 2FA](manage-2fa.md)
+ [使用 CMU 管理規定人數身分驗證](quorum-authentication.md)

# Management AWS CloudHSM Utility 中使用者管理的先決條件
<a name="understand-users"></a>

在使用 AWS CloudHSM Management Utility (CMU) 管理硬體安全模組 (HSM) 使用者之前 AWS CloudHSM，您必須先完成這些先決條件。下列主題說明 CMU 入門。

**Topics**
+ [在 中取得 HSM 的 IP 地址 AWS CloudHSM](#user-cmu-prereq-ip)
+ [將 CMU 與用戶端 SDK 3.2.1 及更早版本搭配使用](#downlevel-cmu)
+ [下載 CloudHSM 管理公用程式](#get-cli-users-cmu)

## 在 中取得 HSM 的 IP 地址 AWS CloudHSM
<a name="user-cmu-prereq-ip"></a>

 如要使用 CMU，您必須使用設定工具來更新本機組態。CMU 會建立自己的與叢集的連接，且該連接*不*支援叢集。為追蹤叢集資訊，CMU 會維護本機組態檔案。這表示*每次*使用 CMU 時，您都應先透過執行帶有 `--cmu` 參數的[設定](configure-tool.md)命令列工具來更新組態檔案。如果您使用的是用戶端 SDK 3.2.1 或更早版本，則必須將 `--cmu` 換成其他參數。如需詳細資訊，請參閱 [將 CMU 與用戶端 SDK 3.2.1 及更早版本搭配使用](#downlevel-cmu)。

 `--cmu` 參數需要在叢集中新增 HSM 的 IP 地址。如果您有多個 HSM，則可以使用任何 IP 地址。這可確保 CMU 可在整個叢集中傳播您所做的任何變更。請記住，CMU 會使用其本機檔案來追蹤叢集資訊。如果自上次從特定主機使用 CMU 後叢集已發生變更，則必須將這些變更新增至儲存在該主機上的本機組態檔案中。使用 CMU 時，請勿新增或移除 HSM。

**取得 HSM 的 IP 地址 （主控台）**

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

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

1. 若要開啟叢集詳細資訊頁面，請在叢集表格中選擇叢集 ID。

1. 若要取得 IP 地址，請前往 HSMs索引標籤。對於 IPv4 叢集，請選擇 **ENI IPv4 地址下列出的地址**。對於雙堆疊叢集，請使用 ENI IPv4 或 **ENI IPv6 地址**。

**取得 HSM 的 IP 地址 (AWS CLI)**
+ 使用 AWS CLI中的 **[describe-clusters](https://docs.aws.amazon.com/cli/latest/reference/cloudhsmv2/describe-clusters.html)** 命令取得 HSM 的 IP 地址。在 命令的輸出中，HSMs 的 IP 地址是 `EniIp`和 的值 `EniIpV6`（如果是雙堆疊叢集）。

  ```
  $ aws cloudhsmv2 describe-clusters
  {
      "Clusters": [
          { ... }
              "Hsms": [
                  {
  ...
                      "EniIp": "10.0.0.9",
  ...
                  },
                  {
  ...
                      "EniIp": "10.0.1.6",
                      "EniIpV6": "2600:113f:404:be09:310e:ed34:3412:f733",
  ...
  ```

## 將 CMU 與用戶端 SDK 3.2.1 及更早版本搭配使用
<a name="downlevel-cmu"></a>

使用用戶端 SDK 3.3 AWS CloudHSM .0 新增了對 `--cmu` 參數的支援，可簡化更新 CMU 組態檔案的程序。如果您使用的是用戶端 SDK 3.2.1 或更早版本的 CMU，您必須繼續使用 `-a` 和 `-m` 參數來更新組態檔案。如需這些參數的詳細資訊，請參閱[設定工具](configure-tool.md)。

## 下載 CloudHSM 管理公用程式
<a name="get-cli-users-cmu"></a>

無論您使用的是用戶端 SDK 5 還是用戶端 SDK 3，HSM 使用者管理任務均可使用最新版本的 CMU。

**如要下載並安裝 CMU**
+ 下載並安裝 CMU。

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

  ```
  $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/EL6/cloudhsm-mgmt-util-latest.el6.x86_64.rpm
  ```

  ```
  $ sudo yum install ./cloudhsm-mgmt-util-latest.el6.x86_64.rpm
  ```

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

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

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

------
#### [ CentOS 7.8\$1 ]

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

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

------
#### [ CentOS 8.3\$1 ]

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

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

------
#### [ RHEL 7 (7.8\$1) ]

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

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

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

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

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

------
#### [ Ubuntu 16.04 LTS ]

  ```
  $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Xenial/cloudhsm-mgmt-util_latest_amd64.deb
  ```

  ```
  $ sudo apt install ./cloudhsm-mgmt-util_latest_amd64.deb
  ```

------
#### [ Ubuntu 18.04 LTS ]

  ```
  $ wget https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Bionic/cloudhsm-mgmt-util_latest_u18.04_amd64.deb
  ```

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

------
#### [ Windows Server 2012 ]

  1. 下載 [CloudHSM 管理公用程式](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMManagementUtil-latest.msi)。

  1. 以 Windows 管理權限執行 CMU 安裝程式 (**AWSCloudHSMManagementUtil-latest.msi**)。

------
#### [ Windows Server 2012 R2 ]

  1. 下載 [CloudHSM 管理公用程式](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMManagementUtil-latest.msi)。

  1. 以 Windows 管理權限執行 CMU 安裝程式 (**AWSCloudHSMManagementUtil-latest.msi**)。

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

  1. 下載 [CloudHSM 管理公用程式](https://s3.amazonaws.com/cloudhsmv2-software/CloudHsmClient/Windows/AWSCloudHSMManagementUtil-latest.msi)。

  1. 以 Windows 管理權限執行 CMU 安裝程式 (**AWSCloudHSMManagementUtil-latest.msi**)。

------

# AWS CloudHSM Management Utility 的 HSM 使用者類型
<a name="understanding-users-cmu"></a>

 您在硬體安全模組 (HSM) 上執行的大多數操作都需要 AWS CloudHSM *anHSM 使用者的*登入資料。HSM 會驗證每個 HSM 使用者，且每個 HSM 使用者都有一種*類型*，決定您可以該使用者身分在 HSM 上執行哪些操作。

**注意**  
HSM 使用者與 IAM 使用者不同。擁有正確憑證的 IAM 使用者可利用 AWS API 與資源進行互動來建立 HSM。HSM 建立後，您必須使用 HSM 使用者憑證來驗證 HSM 上的操作。

**Topics**
+ [準加密員 (PRECO)](#preco)
+ [加密管理員 (CO)](#crypto-officer)
+ [加密使用者 (CU)](#crypto-user-cmu)
+ [設備使用者 (AU)](#appliance-user-cmu)

## 準加密員 (PRECO)
<a name="preco"></a>

在雲端管理公用程式 (CMU) 和金鑰管理公用程式 (KMU) 中，PRECO 是暫時使用者，僅存在於 AWS CloudHSM 叢集中的第一個 HSM 上。新叢集中的第一個 HSM 包含一個 PRECO 使用者，這表示此叢集尚未啟用。若要[啟用叢集](activate-cluster.md)，請執行 cloudhsm-cli 並執行 **cluster activate**命令。登入 HSM 並變更 PRECO 的密碼。當您變更密碼時，此使用者會變成加密管理員 (CO)。

## 加密管理員 (CO)
<a name="crypto-officer"></a>

在雲端管理公用程式 (CMU) 和金鑰管理公用程式 (KMU) 中，加密管理員 (CO) 可以執行使用者管理操作。例如，管理員可以建立和刪除使用者，也可以變更使用者密碼。如需有關加密使用者的詳細資訊，請參閱 [AWS CloudHSM Management Utility 的 HSM 使用者許可表](user-permissions-table-cmu.md)。當您啟用新的叢集時，使用者會從 [Precrypto Officer](#preco) (PRECO) 變更為加密主管 (CO)。

## 加密使用者 (CU)
<a name="crypto-user-cmu"></a>

加密使用者 (CU) 可以執行以下的金鑰管理和密碼編譯操作。
+ **金錀管理**：建立、刪除、共用、匯入和匯出密碼編譯金鑰。
+ **密碼編譯操作**：使用密碼編譯金鑰進行加密、解密、簽署、驗證及其他操作。

如需更多資訊，請參閱[AWS CloudHSM Management Utility 的 HSM 使用者許可表](user-permissions-table-cmu.md)。

## 設備使用者 (AU)
<a name="appliance-user-cmu"></a>

設備使用者 (AU) 可以在叢集的 HSMs 上執行複製和同步操作。 AWS CloudHSM 會使用 AU 來同步 AWS CloudHSM 叢集中的 HSMs。AU 存在於 提供的所有 HSMs上 AWS CloudHSM，並且具有有限的許可。如需更多資訊，請參閱[AWS CloudHSM Management Utility 的 HSM 使用者許可表](user-permissions-table-cmu.md)。

AWS 無法在 HSMs 上執行任何操作。 AWS 無法檢視或修改您的使用者或金鑰，也無法使用這些金鑰執行任何密碼編譯操作。

# AWS CloudHSM Management Utility 的 HSM 使用者許可表
<a name="user-permissions-table-cmu"></a>

下表列出硬體安全模組 (HSM( 操作依可在其中執行操作的 HSM 使用者或工作階段類型排序 AWS CloudHSM。


|  | 加密管理員 (CO) | 加密使用者 (CU) | 設備使用者 (AU) | 已驗證的工作階段 | 
| --- | --- | --- | --- | --- | 
| 取得基本叢集資訊¹ | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | 
| 變更自己的密碼 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | 不適用 | 
| 變更任何使用者的密碼 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 新增、移除使用者 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 取得同步狀態² | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 擷取、插入遮罩物件³ | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 金鑰管理功能⁴ | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 加密、解密 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 簽署、驗證 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
| 產生摘要和 HMAC | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[Yes\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-yes.png) 是 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | ![\[No\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/images/icon-no.png) 否 | 
+  [1] 基本叢集資訊包括叢集的 HSM 數目，以及每個 HSM 的 IP 地址、型號、序號、裝置 ID、韌體 ID 等。
+  [2] 使用者可以取得一組摘要 (雜湊)，這組摘要會對應到 HSM 上的金鑰。應用程式可以比較這幾組摘要，以了解叢集中的 HSM 的同步狀態。
+  [3] 遮罩物件就是在離開 HSM 之前加密的金鑰。這些金錀無法在 HSM 外部解密。將金鑰插入 HSM，而且此 HSM 與先前從中擷取金鑰的 HSM 必須在同一個叢集，金鑰才會解密。應用程式可以擷取和插入遮罩物件，以同步叢集的 HSM。
+  [4] 金鑰管理功能包括建立、刪除、包裝、取消包裝及修改金鑰的屬性。

# 使用 AWS CloudHSM Management Utility 建立 HSM 使用者
<a name="create-users-cmu"></a>

在 AWS CloudHSM Management Utility (CMU) **createUser**中使用 在硬體安全模組 (HSM) 上建立新使用者。您必須以 CO 的身份登入才能建立使用者。

**如要建立新的 CO 使用者**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1. 以 CO 使用者身分登入 HSM。

   ```
   aws-cloudhsm > loginHSM CO admin co12345
   ```

   請確定連線 CMU 清單的數目與叢集中的 HSM 數目相符。如不符，請登出並重新啟動。

1. 使用 **createUser** 來建立名為 **example\$1officer** 的 CO 使用者，密碼為 **password1**。

   ```
   aws-cloudhsm > createUser CO example_officer password1
   ```

   CMU 會提示您建立使用者操作。

   ```
   *************************CAUTION********************************
   This is a CRITICAL operation, should be done on all nodes in the
   cluster. AWS does NOT synchronize these changes automatically with the
   nodes on which this operation is not executed or failed, please
   ensure this operation is executed on all nodes in the cluster.
   ****************************************************************
   
   Do you want to continue(y/n)?
   ```

1. 輸入 **y**。

**如要建立新的 CU 使用者**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1. 以 CO 使用者身分登入 HSM。

   ```
   aws-cloudhsm > loginHSM CO admin co12345
   ```

   請確定連線 CMU 清單的數目與叢集中的 HSM 數目相符。如不符，請登出並重新啟動。

1. 使用 **createUser** 來建立名為 **example\$1user** 的 CU 使用者，密碼為 **password1**。

   ```
   aws-cloudhsm > createUser CU example_user password1
   ```

   CMU 會提示您建立使用者操作。

   ```
   *************************CAUTION********************************
   This is a CRITICAL operation, should be done on all nodes in the
   cluster. AWS does NOT synchronize these changes automatically with the
   nodes on which this operation is not executed or failed, please
   ensure this operation is executed on all nodes in the cluster.
   ****************************************************************
   
   Do you want to continue(y/n)?
   ```

1. 輸入 **y**。

如需 **createUser** 的詳細資訊，請參閱 [createUser](cloudhsm_mgmt_util-createUser.md)。

# 使用 AWS CloudHSM Management Utility 列出叢集中的所有 HSM 使用者
<a name="list-users"></a>

 在 AWS CloudHSM Management Utility (CMU) 中使用 **listUsers**命令來列出 AWS CloudHSM 叢集中的所有使用者。您無需登入即可執行 **listUsers** 且所有使用者類型都可以列出使用者。

**如要列出叢集中的所有使用者**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1.  用 **listUsers** 來列出叢集上的所有使用者。

   ```
   aws-cloudhsm > listUsers
   ```

   CMU 列出了叢集上的所有使用者。

   ```
   Users on server 0(10.0.2.9):
   Number of users found:4
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              AU              app_user                                 NO               0               NO
            2              CO              example_officer                          NO               0               NO
            3              CU              example_user                             NO               0               NO
   Users on server 1(10.0.3.11):
   Number of users found:4
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              AU              app_user                                 NO               0               NO
            2              CO              example_officer                          NO               0               NO
            3              CU              example_user                             NO               0               NO
   Users on server 2(10.0.1.12):
   Number of users found:4
   
       User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
            1              AU              app_user                                 NO               0               NO
            2              CO              example_officer                          NO               0               NO
            3              CU              example_user                             NO               0               NO
   ```

如需 **listUsers** 的詳細資訊，請參閱 [listUsers](cloudhsm_mgmt_util-listUsers.md)。

# 使用 AWS CloudHSM Management Utility 變更 HSM 使用者密碼
<a name="change-user-password-cmu"></a>

 在 AWS CloudHSM Management Utility (CMU) **changePswd**中使用 變更硬體安全模組 (HSM) 使用者的密碼。

 使用者類型和密碼需區分大小寫，但使用者名稱不區分大小寫。

 管理員、加密使用者 (CU) 和設備使用者 (AU) 只能變更自己的密碼。若要變更其他使用者的密碼，您必須以 CO 身分登入。您無法變更目前已登入使用者的密碼。

**如要變更您自己的密碼**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1. 登入 HSM。

   ```
   aws-cloudhsm > loginHSM CO admin co12345
   ```

   請確定連線 CMU 清單的數目與叢集中的 HSM 數目相符。如不符，請登出並重新啟動。

1. 使用 **changePswd** 變更您自己的密碼。

   ```
   aws-cloudhsm > changePswd CO example_officer <new password>
   ```

   CMU 會提示您變更密碼的操作。

   ```
   *************************CAUTION********************************
   This is a CRITICAL operation, should be done on all nodes in the
   cluster. AWS does NOT synchronize these changes automatically with the
   nodes on which this operation is not executed or failed, please
   ensure this operation is executed on all nodes in the cluster.
   ****************************************************************
   
   Do you want to continue(y/n)?
   ```

1. 輸入 **y**。

   CMU 會提示您變更密碼的操作。

   ```
   Changing password for example_officer(CO) on 3 nodes
   ```

**如要變更其他使用者的密碼**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1. 以 CO 使用者身分登入 HSM。

   ```
   aws-cloudhsm > loginHSM CO admin co12345
   ```

   請確定連線 CMU 清單的數目與叢集中的 HSM 數目相符。如不符，請登出並重新啟動。

1.  使用 **changePswd** 變更其他使用者的密碼。

   ```
   aws-cloudhsm > changePswd CU example_user <new password>
   ```

   CMU 會提示您變更密碼的操作。

   ```
   *************************CAUTION********************************
   This is a CRITICAL operation, should be done on all nodes in the
   cluster. AWS does NOT synchronize these changes automatically with the
   nodes on which this operation is not executed or failed, please
   ensure this operation is executed on all nodes in the cluster.
   ****************************************************************
   
   Do you want to continue(y/n)?
   ```

1. 輸入 **y**。

   CMU 會提示您變更密碼的操作。

   ```
   Changing password for example_user(CU) on 3 nodes
   ```

如需 **changePswd** 的詳細資訊，請參閱 [changePswd](cloudhsm_mgmt_util-changePswd.md)。

# 使用 AWS CloudHSM Management Utility 刪除 HSM 使用者
<a name="delete-user"></a>

在 AWS CloudHSM Management Utility (CMU) **deleteUser**中使用 刪除硬體安全模組 (HSM) 使用者。您必須以 CO 身分登入才能刪除其他使用者。

**提示**  
 您無法刪除擁有金鑰的加密使用者 (CU)。

**如要刪除使用者**

1. 使用設定工具來更新 CMU 組態。

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

   ```
   $ sudo /opt/cloudhsm/bin/configure --cmu <IP address>
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\configure.exe" --cmu <IP address>
   ```

------

1. 啟動 CMU。

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

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\cloudhsm_mgmt_util.exe" C:\ProgramData\Amazon\CloudHSM\data\cloudhsm_mgmt_util.cfg
   ```

------

1. 以 CO 使用者身分登入 HSM。

   ```
   aws-cloudhsm > loginHSM CO admin co12345
   ```

   請確定連線 CMU 清單的數目與叢集中的 HSM 數目相符。如不符，請登出並重新啟動。

1.  使用 **deleteUser** 刪除使用者。

   ```
   aws-cloudhsm > deleteUser CO example_officer
   ```

   CMU 會刪除使用者。

   ```
   Deleting user example_officer(CO) on 3 nodes
   deleteUser success on server 0(10.0.2.9)
   deleteUser success on server 1(10.0.3.11)
   deleteUser success on server 2(10.0.1.12)
   ```

如需 **deleteUser** 的詳細資訊，請參閱 [deleteUser](cloudhsm_mgmt_util-deleteUser.md)。

# 使用 Management Utility 管理使用者的 AWS CloudHSM 2FA
<a name="manage-2fa"></a>

為了提高安全性，您可以設定雙重驗證 (2FA)，以協助保護 AWS CloudHSM 叢集。您只能為加密管理員 (CO) 啟用 2FA。

當您以啟用 2FA 的硬體服務模組 (HSM) 帳戶登入叢集時，您需向 cloudhsm\$1mgmt\$1util (CMU) 提供您的密碼 (第一個要素，這是您已知的內容)，然後 CMU 會提供給您一個權杖並提示您簽署該權杖。如要提供第二個要素 (您擁有的)，請使用您已經建立並與 HSM 使用者相關聯的金錀對中的私有金鑰來簽署權杖。如要訪問叢集，請將已簽署的權杖提供給 CMU。

**注意**  
您無法為加密使用者 (CU) 或應用程式啟用 2FA。雙重要素驗證 (2FA) 僅適用於 CO 使用者。

**Topics**
+ [配額身分驗證](quorum-2fa.md)
+ [金鑰對要求](enable-2fa-kms.md)
+ [建立使用者](create-2fa.md)
+ [管理使用者 2FA](rotate-2fa.md)
+ [停用 2FA](disable-2fa.md)
+ [組態參考](reference-2fa.md)

# 使用 AWS CloudHSM Management Utility 的 AWS CloudHSM 叢集中的配額身分驗證和 2FA
<a name="quorum-2fa"></a>

叢集針對規定人數身分驗證和雙重身分驗證 2FA 使用相同的金鑰）。這意味著啟用了 2FA 的使用者可以有效地註冊了 M-of-N-access-control (MofN)。如要為同一 HSM 使用者成功使用 2FA 和規定人數驗證，請考慮下列幾點：
+ 如果您今天要為使用者使用規定人數驗證，則應使用您為規定人數使用者建立的同一個金錀對來為該使用者啟用 2FA。
+ 如果您為非規定人數驗證使用者身分的非 2FA 使用者新增 2FA 要求，則您應將該使用者註冊為具有 2FA 驗證的 MofN 使用者。
+ 如果您要為兼具規定人數驗證使用者身分的 2FA 使用者移除 2FA 要求或變更其密碼，您也會同時移除規定人數使用者作為 MofN 使用者的註冊。
+ 如果您要為兼具規定人數驗證使用者身分的 2FA 使用者移除 2FA 要求或變更其密碼，但*仍想保留該使用者的規定人數驗證*，則您須將該使用者註冊為 MofN 使用者。

如需規定人數驗證的詳細資訊，請參閱 [使用 CMU 管理規定人數身分驗證](quorum-authentication.md)。

# AWS CloudHSM 使用 AWS CloudHSM Management Utility 的 2FA 金鑰對需求
<a name="enable-2fa-kms"></a>

若要為 AWS CloudHSM 硬體安全模組 (HSM) 使用者啟用雙重驗證 (2FA)，請使用符合下列要求的金鑰。

您可建立新的金錀對，或使用符合下列要求的現有金鑰。
+ 金鑰類型：非對稱金錀
+ 金鑰用途：簽署和驗證
+ 金鑰規格：RSA\$12048
+ 簽署演算法包括：
  + `sha256WithRSAEncryption`

**注意**  
如果您正在使用規定人數驗證或計劃使用法定驗證，請參閱 [使用 AWS CloudHSM Management Utility 的 AWS CloudHSM 叢集中的配額身分驗證和 2FA](quorum-2fa.md)。

# 為 AWS CloudHSM Management Utility 使用者建立已啟用 2FA 的使用者
<a name="create-2fa"></a>

使用 AWS CloudHSM Management Utility CMU (CMU) 和金鑰對來建立新的加密辦公室 (CO) 使用者，並啟用雙重驗證 (2FA)。

**如建立已啟用 2FA 的 CO 使用者**

1. 如在一個終端中，請執行下列步驟：

   1. 訪問您的 HSM 並登入 CloudHSM 管理公用程式：

      ```
      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
      ```

   1. 以 CO 身分登入，並使用下列命令建立含有 2FA 的新使用者 MFA：

      ```
      aws-cloudhsm > createUser CO MFA <CO USER PASSWORD> -2fa /home/ec2-user/authdata
      *************************CAUTION********************************
      This is a CRITICAL operation, should be done on all nodes in the
      cluster. AWS does NOT synchronize these changes automatically with the 
      nodes on which this operation is not executed or failed, please 
      ensure this operation is executed on all nodes in the cluster.  
      ****************************************************************
      
      Do you want to continue(y/n)? y
      
      Creating User exampleuser3(CO) on 1 nodesAuthentication data written to: "/home/ec2-user/authdata"Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. 
      To generate the signatures, use the RSA private key, which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide 
      the file path below.Leave this field blank to use the path initially provided.Enter filename:
      ```

   1. 將上述終端保留在此狀態。請勿按回車鍵或輸入任何檔案名稱。

1. 如在其他終端中，請執行下列步驟：

   1. 訪問您的 HSM 並登入 CloudHSM 管理公用程式：

      ```
      /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
      ```

   1. 使用下列指令產生公有/私有金鑰對：

      ```
      openssl genpkey -algorithm RSA -out private_key.pem -pkeyopt rsa_keygen_bits:2048
      ```

      ```
      openssl rsa -pubout -in private_key.pem -out public_key.pem
      ```

   1. 執行下列命令以安裝 Json 查詢功能，以便從 AuthData 檔案中擷取摘要：

      ```
      sudo yum install jq
      ```

   1. 如要擷取摘要值，請先在 AuthData 檔案中尋找下列資料：

      ```
      {
        "Version":"1.0",
        "PublicKey":"",
        "Data":[
          {
            "HsmId": <"HSM ID">,
            "Digest": <"DIGEST">,
            "Signature": ""
          }
        ]
      }
      ```
**注意**  
已獲得的摘要是 base64 編碼的，但如要簽署該摘要，您需要先解碼該文件，然後簽署該文件。以下命令將解碼摘要並將解碼的內容存儲在「digest1.bin」中。  

      ```
      cat authdata | jq '.Data[0].Digest' | cut -c2- | rev | cut -c2- | rev | base64 -d > digest1.bin
      ```

   1. 如要轉換公用金錀的內容，請添加「\$1n」並刪除空格，如下所示：

      ```
      -----BEGIN PUBLIC KEY-----\n<PUBLIC KEY>\n-----END PUBLIC KEY----- 
      ```
**重要**  
以上命令顯示如何在 **BEGIN PUBLIC KEY-----** 後立即添加「\$1n」，如何刪除「\$1n」和公用金錀第一個字元之間的空格，如何在 **-----END PUBLIC KEY** 之前添加「\$1n」，以及如何刪除「\$1n」和公用金錀結尾的空格。

      這是在 AuthData 文件中已接受的公用金錀的 PEM 格式。

   1. 將公有金錀 PEM 格式的內容粘貼到 AuthData 文件的公用金錀部分。

      ```
      vi authdata
      ```

      ```
      {
        "Version":"1.0",
        "PublicKey":"-----BEGIN PUBLIC KEY-----\n<"PUBLIC KEY">\n-----END PUBLIC KEY-----",
        "Data":[    
          {      
            "HsmId":<"HSM ID">,
            "Digest":<"DIGEST">,      
            "Signature": ""   
          }  
        ]
      }
      ```

   1. 請使用下列指命簽署權杖：

      ```
      openssl pkeyutl -sign -in digest1.bin -inkey private_key.pem -pkeyopt digest:sha256 | base64
      Output Expected:
      <"THE SIGNATURE">
      ```
**注意**  
如以上命令所示，請改用 **openssl pkeyutl** 而不是 **openssl dgst** 來簽署。

   1. 在「簽名」欄位的 AuthData File 中新增已簽署的摘要。

      ```
      vi authdata
      ```

      ```
      {
          "Version": "1.0",
          "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----",
          "Data": [
              {
                  "HsmId": <"HSM ID">,
                  "Digest": <"DIGEST">,
                  "Signature": <"Kkdl ... rkrvJ6Q==">
              },
              {
                  "HsmId": <"HSM ID">,
                  "Digest": <"DIGEST">,
                  "Signature": <"K1hxy ... Q261Q==">
              }
          ]
      }
      ```

1. 返回到第一個終端，然後按 **Enter**：

   ```
   Generate Base64-encoded signatures for SHA256 digests in the authentication datafile. To generate the signatures, use the RSA private key, 
   which is the second factor ofauthentication for this user. Paste the signatures and the corresponding public keyinto the authentication data file and provide the file path below. Leave this field blank to use the path initially provided. 
   Enter filename: >>>>> Press Enter here
   
   createUser success on server 0(10.0.1.11)
   ```

# 使用 Management Utility 管理 HSM 使用者的 AWS CloudHSM 2FA
<a name="rotate-2fa"></a>

在 AWS CloudHSM Management Utility (CMU) **changePswd**中使用 來修改使用者的雙重驗證 (2FA)。每次啟用 2FA 時，您都必須提供 2FA 登入的公用金鑰。

**changePswd** 會執行下列任一案例：
+ 變更 2FA 使用者的密碼
+ 變更 2FA 使用者的密碼
+ 為非 2FA 使用者新增 2FA
+ 移除 2FA 使用者的 2FA
+ 輪換 2FA 使用者的金鑰

您也可以合併任務。例如，您可以移除使用者的 2FA 並同時變更密碼，或輪換 2FA 金鑰並變更使用者密碼。

**如要為已啟用 2FA 的 CO 使用者變更密碼或輪換金鑰**

1. 使用 CMU 以已啟用 2FA 的 CO 身分登入 HSM。

1.  用 **changePswd** 變更密碼或向已啟用 2FA 的 CO 使用者輪換金鑰。使用 `-2fa` 參數並在檔案系統中指定一個位置，以便系統寫入 `authdata` 檔案。此檔案包含叢集中每個 HSM 的摘要。

   ```
   aws-cloudhsm > changePswd CO example-user <new-password> -2fa /path/to/authdata
   ```

   CMU 會提示您使用私有金鑰簽署 `authdata` 檔案中的摘要，並傳回含有公有金鑰的簽章。

1. 使用私有金鑰簽署 `authdata` 檔案中的摘要、將簽章和公有金鑰新增至 JSON 格式的 `authdata` 檔案，然後將 `authdata` 檔案位置提供給 CMU。如需詳細資訊，請參閱[使用 AWS CloudHSM Management Utility 的 2FA 組態參考](reference-2fa.md)。
**注意**  
叢集使用同一金鑰進行規定人數驗證和雙重要素驗證 (2FA)。如果您正在使用規定人數驗證或計劃使用法定驗證，請參閱 [使用 AWS CloudHSM Management Utility 的 AWS CloudHSM 叢集中的配額身分驗證和 2FA](quorum-2fa.md)。

# 使用 AWS CloudHSM Management Utility 停用 HSM 使用者的 2FA
<a name="disable-2fa"></a>

使用 AWS CloudHSM Management Utility (CMU) 來停用硬體安全模組 HSM 使用者的雙重驗證 (2FA) AWS CloudHSM。

**如要為已啟用 2FA 的 CO 使用者停用 2FA**

1. 使用 CMU 以已啟用 2FA 的 CO 身分登入 HSM。

1.  使用 **changePswd** 從已啟用 2FA 的 CO 使用者中移除 2FA。

   ```
   aws-cloudhsm > changePswd CO example-user <new password>
   ```

   CMU 會提示您確認變更密碼操作。
**注意**  
如果您要為兼具規定人數驗證使用者身分的 2FA 使用者移除 2FA 要求或變更其密碼，您也會同時移除規定人數使用者作為 MofN 使用者的註冊。如需規定人數使用者和 2FA 的詳細資訊，請參閱 [使用 AWS CloudHSM Management Utility 的 AWS CloudHSM 叢集中的配額身分驗證和 2FA](quorum-2fa.md)。

1. 輸入 **y**。

   CMU 會確認變更密碼操作。

# 使用 AWS CloudHSM Management Utility 的 2FA 組態參考
<a name="reference-2fa"></a>

以下是針對 AWS CloudHSM Management Utility (CMU) 產生的請求和您的回應， `authdata` 檔案中的雙重驗證 (2FA) 屬性範例。

```
{
    "Version": "1.0",
    "PublicKey": "-----BEGIN PUBLIC KEY----- ... -----END PUBLIC KEY-----",
    "Data": [
        {
            "HsmId": "hsm-lgavqitns2a",
            "Digest": "k5O1p3f6foQRVQH7S8Rrjcau6h3TYqsSdr16A54+qG8=",
            "Signature": "Kkdl ... rkrvJ6Q=="
        },
        {
            "HsmId": "hsm-lgavqitns2a",
            "Digest": "IyBcx4I5Vyx1jztwvXinCBQd9lDx8oQe7iRrWjBAi1w=",
            "Signature": "K1hxy ... Q261Q=="
        }
    ]
}
```

**資料**  
頂層節點。包含叢集中每個 HSM 的次級節點。出現在所有 2FA 命令的請求和回應中。

**摘要**  
這是您必須簽署後才能提供驗證的第二個要素。在所有 2FA 命令請求中產生 CMU。

**HsmId**  
您 HSM 的識別碼。出現在所有 2FA 命令的請求和回應中。

**PublicKey**  
您所產生金鑰對的公開金錀部分會作為 PEM 格式字串插入。您要在 **createUser** 和 **changePswd** 的回應中輸入此內容。

**Signature**  
Base 64 編碼的已簽署摘要。您要在所有 2FA 回應中輸入此內容。

**版本**  
驗證資料的格式為 JSON 格式檔案。出現在所有 2FA 命令的請求和回應中。

# 使用 CloudHSM 管理公用程式 (CMU) 管理規定人數身分驗證 (M/N 個存取控制)
<a name="quorum-authentication"></a>

 AWS CloudHSM 叢集中的 HSMs 支援規定人數身分驗證，也稱為 M of N 存取控制。有了規定人數身分驗證，HSM 上沒有任何單一使用者可以在 HSM 上執行由規定人數控制的操作。相對地，必須有最低數量的 HSM 使用者 (至少 2 個) 合作來執行這些操作。有了規定人數身分驗證，您可以透過要求來自一個以上 HSM 使用者的核准來新增一層額外的保護。

規定人數身分驗證可以控制以下操作：
+ 由[加密管理員 (CO)](understanding-users-cmu.md#crypto-officer) 管理的 HSM 使用者：會建立和刪除 HSM 使用者，以及變更不同 HSM 使用者的密碼。如需詳細資訊，請參閱[針對 Management Utility 啟用規定人數身分驗證的使用者 AWS CloudHSM 管理](quorum-authentication-crypto-officers.md)。

請注意關於在 AWS CloudHSM中使用規定人數身分驗證的下列額外資訊。
+ HSM 使用者可以簽署自己的規定人數權杖，即：要求的使用者可以針對規定人數身分驗證提供其中一個需要的核准。
+ 您可以針對由規定人數控制的操作選擇最低數量的規定人數核准者。您可以選擇的最小數字是二 (2)，您可以選擇的最大數字是八 (8)。
+ HSM 最多可存放最多 1024 個規定人數字符。當您嘗試建立新的字符時，如果 HSM 已經有 1024 個字符，HSM 會清除其中一個過期的字符。在預設情況下，字符會在建立後的十分鐘後過期。
+ 叢集使用相同的金鑰進行規定人數身分驗證和雙重要素驗證 (2FA)。如需關於使用規定人數身分驗證和 2FA 的詳細資訊，請參閱[規定人數身分驗證和 2FA](quorum-2fa.md)。

下列主題提供 AWS CloudHSM中的規定人數身分驗證的詳細資訊。

**Topics**
+ [配額身分驗證程序](quorum-authentication-overview.md)
+ [首次設定](quorum-authentication-crypto-officers-first-time-setup.md)
+ [使用規定人數進行使用者管理 (M 為 N)](quorum-authentication-crypto-officers.md)
+ [變更最小值](quorum-authentication-crypto-officers-change-minimum-value.md)

# AWS CloudHSM Management Utility 的配額身分驗證程序
<a name="quorum-authentication-overview"></a>

下列步驟彙總規定人數身分驗證程序。如需特定步驟和工具，請參閱 [針對 Management Utility 啟用規定人數身分驗證的使用者 AWS CloudHSM 管理](quorum-authentication-crypto-officers.md)。

1. 每個 HSM 使用者會建立非對稱金鑰供簽署使用。使用者會在 HSM 外部執行此動作，以適當方式保護金鑰。

1. 每個 HSM 使用者會登入 HSM，並向 HSM 註冊使用者的簽署金鑰 (公有金錀) 的公有部分。

1. HSM 使用者想要執行由規定人數控制的操作時，每個使用者會登入 HSM，並取得*規定人數權杖*。

1. HSM 使用者會將規定人數字符提供給一或多個其他 HSM 使用者，並要求其核准。

1. 其他 HSM 使用者透過使用自己的金鑰以密碼編譯方式簽署規定人數字符來進行核准。這是在 HSM 外部進行。

1. 當 HSM 使用者擁有需要的核准數量時，相同的使用者會登入 HSM，並向 HSM 提供規定人數權杖和核准 (簽章)。

1. HSM 會使用每個簽署者註冊的公有金鑰來驗證簽章。如果簽章有效，HSM 會核准字符。

1. HSM 使用者現在可以執行由規定人數控制的操作。

# 為 AWS CloudHSM 加密主管設定規定人數身分驗證
<a name="quorum-authentication-crypto-officers-first-time-setup"></a>

下列主題說明設定硬體安全模組 (HSM) 時必須完成的步驟，以便 AWS CloudHSM [加密主管 (COs)](understanding-users-cmu.md#crypto-officer) 可以使用規定人數身分驗證。第一次針對 CO 設定規定人數身分驗證時，您只需要執行一次下列步驟。完成這些步驟之後，請參閱 [針對 Management Utility 啟用規定人數身分驗證的使用者 AWS CloudHSM 管理](quorum-authentication-crypto-officers.md)。

**Topics**
+ [先決條件](#quorum-crypto-officers-prerequisites)
+ [步驟 1. 建立和註冊用於簽署的金鑰](#quorum-crypto-officers-create-and-register-key)
+ [步驟 2. 設定 HSM 上的規定人數最小值](#quorum-crypto-officers-set-quorum-minimum-value)

## 先決條件
<a name="quorum-crypto-officers-prerequisites"></a>

若要了解此範例，您應熟悉 [cloudhsm\$1mgmt\$1util (CMU) 命令列工具](cloudhsm_mgmt_util.md)。在此範例中， AWS CloudHSM 叢集有兩個 HSMs，每個都有相同的 COs，如 **listUsers**命令的下列輸出所示。如需有關建立使用者的詳細資訊，請參閱[HSM 使用者](manage-hsm-users.md)。

```
aws-cloudhsm > listUsers
Users on server 0(10.0.2.14):
Number of users found:7

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                 NO               0               NO
         4              CO              officer2                                 NO               0               NO
         5              CO              officer3                                 NO               0               NO
         6              CO              officer4                                 NO               0               NO
         7              CO              officer5                                 NO               0               NO
Users on server 1(10.0.1.4):
Number of users found:7

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                 NO               0               NO
         4              CO              officer2                                 NO               0               NO
         5              CO              officer3                                 NO               0               NO
         6              CO              officer4                                 NO               0               NO
         7              CO              officer5                                 NO               0               NO
```

## 步驟 1. 建立和註冊用於簽署的金鑰
<a name="quorum-crypto-officers-create-and-register-key"></a>

若要使用規定人數身分驗證，每個管理員都必須執行下列*所有*步驟：

**Topics**
+ [建立 RSA 金鑰對](#mofn-key-pair-create)
+ [建立並簽署註冊權杖](#mofn-registration-token)
+ [用 HSM 註冊公有金鑰](#mofn-register-key)

### 建立 RSA 金鑰對
<a name="mofn-key-pair-create"></a>

建立和保護金鑰對有許多不同的方式。下列範例示範使用 [OpenSSL](https://www.openssl.org/) 的做法。

**Example – 使用 OpenSSL 建立私有金鑰**  
以下範例示範如何使用 OpenSSL 來建立受到密碼短語保護的 2048 位元 RSA 金鑰。若要使用這個範例，請將 *officer1.key* 以您要存放金鑰的檔案名稱來加以取代。  

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

接下來，使用您剛建立的私有金鑰來產生公有金鑰。

**Example – 使用 OpenSSL 建立一個公有金鑰**  
下列範例會示範如何使用 OpenSSL 根據您剛建立的私有金鑰建立公有金鑰。  

```
$ openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub
Enter pass phrase for officer1.key:
writing RSA key
```

### 建立並簽署註冊權杖
<a name="mofn-registration-token"></a>

 您可以建立一個權杖並使用在上一步中剛產生的私有金鑰簽署該權杖。

**Example – 建立權杖**  
註冊權杖只是一個最大不超過 245 位元組的任何隨機資料的檔案。您可以使用私有金鑰簽署權杖，以證明您可以訪問私有金鑰。下列命令使用 echo 將字串重新導向到一個檔案。  

```
$ echo <token to be signed> > officer1.token
```

簽署權杖並將其儲存至簽章檔案。您需要已簽署的權杖、未簽署的權杖和公有金鑰，才能在 HSM 中將 CO 註冊為 MofN 使用者。

**Example – 簽署權杖**  
使用 OpenSSL 和私有金鑰來簽署註冊權杖並建立簽章檔案。  

```
$ openssl dgst -sha256 \
    -sign officer1.key \
    -out officer1.token.sig officer1.token
```

### 用 HSM 註冊公有金鑰
<a name="mofn-register-key"></a>

建立金鑰之後，CO 必須向 HSM 註冊金鑰的公有部分 (公有金鑰)。

**向 HSM 註冊公有金鑰**

1. 使用下列命令來啟動 cloudhsm\$1mgmt\$1util 命令列工具。

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 使用 **loginHSM** 命令以 CO 身分登入 HSM。如需詳細資訊，請參閱 [使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理](manage-hsm-users-cmu.md)。

1. 使用 **[registerQuorumPubKey](cloudhsm_mgmt_util-registerQuorumPubKey.md)** 命令來註冊公有金鑰。如需詳細資訊，請參閱下列範例或使用 **help registerQuorumPubKey** 命令。

**Example – 向 HSM 註冊公有金鑰**  
下列範例顯示如何在 cloudhsm\$1mgmt\$1util 命令列工具中使用 **registerQuorumPubKey** 命令，以向 HSM 註冊 CO 的公有金鑰。若要使用此命令，CO 必須登入 HSM。以您自己的值取代這些值：  

```
aws-cloudhsm > registerQuorumPubKey CO <officer1> <officer1.token> <officer1.token.sig> <officer1.pub>
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
registerQuorumPubKey success on server 0(10.0.2.14)
```  
**<officer1.token>**  
包含未簽署註冊權杖的檔案路徑。可包含最大 245 個位元組的任何隨機資料。  
必要：是  
**<officer1.token.sig>**  
包含註冊權杖的 SHA256\$1PKCS 機制簽名雜湊的檔案路徑。  
必要：是  
**<officer1.pub>**  
包含非對稱 RSA-2048 金鑰對的公有金鑰的檔案路徑。使用私有金鑰簽署註冊權杖。  
必要：是
在所有 CO 註冊其公有金鑰之後，來自 **listUsers** 命令的輸出會在 `MofnPubKey` 欄中顯示此資訊，如下列範例所示。  

```
aws-cloudhsm > listUsers
Users on server 0(10.0.2.14):
Number of users found:7

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
Users on server 1(10.0.1.4):
Number of users found:7

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PRECO           admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
```

## 步驟 2. 設定 HSM 上的規定人數最小值
<a name="quorum-crypto-officers-set-quorum-minimum-value"></a>

若要對 CO 使用規定人數身分驗證，CO 必須登入 HSM，然後設定*規定人數最小值*，也稱為 *m 值*。這是執行 HSM 使用者管理操作所需的 CO 核准數下限。HSM 上的任何 CO (包括尚未註冊用於簽署的金鑰的 CO) 可以設定規定人數最小值。您隨時可以變更規定人數最小值。如需更多資訊，請參閱 [變更最小值](quorum-authentication-crypto-officers-change-minimum-value.md)。

**設定 HSM 上的規定人數最小值**

1. 使用下列命令來啟動 cloudhsm\$1mgmt\$1util 命令列工具。

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 使用 **loginHSM** 命令以 CO 身分登入 HSM。如需詳細資訊，請參閱[使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理](manage-hsm-users-cmu.md)。

1. 使用 **setMValue** 命令來設定規定人數最小值。如需詳細資訊，請參閱下列範例或使用 **help setMValue** 命令。

**Example – 設定 HSM 上的規定人數最小值**  
此範例使用值為 2 的規定人數最小值。您可以選擇二 (2) 到八 (8) 之間的任何值，最多可到 HSM 上的 CO 總數。在這個範例中，HSM 有 6 個 CO，因此最大的可能值為 6。  
若要使用以下範例命令，請將最終數字 (* 2 *) 以您偏好的規定人數最小值加以取代。  

```
aws-cloudhsm > setMValue 3 <2>
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Setting M Value(2) for 3 on 2 nodes
```

在上述範例中，第一個數字 (3) 表示您要設定之規定人數最小值的 *HSM 服務*。

HSM 服務識別符及其名稱、說明和服務中包含的命令如下表所列。


| 服務識別符 | 服務名稱 | 服務描述 | HSM 命令 | 
| --- | --- | --- | --- | 
| 3 | USER\$1MGMT | HSM 使用者管理 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-authentication-crypto-officers-first-time-setup.html)  | 
| 4 | MISC\$1CO | 其他 CO 服務 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-authentication-crypto-officers-first-time-setup.html)  | 

若要取得服務的規定人數最小值，請使用 **getMValue** 命令，如下列範例所示。

```
aws-cloudhsm > getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2]
MValue of service 3[USER_MGMT] on server 1 : [2]
```

來自上述 **getMValue** 命令的輸出顯示 HSM 使用者管理操作 (服務 3) 的規定人數最小值現在是 2。

完成這些步驟之後，請參閱 [針對 Management Utility 啟用規定人數身分驗證的使用者 AWS CloudHSM 管理](quorum-authentication-crypto-officers.md)。

# 針對 Management Utility 啟用規定人數身分驗證的使用者 AWS CloudHSM 管理
<a name="quorum-authentication-crypto-officers"></a>

硬體安全模組 AWS CloudHSM [(HSM) 上的 Ancrypto officer (CO](understanding-users-cmu.md#crypto-officer)) 可以為 HSM 上的下列操作設定規定人數身分驗證：
+ 建立 HSM 使用者
+ 刪除 HSM 使用者
+ 變更另一個 HSM 使用者的密碼

在將 HSM 設定為使用規定人數身分驗證之後，CO 無法自行執行 HSM 使用者管理操作。以下範例示範當 CO 嘗試在 HSM 上建立新使用者時的輸出。命令失敗，出現 `RET_MXN_AUTH_FAILED` 錯誤，這表示規定人數身分驗證失敗。

```
aws-cloudhsm > createUser CU user1 password
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Creating User user1(CU) on 2 nodes
createUser failed: RET_MXN_AUTH_FAILED
creating user on server 0(10.0.2.14) failed

Retry/Ignore/Abort?(R/I/A): A
```

若要執行 HSM 使用者管理操作，CO 必須完成下列工作：

1. [取得*規定人數字符*](#quorum-crypto-officers-get-token)。

1. [取得其他 CO 的核准 (簽章)](#quorum-crypto-officers-get-approval-signatures)。

1. [在 HSM 上核准字符](#quorum-crypto-officers-approve-token)。

1. [執行 HSM 使用者管理操作](#quorum-crypto-officers-use-token)。

如果您尚未將 HSM 設定為使用 CO 的規定人數身分驗證，請立即設定。如需詳細資訊，請參閱[首次設定](quorum-authentication-crypto-officers-first-time-setup.md)。

## 步驟 1. 取得規定人數字符
<a name="quorum-crypto-officers-get-token"></a>

首先，CO 必須使用 cloudhsm\$1mgmt\$1util 命令列工具，以請求*規定人數權杖*。

**取得規定人數權杖**

1. 使用下列命令來啟動 cloudhsm\$1mgmt\$1util 命令列工具。

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 使用 **loginHSM** 命令以 CO 身分登入 HSM。如需詳細資訊，請參閱[使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理](manage-hsm-users-cmu.md)。

1. 使用 **getToken** 命令來取得規定人數權杖。如需詳細資訊，請參閱下列範例或使用 **help getToken** 命令。

**Example – 取得規定人數字符**  
此範例會取得使用者名稱 officer1 之 CO 的規定人數字符，並將字符儲存至名為 `officer1.token` 的檔案。若要使用範例命令，請將這些值取代為您自己的值：  
+ *officer1*：取得權杖的 CO 名稱。此使用者必須是登入到 HSM 的相同 CO 並正在執行此命令。
+ *officer1.token*：用於存放規定人數權杖的檔案名稱。
在以下命令中，`3` 會識別您可以對其使用要取得字符的*服務*。在此情況下，此字符可用於 HSM 使用者管理操作 (服務 3)。如需詳細資訊，請參閱[步驟 2. 設定 HSM 上的規定人數最小值](quorum-authentication-crypto-officers-first-time-setup.md#quorum-crypto-officers-set-quorum-minimum-value)。  

```
aws-cloudhsm > getToken 3 officer1 officer1.token
getToken success on server 0(10.0.2.14)
Token:
Id:1
Service:3
Node:1
Key Handle:0
User:officer1
getToken success on server 1(10.0.1.4)
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
```

## 步驟 2. 取得核准 CO 的簽章
<a name="quorum-crypto-officers-get-approval-signatures"></a>

具有規定人數字符的 CO 必須取得其他 CO 核准的字符。為了提供核准，其他 CO 會使用其簽署金鑰來以密碼編譯形式簽署字符。他們會在 HSM 外部執行此操作。

簽署權杖的方式有很多。下列範例示範使用 [OpenSSL](https://www.openssl.org/) 的做法。若要使用不同的簽署工具，請確定工具使用 CO 的私有金鑰 (簽署金鑰) 來簽署字符的 SHA-256 摘要。

**Example – 取得核准 CO 的簽章**  
在這個範例中，具有字符 (officer1) 的 CO 需要至少兩個核准。以下範例命令示範兩個 CO 如何使用 OpenSSL 來以密碼編譯方式簽署字符。  
在第一個命令中，officer1 會簽署自己的字符。若要使用下列範例命令，請將這些值取代為您自己的值：  
+ *officer1.key* 和 *officer2.key*：包含 CO 簽署金鑰的檔案名稱。
+ *officer1.token.sig1* 和 *officer1.token.sig2*：用於存放簽章的檔案名稱。務必將每個簽章儲存在不同的檔案中。
+ *officer1.token*：包含 CO 要簽署的權杖的檔案名稱。

```
$ openssl dgst -sha256 -sign officer1.key -out officer1.token.sig1 officer1.token
Enter pass phrase for officer1.key:
```
在以下命令中，officer2 會簽署相同的字符。  

```
$ openssl dgst -sha256 -sign officer2.key -out officer1.token.sig2 officer1.token
Enter pass phrase for officer2.key:
```

## 步驟 3。在 HSM 上核准簽署的權杖
<a name="quorum-crypto-officers-approve-token"></a>

CO 在向其他 CO 取得最低數量的核准 (簽章) 後，必須在 HSM 上核准簽署的字符。

**在 HSM 上核准簽署的字符**

1. 建立字符核准檔案。如需詳細資訊，請參閱下列範例。

1. 使用下列命令來啟動 cloudhsm\$1mgmt\$1util 命令列工具。

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 使用 **loginHSM** 命令以 CO 身分登入 HSM。如需詳細資訊，請參閱[使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理](manage-hsm-users-cmu.md)。

1. 使用 **approveToken** 命令來核准已簽署的字符，以便傳遞字符核准檔案。如需詳細資訊，請參閱下列範例。

**Example – 在 HSM 上建立權杖核准檔案和核准簽署的權杖**  
字符核准檔案是一個文字檔案，採用 HSM 要求的特定格式。該檔案包含有關該字符、其核准者和核准者簽章的資訊。以下範例示範的是範例字符核准檔案。  

```
# For "Multi Token File Path", type the path to the file that contains
# the token. You can type the same value for "Token File Path", but
# that's not required. The "Token File Path" line is required in any
# case, regardless of whether you type a value.
Multi Token File Path = officer1.token;
Token File Path = ;

# Total number of approvals
Number of Approvals = 2;

# Approver 1
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer1;
Approval File = officer1.token.sig1;

# Approver 2
# Type the approver's type, name, and the path to the file that
# contains the approver's signature.
Approver Type = 2; # 2 for CO, 1 for CU
Approver Name = officer2;
Approval File = officer1.token.sig2;
```
建立字符核准檔案之後，CO 會使用 cloudhsm\$1mgmt\$1util 命令列工具來登入 HSM。接著 CO 會使用 **approveToken** 命令來核准字符，如下列範例所示。將 *approval.txt* 取代為字符核准檔案的名稱。  

```
aws-cloudhsm > approveToken approval.txt
approveToken success on server 0(10.0.2.14)
approveToken success on server 1(10.0.1.4)
```
此命令成功時，HSM 即已核准規定人數字符。若要檢查字符的狀態，請使用 **listTokens** 命令，如下列範例所示。命令的輸出顯示字符擁有所需的核准數。  
字符有效時間指出字符會維持在 HSM 上的保證時間。即使已超過字符有效時間 (零秒)，您仍可以繼續使用該字符。  

```
aws-cloudhsm > listTokens
=====================
    Server 0(10.0.2.14)
=====================
-------- Token - 0 ----------
Token:
Id:1
Service:3
Node:1
Key Handle:0
User:officer1
Token Validity: 506 sec
Required num of approvers : 2
Current num of approvals : 2
Approver-0: officer1
Approver-1: officer2
Num of tokens = 1

=====================
    Server 1(10.0.1.4)
=====================
-------- Token - 0 ----------
Token:
Id:1
Service:3
Node:0
Key Handle:0
User:officer1
Token Validity: 506 sec
Required num of approvers : 2
Current num of approvals : 2
Approver-0: officer1
Approver-1: officer2
Num of tokens = 1

listTokens success
```

## 步驟 4. 針對使用者管理操作使用權杖
<a name="quorum-crypto-officers-use-token"></a>

在 CO 具有所需核准數的字符之後，如先前區段中所示，CO 可以執行以下其中一個 HSM 使用者管理操作：
+ 使用 [createUser](cloudhsm_mgmt_util-createUser.md) 命令建立 HSM 使用者
+ 使用 **deleteUser** 命令來刪除 HSM 使用者
+ 使用 **changePswd** 命令來變更不同 HSM 使用者的密碼

如需使用這些命令的詳細資訊，請參閱[HSM 使用者](manage-hsm-users.md)。

CO 僅可以使用該字符來進行一個操作。當該操作成功，該字符即不再有效。為了執行其他 HSM 使用者管理操作，CO 必須取得新的規定人數字符、向核准者取得新簽章，並在 HSM 上核准該新字符。

**注意**  
MofN 權杖僅在您目前的登入工作階段開啟時才有效。如果您登出 cloudhsm\$1mgmt\$1util 或網路連線中斷連線，則該權杖會失效。同樣地，授權的權杖只能在 cloudhsm\$1mgmt\$1util 中使用，而不能用於其他應用程式中進行身分驗證。

在下列範例命令中，CO 會在 HSM 上建立新使用者。

```
aws-cloudhsm > createUser CU user1 <password>
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Creating User user1(CU) on 2 nodes
```

先前命令成功之後，後續的 **listUsers** 命令會顯示新使用者。

```
aws-cloudhsm > listUsers
Users on server 0(10.0.2.14):
Number of users found:8

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
         8              CU              user1                                    NO               0               NO
Users on server 1(10.0.1.4):
Number of users found:8

    User Id             User Type       User Name                          MofnPubKey    LoginFailureCnt         2FA
         1              PCO             admin                                    NO               0               NO
         2              AU              app_user                                 NO               0               NO
         3              CO              officer1                                YES               0               NO
         4              CO              officer2                                YES               0               NO
         5              CO              officer3                                YES               0               NO
         6              CO              officer4                                YES               0               NO
         7              CO              officer5                                YES               0               NO
         8              CU              user1                                    NO               0               NO
```

如果 CO 嘗試執行其他 HSM 使用者管理操作，會因為規定人數身分驗證錯誤而失敗，如以下範例所示。

```
aws-cloudhsm > deleteUser CU user1
Deleting user user1(CU) on 2 nodes
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 0(10.0.2.14)

Retry/rollBack/Ignore?(R/B/I): I
deleteUser failed: RET_MXN_AUTH_FAILED
deleteUser failed on server 1(10.0.1.4)

Retry/rollBack/Ignore?(R/B/I): I
```

**listTokens** 命令顯示 CO 沒有已核准的憑證，如下列範例所示。為了執行其他 HSM 使用者管理操作，CO 必須取得新的規定人數字符、向核准者取得新的簽章，並在 HSM 上核准該新字符。

```
aws-cloudhsm > listTokens
=====================
    Server 0(10.0.2.14)
=====================
Num of tokens = 0

=====================
    Server 1(10.0.1.4)
=====================
Num of tokens = 0

listTokens success
```

# 使用 AWS CloudHSM Management Utility 變更規定人數最小值
<a name="quorum-authentication-crypto-officers-change-minimum-value"></a>

[設定規定人數最小值](quorum-authentication-crypto-officers-first-time-setup.md#quorum-crypto-officers-set-quorum-minimum-value)之後，讓 AWS CloudHSM [加密主管 (COs)](understanding-users-cmu.md#crypto-officer) 可以使用規定人數身分驗證，您可能會想要變更規定人數最小值。只有當核准者數目等於或大於目前規定人數最小值時，HSM 才允許您變更規定人數最小值。例如，如果規定人數最小值是 2，則至少兩個 CO 必須核准，才能變更規定人數最小值。

若要取得規定人數核准來變更規定人數最小值，您需要*規定人數字符*來用於 **setMValue** 命令 (服務 4)。若要取得 **setMValue** 命令的規定人數字符 (服務 4)，服務 4 的規定人數最小值必須大於 1。這表示您可能需要變更服務 4 的規定人數最小值，才能變更 CO 的規定人數最小值 (服務 3)。

HSM 服務識別符及其名稱、說明和服務中包含的命令如下表所列。


| 服務識別符 | 服務名稱 | 服務描述 | HSM 命令 | 
| --- | --- | --- | --- | 
| 3 | USER\$1MGMT | HSM 使用者管理 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-authentication-crypto-officers-change-minimum-value.html)  | 
| 4 | MISC\$1CO | 其他 CO 服務 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-authentication-crypto-officers-change-minimum-value.html)  | 

**變更加密主管的規定人數最小值**

1. 使用下列命令來啟動 cloudhsm\$1mgmt\$1util 命令列工具。

   ```
   $ /opt/cloudhsm/bin/cloudhsm_mgmt_util /opt/cloudhsm/etc/cloudhsm_mgmt_util.cfg
   ```

1. 使用 **loginHSM** 命令以 CO 身分登入 HSM。如需詳細資訊，請參閱 [使用 CloudHSM 管理公用程式 (CMU) 進行 HSM 使用者管理](manage-hsm-users-cmu.md)。

1. 使用 **getMValue** 命令取得服務 3 的規定人數最小值。如需詳細資訊，請參閱下列範例。

1. 使用 **getMValue** 命令取得服務 4 的規定人數最小值。如需詳細資訊，請參閱下列範例。

1. 如果服務 4 的規定人數最小值低於服務 3 的值，請使用 **setMValue** 命令來變更服務 4 的值。將服務 4 的值變更為等於或大於服務 3 的值。如需詳細資訊，請參閱下列範例。

1. [取得*規定人數權杖*](quorum-authentication-crypto-officers.md#quorum-crypto-officers-get-token)，且應該指定服務 4 做為您可將字符用於其中的服務。

1. [取得其他 CO 的核准 (簽章)](quorum-authentication-crypto-officers.md#quorum-crypto-officers-get-approval-signatures)。

1. [在 HSM 上核准字符](quorum-authentication-crypto-officers.md#quorum-crypto-officers-approve-token)。

1. 使用 **setMValue** 命令來變更服務 3 (由 CO 執行的使用者管理操作) 的規定人數最小值。

**Example – 取得規定人數最小值並變更服務 4 的值**  
以下範例命令顯示服務 3 的規定人數最小值目前是 2。  

```
aws-cloudhsm > getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2]
MValue of service 3[USER_MGMT] on server 1 : [2]
```
以下範例命令顯示服務 4 的規定人數最小值目前是 1。  

```
aws-cloudhsm > getMValue 4
MValue of service 4[MISC_CO] on server 0 : [1]
MValue of service 4[MISC_CO] on server 1 : [1]
```
若要變更服務 4 的規定人數最小值，請使用 **setMValue** 命令，並設定等於或大於服務 3 之值的值。以下範例將服務 4 的規定人數最小值設為 2，與為服務 3 設定的值相同。  

```
aws-cloudhsm > setMValue 4 2
*************************CAUTION********************************
This is a CRITICAL operation, should be done on all nodes in the
cluster. AWS does NOT synchronize these changes automatically with the
nodes on which this operation is not executed or failed, please
ensure this operation is executed on all nodes in the cluster.
****************************************************************

Do you want to continue(y/n)? y
Setting M Value(2) for 4 on 2 nodes
```
以下命令顯示服務 3 和服務 4 的規定人數最小值現在是 2。  

```
aws-cloudhsm > getMValue 3
MValue of service 3[USER_MGMT] on server 0 : [2]
MValue of service 3[USER_MGMT] on server 1 : [2]
```

```
aws-cloudhsm > getMValue 4
MValue of service 4[MISC_CO] on server 0 : [2]
MValue of service 4[MISC_CO] on server 1 : [2]
```