

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

# 使用 CloudHSM CLI AWS CloudHSM 為管理員設定規定人數身分驗證
<a name="quorum-auth-chsm-cli-first-time"></a>

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

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

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

若要了解此範例，您應該熟悉 [CloudHSM CLI](cloudhsm_cli.md)。

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

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

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

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

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

**Example – 使用 OpenSSL 建立私有金鑰**  
下列範例示範如何使用 OpenSSL 來建立 2048 位元 RSA 金鑰。若要使用這個範例，請將 *<admin.key>* 以您要存放金鑰的檔案名稱來加以取代。  

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

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

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

```
$ openssl rsa -in admin.key -outform PEM -pubout -out admin1.pub
writing RSA key
```

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

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

**Example – 建立一個註冊權杖**  

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-qm-token-gen.md)命令建立註冊權杖：

   ```
   aws-cloudhsm > quorum token-sign generate --service registration --token /path/tokenfile
   {
     "error_code": 0,
     "data": {
       "path": "/path/tokenfile"
     }
   }
   ```

1. [產生規定人數權杖簽署](cloudhsm_cli-qm-token-gen.md)命令在指定的檔案路徑產生註冊權杖。檢查權杖檔案：

   ```
   $ cat /path/tokenfile
   {
     "version": "2.0",
     "tokens": [
       {
         "approval_data": <approval data in base64 encoding>,
         "unsigned": <unsigned token in base64 encoding>,
         "signed": ""
       }
     ]
   }
   ```

   權杖檔案由以下項目組成：
   + **approval\$1data**：一個 base64 編碼的隨機資料權杖，其原始資料不超過 245 個位元組的最大值。
   + **unsigned**：核准資料的 base64 編碼和 SHA256 雜湊權杖。
   + **signed**：未簽署的權杖的 base64 編碼簽名權杖 (簽名)，使用先前使用 OpenSSL 產生的 RSA 2048 位元私有金鑰。

   您可以使用私有金鑰簽署未簽署的權杖，以證明您可以訪問私有金鑰。您需要完整填入簽章和公有金鑰的註冊字符檔案，才能向 AWS CloudHSM 叢集將管理員註冊為規定人數使用者。

**Example — 簽署未簽署的註冊權杖**  

1. 解碼 base64 編碼的未簽署權杖並將其放入二進位檔案中：

   ```
   $ echo -n '6BMUj6mUjjko6ZLCEdzGlWpR5sILhFJfqhW1ej3Oq1g=' | base64 -d > admin.bin
   ```

1. 使用 OpenSSL 和私有金鑰來簽署現在的二進位未簽署註冊權杖，並建立一個二進位簽署檔案：

   ```
   $ openssl pkeyutl -sign \
   -inkey admin.key \
   -pkeyopt digest:sha256 \
   -keyform PEM \
   -in admin.bin \
   -out admin.sig.bin
   ```

1. 將二進位簽章編碼為 base64：

   ```
   $ base64 -w0 admin.sig.bin > admin.sig.b64
   ```

1. 將 base64 編碼的簽名複製並粘貼到權杖檔案中：

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "approval_data": <approval data in base64 encoding>,
         "unsigned": <unsigned token in base64 encoding>,
         "signed": <signed token in base64 encoding>
       }
     ]
   }
   ```

### 用 HSM 註冊公有金鑰
<a name="mofn-register-key-chsm-cli"></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-user-chqm-token-reg.md)** 命令來註冊公有金鑰。如需詳細資訊，請參閱下列範例或使用 **help user change-quorum token-sign register** 命令。

**Example – 向 AWS CloudHSM 叢集註冊公有金鑰**  
下列範例顯示如何在 CloudHSM CLI 中使用 **user change-quorum token-sign register** 命令，以向 HSM 註冊管理員的公有金鑰。若要使用此命令，管理員必須登入 HSM。以您自己的值取代這些值：  

```
aws-cloudhsm > user change-quorum token-sign register --public-key </path/admin.pub> --signed-token </path/tokenfile>
{
  "error_code": 0,
  "data": {
    "username": "admin",
    "role": "admin"
  }
}
```
**/path/admin.pub**：公有金鑰 PEM 檔案的檔案路徑  
**必要**：是  
**/path/tokenfile**：帶有權杖由用戶私有金鑰簽名的檔案路徑  
**必要**：是
在所有管理員註冊其公有金鑰之後，**user list** 命令的輸出會在規定人數欄位中顯示此資訊，說明使用中已啟用的規定人數策略，如下所示：  

```
aws-cloudhsm > user list
{
  "error_code": 0,
  "data": {
    "users": [
      {
        "username": "admin",
        "role": "admin",
        "locked": "false",
        "mfa": [],
        "quorum": [
          {
            "strategy": "token-sign",
            "status": "enabled"
          }
        ],
        "cluster-coverage": "full"
      },
      {
        "username": "admin2",
        "role": "admin",
        "locked": "false",
        "mfa": [],
        "quorum": [
          {
            "strategy": "token-sign",
            "status": "enabled"
          }
        ],
        "cluster-coverage": "full"
      },
      {
        "username": "admin3",
        "role": "admin",
        "locked": "false",
        "mfa": [],
        "quorum": [
          {
            "strategy": "token-sign",
            "status": "enabled"
          }
        ],
        "cluster-coverage": "full"
      },
      {
        "username": "admin4",
        "role": "admin",
        "locked": "false",
        "mfa": [],
        "quorum": [
          {
            "strategy": "token-sign",
            "status": "enabled"
          }
        ],
        "cluster-coverage": "full"
      },
      {
        "username": "app_user",
        "role": "internal(APPLIANCE_USER)",
        "locked": "false",
        "mfa": [],
        "quorum": [],
        "cluster-coverage": "full"
      }
    ]
  }
}
```
 在此範例中， AWS CloudHSM 叢集有兩個 HSMs，每個 HSM 都有相同的管理員，如 **user list**命令的下列輸出所示。如需建立使用者的詳細資訊，請參閱 [使用 CloudHSM CLI 進行使用者管理](manage-hsm-users-chsm-cli.md)

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

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

**設定 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-qm-token-set-qm.md)** 命令來設定規定人數最小值。`--service` 旗標可識別您要為其設定值的 HSM 服務。如需詳細資訊，請參閱下列範例或使用 **help quorum token-sign set-quorum-value**命令。

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

```
aws-cloudhsm > quorum token-sign set-quorum-value --service user --value <2>
{
  "error_code": 0,
  "data": "Set quorum value successful"
}
```
在此範例中， **[使用 CloudHSM CLI 顯示規定人數值](cloudhsm_cli-qm-token-list-qm.md)**命令會列出包含在服務中的 HSM 服務類型、名稱和描述。

## 配額最小值
<a name="cloudhsm_cli-qm-list-minimum"></a>

使用 **quorum token-sign list-quorum-values** 命令取得服務的規定人數最小值。

```
aws-cloudhsm > quorum token-sign list-quorum-values
{
  "error_code": 0,
  "data": {
    "user": 2,
    "quorum": 1
  }
}
```

上述 **quorum token-sign list-quorum-values** 命令的輸出顯示 HSM 使用者服務 (負責使用者管理操作) 的規定人數最小值現在是 2。完成這些步驟之後，請參閱 [使用規定人數進行使用者管理 (M 為 N)](quorum-auth-chsm-cli-admin.md)。

**管理員服務**：規定人數身分驗證用於管理員特殊權限服務，例如建立使用者、刪除使用者、變更使用者密碼、設定規定人數值，以及停用規定人數和 MFA 功能。

**加密使用者服務**：配額身分驗證用於與特定金鑰相關聯的加密使用者特殊權限服務，例如使用金鑰簽署、共用/取消共用金鑰、包裝/取消包裝金鑰，以及設定金鑰的屬性。產生、匯入或取消包裝金鑰時，會設定關聯金鑰的仲裁值。規定人數值必須等於或小於與金鑰相關聯的使用者數量，其中包括與金鑰共用的使用者和金鑰擁有者。

每種服務類型都會進一步細分為合格的服務名稱，這包含一組特定的可執行法定人數支援的服務操作。


****  

| 服務名稱 | 服務類型 | 服務操作 | 
| --- | --- | --- | 
| user | 管理員 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| 規定人數 | 管理員 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| cluster1 | 管理員 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| 金鑰管理 | 加密使用者 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| key-usage | 加密使用者 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 

【1】 叢集服務僅在 hsm2m.medium 上提供