

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# CloudHSM CLI를 사용하는 HSM 사용자 관리
<a name="manage-hsm-users-chsm-cli"></a>

 에서 하드웨어 보안 모듈(HSM) 사용자를 관리하려면 [관리자의](understanding-users.md#admin) 사용자 이름과 암호를 사용하여 HSM에 로그인 AWS CloudHSM해야 합니다. 관리자만 사용자를 관리할 수 있습니다. HSM에는 admin이라는 기본 CO가 포함됩니다. [클러스터를 활성화](activate-cluster.md)할 때 admin에 대해 사용할 암호를 설정했습니다.

이 항목에서는 CloudHSM CLI를 사용하여 HSM 사용자를 관리하는 방법에 대한 단계별 지침을 제공합니다.

**Topics**
+ [사전 조건](manage-hsm-users-chsm-cli-prereq.md)
+ [사용자 유형](understanding-users.md)
+ [권한 테이블](user-permissions-table-chsm-cli.md)
+ [관리자 생성](create-admin-cloudhsm-cli.md)
+ [CU 생성](create-user-cloudhsm-cli.md)
+ [모든 사용자 나열](list-users-cloudhsm-cli.md)
+ [암호 변경](change-user-password-cloudhsm-cli.md)
+ [사용자 삭제](delete-user-cloudhsm-cli.md)
+ [사용자 MFA 관리](login-mfa-token-sign.md)
+ [쿼럼 인증 관리(N 중 M)](quorum-auth-chsm-cli.md)

# CloudHSM CLI에서의 사용자 관리에 필요한 사전 조건
<a name="manage-hsm-users-chsm-cli-prereq"></a>

CloudHSM CLI를 사용하여에서 하드웨어 보안 모듈(HSM) 사용자를 관리하려면 먼저 이러한 사전 조건을 완료해야 AWS CloudHSM합니다. 다음 주제에서는 CloudHSM CLI를 시작하는 방법을 설명합니다.

**Topics**
+ [HSM IP 주소 가져오기](#manage-chsm-cli-users-ip)
+ [CloudHSM CLI 다운로드](#get-cli-users-cloudhsm-cli)

## 에서 HSM의 IP 주소 가져오기 AWS CloudHSM
<a name="manage-chsm-cli-users-ip"></a>

 CloudHSM CLI를 사용하려면 구성 툴을 사용하여 로컬 구성을 업데이트해야 합니다. CloudHSM CLI를 사용하여 구성 툴을 실행하는 방법에 대한 지침은 [AWS CloudHSM 명령줄 인터페이스(CLI) 시작하기](cloudhsm_cli-getting-started.md) 단원을 참조하십시오. `-a` 파라미터를 사용하려면 클러스터에 HSM의 IP 주소를 추가해야 합니다. HSM이 여러 개 있는 경우 모든 IP 주소를 사용할 수 있습니다. 이렇게 하면 CloudHSM CLI가 전체 클러스터에서 변경한 내용을 전파할 수 있습니다. CloudHSM CLI는 로컬 파일을 사용하여 클러스터 정보를 추적한다는 점을 기억하십시오. 특정 호스트에서 CloudHSM CLI를 마지막으로 사용한 이후 클러스터가 변경된 경우 해당 호스트에 저장된 로컬 구성 파일에 해당 변경 사항을 추가해야 합니다. CloudHSM CLI를 사용하는 동안에는 HSM을 제거하지 마세요.

**HSM의 IP 주소를 가져오려면(콘솔)**

1. [https://console.aws.amazon.com/cloudhsm/home](https://console.aws.amazon.com/cloudhsm/home) AWS CloudHSM 콘솔을 엽니다.

1. AWS 리전을 변경하려면 페이지의 오른쪽 상단에 있는 리전 선택기를 사용합니다.

1. 클러스터 세부 정보 페이지를 열려면 클러스터 테이블에서 클러스터 ID를 선택합니다.

1. IP 주소를 가져오려면 HSM 탭으로 이동합니다. 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 주소를 가져옵니다. 명령의 출력에서 HSM의 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",
  ...
  ```

## CloudHSM CLI 다운로드
<a name="get-cli-users-cloudhsm-cli"></a>

최신 버전의 CloudHSM CLI는 Client SDK 5의 HSM 사용자 관리 작업에 사용할 수 있습니다. CloudHSM CLI를 다운로드하고 설치하려면 [ CloudHSM CLI 설치 및 구성](gs_cloudhsm_cli-install.md)의 지침을 따르십시오.

# CloudHSM CLI용 HSM 사용자 유형
<a name="understanding-users"></a>

 하드웨어 보안 모듈(HSM)에서 수행하는 대부분의 작업에는 AWS CloudHSM *HSM 사용자의* 자격 증명이 필요합니다. HSM은 각 HSM 사용자를 인증하며, 각 HSM 사용자에게는 해당 사용자로서 HSM에서 수행할 수 있는 작업을 결정하는 *유형*이 있습니다.

**참고**  
HSM 사용자는 IAM 사용자와 다릅니다. 올바른 자격 증명을 보유한 IAM 사용자는 AWS API를 통해 리소스와 상호 작용하여 HSM을 생성할 수 있습니다. HSM을 생성한 후에는 HSM 사용자 자격 증명을 사용하여 HSM에서의 작업을 인증해야 합니다.

**Topics**
+ [활성화되지 않은 관리자](#unactivated-admin)
+ [관리자](#admin)
+ [CU(Crypto User)](#crypto-user-chsm-cli)
+ [AU(Appliance User)](#appliance-user-chsm-cli)

## 활성화되지 않은 관리자
<a name="unactivated-admin"></a>

CloudHSM CLI에서 활성화되지 않은 관리자는 활성화되지 않은 AWS CloudHSM 클러스터의 첫 번째 HSM에만 존재하는 임시 사용자입니다. [클러스터를 활성화하려면](activate-cluster.md) CloudHSM CLI에서 **cluster activate** 명령을 실행합니다. 이 명령을 실행하면 활성화되지 않은 관리자에게 암호를 변경하라는 메시지가 표시됩니다. 암호를 변경한 후 활성화되지 않은 관리자는 관리자가 됩니다.

## 관리자
<a name="admin"></a>

CloudHSM CLI에서 관리자는 사용자 관리 작업을 수행할 수 있습니다. 예를 들어, 사용자를 생성 및 삭제하고 사용자 암호를 변경할 수 있습니다. 관리자에 대한 자세한 내용은 [CloudHSM CLI용 HSM 사용자 권한 테이블](user-permissions-table-chsm-cli.md) 단원을 참조하십시오.

## CU(Crypto User)
<a name="crypto-user-chsm-cli"></a>

CU(Crypto User)는 다음 키 관리 및 암호화 작업을 수행할 수 있습니다.
+ **키 관리** – 암호화 키 생성, 삭제, 공유, 가져오기 및 내보내기
+ **암호화 작업** – 암호화, 암호화 해제, 사인, 확인 등에 암호호화 키 사용

자세한 내용은 [CloudHSM CLI용 HSM 사용자 권한 테이블](user-permissions-table-chsm-cli.md) 단원을 참조하십시오.

## AU(Appliance User)
<a name="appliance-user-chsm-cli"></a>

어플라이언스 사용자(AU)는 클러스터의 HSMs에서 복제 및 동기화 작업을 수행할 수 있습니다.는 AU를 AWS CloudHSM 사용하여 AWS CloudHSM 클러스터의 HSMs을 동기화합니다. AU는에서 제공하는 모든 HSMs에 존재 AWS CloudHSM하며 권한이 제한적입니다. 자세한 내용은 [CloudHSM CLI용 HSM 사용자 권한 테이블](user-permissions-table-chsm-cli.md) 단원을 참조하십시오.

AWS 는 HSMs에서 작업을 수행할 수 없습니다. AWS 는 사용자 또는 키를 보거나 수정할 수 없으며 해당 키를 사용하여 암호화 작업을 수행할 수 없습니다.

# CloudHSM CLI용 HSM 사용자 권한 테이블
<a name="user-permissions-table-chsm-cli"></a>

다음 테이블에는 AWS CloudHSM에서 작업을 수행할 수 있는 HSM 사용자 또는 세션 유형별로 정렬된 하드웨어 보안 모듈(HSM) 작업이 나열되어 있습니다.


|  | 관리자 | CU(Crypto User) | AU(Appliance User) | 인증된 세션 | 
| --- | --- | --- | --- | --- | 
| 기본 클러스터 정보 가져오기 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | 
| 자체 암호 변경 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | 해당 사항 없음 | 
| 사용자의 암호 변경 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 사용자 추가 및 제거 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 동기화 상태 가져오기 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 마스킹 처리된 객체 추출 및 삽입³ | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 키 관리 기능⁴ | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 암호화, 암호 해독 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 사인 및 확인 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
| 다이제스트 및 HMAC 생성 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[Yes\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-yes.png) 예 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | ![\[No\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/images/icon-no.png) 아니요 | 
+  [1] 기본 클러스터 정보에는 클러스터의 HSM 수와 각 HSM의 IP 주소, 모델, 일련 번호, 디바이스 ID, 펌웨어 ID 등이 포함됩니다.
+  [2] 사용자는 HSM의 키에 해당하는 다이제스트(해시) 집합을 얻을 수 있습니다. 애플리케이션은 이러한 다이제스트 세트를 비교해서 클러스터에서 HSM의 동기화 상태를 파악할 수 있습니다.
+  [3] 마스킹 처리된 객체는 HSM을 떠나기 전에 암호화가 되는 키입니다. HSM 밖에서는 암호를 해독할 수 없습니다. 키가 추출된 HSM과 같은 클러스터에 있는 HSM에 삽입된 후에만 암호가 해독됩니다. 애플리케이션은 마스킹 처리된 객체를 추출 및 삽입하여 클러스터에서 HSM을 동기화할 수 있습니다.
+  [4] 키 관리 함수에는 키 속성 생성, 삭제, 래핑, 언래핑, 수정이 포함됩니다.

# CloudHSM CLI를 사용하여 HSM 사용자 관리자 생성
<a name="create-admin-cloudhsm-cli"></a>

CloudHSM CLI를 사용하여 하드웨어 보안 모듈(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. **login** 명령을 사용하고 클러스터에 관리자로 로그인합니다.

   ```
   aws-cloudhsm > login --username <username> --role admin
   ```

1. 시스템이 암호를 묻는 메시지를 표시합니다. 암호를 입력하면 명령이 성공했다는 결과가 출력됩니다.

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

1. 다음 명령을 입력하여 을 생성합니다:

   ```
   aws-cloudhsm > user create --username <username> --role admin
   ```

1. 데이터베이스 사용자의 암호를 입력합니다.

1. 암호를 다시 입력하여 입력한 암호가 정확한지 확인합니다.

# CloudHSM CLI를 사용하여 HSM Crypto User 생성
<a name="create-user-cloudhsm-cli"></a>

CloudHSM CLI를 사용하여 하드웨어 보안 모듈(HSM) Crypto User(CU)를 생성하는 방법은 다음과 같습니다.

1. 다음 명령을 사용하여 CloudHSM CLI 대화형 모드를 시작합니다.

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

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

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

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

------

1. **login** 명령을 사용하고 클러스터에 관리자로 로그인합니다.

   ```
   aws-cloudhsm > login --username <username> --role admin
   ```

1. 시스템이 암호를 묻는 메시지를 표시합니다. 암호를 입력하면 명령이 성공했다는 결과가 출력됩니다.

   ```
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<USERNAME>",
       "role": "admin"
     }
   }
   ```

1. 다음 명령을 입력하여 crypto user를 생성합니다:

   ```
   aws-cloudhsm > user create --username <username> --role crypto-user
   ```

1. 새 crypto user의 암호를 입력합니다.

1. 암호를 다시 입력하여 입력한 암호가 정확한지 확인합니다.

# CloudHSM CLI를 사용하여 클러스터의 모든 HSM 사용자 나열
<a name="list-users-cloudhsm-cli"></a>

 CloudHSM CLI에서 **user list** 명령을 사용하여 AWS CloudHSM 클러스터의 HSM을 나열합니다. **user list**를 실행하기 위해 로그인할 필요는 없습니다. 모든 사용자 유형에서 사용자를 나열할 수 있습니다.

**다음 단계에 따라 클러스터의 모든 사용자를 나열하십시오**

1. 다음 명령을 사용하여 CloudHSM CLI 대화형 모드를 시작합니다.

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

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

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

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

------

1. 다음 명령을 입력하여 클러스터의 사용자를 나열합니다:

   ```
   aws-cloudhsm > user list
   ```

**user list**에 대한 자세한 내용은 [사용자 목록](cloudhsm_cli-user-list.md)을 참조하십시오.

# CloudHSM CLI를 사용하여 HSM 사용자 암호 변경
<a name="change-user-password-cloudhsm-cli"></a>

 CloudHSM CLI에서 **user change-password** 명령을 사용하여 하드웨어 보안 모듈(HSM) 사용자의 암호를 변경합니다.

 사용자 유형 및 암호는 대소문자를 구분하지만 사용자 이름은 대소문자를 구분하지 않습니다.

 CU(Crypto User) 및 AU(appliance user)는 자체 암호만 변경할 수 있습니다. 다른 사용자의 암호를 변경하려면 관리자로 로그인해야 합니다. 현재 클라이언트 또는 에 로그인되어 있는 사용자의 암호를 변경할 수 없습니다.

**암호 변경**

1. 다음 명령을 사용하여 CloudHSM CLI 대화형 모드를 시작합니다.

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

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

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

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

------

1. **login** 명령을 사용하고 암호를 변경할 사용자로서 로그인합니다.

   ```
   aws-cloudhsm > login --username <username> --role <role>
   ```

1. 사용자의 암호를 입력합니다.

   ```
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "<role>"
     }
   }
   ```

1. **user change-password** 명령을 입력합니다.

   ```
   aws-cloudhsm > user change-password --username <username> --role <role>
   ```

1. 새 암호를 입력합니다.

1. 새 암호를 다시 입력합니다.

**다른 사용자의 암호 변경**

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. 암호를 변경할 사용자의 사용자 이름과 함께 **user change-password** 명령을 입력합니다.

   ```
   aws-cloudhsm > user change-password --username <username> --role <role>
   ```

1. 새 암호를 입력합니다.

1. 새 암호를 다시 입력합니다.

**user change-password**에 대한 자세한 정보는, [사용자 암호 변경](cloudhsm_cli-user-change-password.md)을 참조하십시오.

# CloudHSM CLI를 사용하여 HSM 사용자 삭제
<a name="delete-user-cloudhsm-cli"></a>

CloudHSM CLI에서 **user delete**를 사용하여 하드웨어 보안 모듈(HSM) 사용자를 삭제합니다. 다른 사용자를 삭제하려면 관리자로 로그인해야 합니다.

**작은 정보**  
 키를 소유한 CU(Crypto User)는 삭제할 수 없습니다.

**사용자 삭제**

1. 다음 명령을 사용하여 CloudHSM CLI 대화형 모드를 시작합니다.

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

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

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

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

------

1. **login** 명령을 사용하고 클러스터에 관리자로 로그인합니다.

   ```
   aws-cloudhsm > login --username <username> --role admin
   ```

1. 시스템이 암호를 묻는 메시지를 표시합니다. 암호를 입력하면 명령이 성공했다는 결과가 출력됩니다.

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

1. **user delete** 명령을 사용하여 사용자를 삭제합니다.

   ```
   aws-cloudhsm > user delete --username <username> --role <role>
   ```

**user delete**에 대한 자세한 내용은 [deleteUser](cloudhsm_cli-user-delete.md)를 참조하십시오.

# CloudHSM CLI를 사용하여 HSM 사용자용 MFA 관리
<a name="login-mfa-token-sign"></a>

보안을 강화하기 위해 AWS CloudHSM 클러스터를 보호하는 데 도움이 되도록 사용자를 위한 다중 인증(MFA)을 구성할 수 있습니다.

MFA 지원 하드웨어 보안 모듈(HSM) 사용자 계정으로 클러스터에 로그인하면 CloudHSM CLI에 암호(알 수 있는 첫 번째 요소)를 제공하고 CloudHSM CLI는 토큰을 제공하고 토큰에 사인하라는 메시지를 표시합니다.

가지고 있는 두 번째 요소를 제공하려면 이미 생성하여 HSM 사용자와 연결한 키 페어의 프라이빗 키로 토큰에 서명합니다. 클러스터에 액세스하려면 사인된 토큰을 CloudHSM CLI에 제공합니다.

사용자에 대한 MFA 설정에 대한 자세한 내용은 [CloudHSM CLI용 MFA 설정](set-up-mfa-for-cloudhsm-cli.md) 섹션을 참조하세요

다음 주제에는 AWS CloudHSM에서의 쿼럼 인증 작업에 대한 자세한 내용을 제공합니다.

**Topics**
+ [쿼럼 인증](quorum-mfa-cloudhsm-cli.md)
+ [키 페어 요구 사항](mfa-key-pair-cloudhsm-cli.md)
+ [MFA 설정](set-up-mfa-for-cloudhsm-cli.md)
+ [사용자 생성](create-mfa-users-cloudhsm-cli.md)
+ [사용자 로그인](login-mfa-cloudhsm-cli.md)
+ [키 순환](rotate-mfa-cloudhsm-cli.md)
+ [MFA 퍼블릭 키 등록 취소](deregister-mfa-cloudhsm-cli.md)
+ [토큰 파일 참조](reference-mfa-cloudhsm-cli.md)

# CloudHSM CLI를 사용한 AWS CloudHSM 클러스터의 쿼럼 인증 및 MFA
<a name="quorum-mfa-cloudhsm-cli"></a>

 AWS CloudHSM 클러스터는 쿼럼 인증 및 다중 인증(MFA)에 동일한 키를 사용합니다. 즉, MFA가 활성화된 사용자는 MofN 또는 쿼럼 액세스 제어에 효과적으로 등록됩니다. 동일한 HSM 사용자에 대해 MFA 및 쿼럼 인증을 성공적으로 사용하려면 다음 사항을 고려하십시오.
+ 현재 사용자에 대해 쿼럼 인증을 사용하는 경우 쿼럼 사용자에 대해 생성한 것과 동일한 키 페어를 사용하여 해당 사용자에 대해 MFA를 활성화해야 합니다.
+ 쿼럼 인증 사용자가 아닌 비 MFA 사용자에 대한 MFA 요구 사항을 추가하는 경우, 해당 사용자를 MFA 인증을 통해 쿼럼(MofN) 등록 사용자로 등록합니다.
+ 등록된 쿼럼 인증 사용자이기도 한 MFA 사용자의 MFA 요구 사항을 제거하거나 암호를 변경하면 해당 사용자의 쿼럼(MoFN) 사용자 등록도 제거됩니다.
+ 쿼럼 인증 사용자이기도 한 MFA 사용자의 MFA 요구 사항을 제거하거나 암호를 *변경하면서도 해당 사용자가 여전히 쿼럼 인증에 참여하도록 하려면* 해당 사용자를 쿼럼(MoFn) 사용자로 다시 등록해야 합니다.

쿼럼 인증에 대한 자세한 내용은 [쿼럼 인증 관리(N 중 M)](quorum-auth-chsm-cli.md) 단원을 참조하십시오.

# CloudHSM CLI AWS CloudHSM 를 사용하기 위한 MFA 키 페어 요구 사항
<a name="mfa-key-pair-cloudhsm-cli"></a>

의 하드웨어 보안 모듈(HSM) 사용자에 대해 다중 인증(MFA)을 활성화하려면 새 키 페어를 생성하거나 다음 요구 사항을 충족하는 기존 키를 사용할 AWS CloudHSM수 있습니다.
+ **키 유형: **비대칭
+ **키 사용:** 사인 및 확인
+ **키 사양: ** RSA\$12048
+ **사인 알고리즘에 포함:** sha256WithRSAEncryption

**참고**  
쿼럼 인증을 사용하거나 쿼럼 인증을 사용하려는 경우 [CloudHSM CLI를 사용한 AWS CloudHSM 클러스터의 쿼럼 인증 및 MFA](quorum-mfa-cloudhsm-cli.md) 단원을 참조하십시오

CloudHSM CLI와 키 페어를 사용하여 MFA가 활성화된 새 관리자 사용자를 생성할 수 있습니다.

# CloudHSM CLI용 MFA 설정
<a name="set-up-mfa-for-cloudhsm-cli"></a>

다음 단계에 따라 CloudHSM CLI용 다중 인증(MFA)을 설정합니다.

1. 토큰 사인 전략을 사용하여 MFA를 설정하려면 먼저 2048비트 RSA 프라이빗 키와 관련 퍼블릭 키를 생성해야 합니다.

   ```
   $ openssl genrsa -out officer1.key 2048
   Generating RSA private key, 2048 bit long modulus (2 primes)
   ...........................................................+++++
   ....................................................................+++++
   e is 65537 (0x010001)
   
   $ openssl rsa -in officer1.key -outform PEM -pubout -out officer1.pub
   writing RSA key
   ```

1. 다음 명령을 사용하여 대화형 모드에서 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> --cluster-id <cluster ID>
   Enter password:
   {
     "error_code": 0,
     "data": {
       "username": "<admin>",
       "role": "<admin>"
     }
   }
   ```

1. 그런 다음 명령을 실행하여 MFA 전략을 변경합니다. 파라미터 `--token`을 제공해야 합니다. 이 파라미터 변수는 사인되지 않은 토큰이 기록되는 파일을 지정합니다.

   ```
   aws-cloudhsm > user change-mfa token-sign --token unsigned-tokens.json --username <username> --role crypto-user --change-quorum
   Enter password:
   Confirm password:
   ```

1. 이제 사인이 필요한 사인되지 않은 토큰이 들어 있는 파일이 생성됨: `unsigned-tokens.json` 이 파일의 토큰 수는 클러스터의 HSM 수에 따라 달라집니다. 각 토큰은 하나의 HSM을 나타냅니다. 이 파일은 JSON 형식이며 프라이빗 키가 있음을 증명하기 위해 사인이 필요한 토큰을 포함하고 있습니다.

   ```
   $ cat unsigned-tokens.json
   {
     "version": "2.0",
     "tokens": [
   {
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. 다음 단계는 1단계에서 생성한 프라이빗 키를 사용하여 이러한 토큰에 사인하는 것입니다. 사인을 파일에 다시 배치합니다. 먼저 base64로 인코딩된 토큰을 추출하고 디코딩해야 합니다.

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. 이제 1단계에서 만든 RSA 프라이빗 키를 사용하여 사인할 수 있는 바이너리 토큰이 생겼습니다.

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

1. 이제 토큰의 바이너리 서명이 생겼습니다. base64를 사용하여 인코딩한 다음 토큰 파일에 다시 배치해야 합니다.

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64 
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 마지막으로 base64 값을 복사하여 토큰 파일에 다시 붙여넣을 수 있습니다:

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. 이제 토큰 파일에 필요한 모든 사인이 포함되었으므로 계속 진행할 수 있습니다. 사인된 토큰이 들어 있는 파일 이름을 입력하고 Enter 키를 누릅니다. 마지막으로 퍼블릭 키의 경로를 입력합니다.

   ```
   Enter signed token file path (press enter if same as the unsigned token file):
   Enter public key PEM file path:officer1.pub
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "crypto-user"
     }
   }
   ```

   이제 사용자를 MFA로 설정했습니다.

   ```
   {
       "username": "<username>",
       "role": "crypto-user",
       "locked": "false",
       "mfa": [
         {
           "strategy": "token-sign",
           "status": "enabled"
         }
       ],
       "cluster-coverage": "full"
   },
   ```

# CloudHSM CLI용 MFA가 활성화된 사용자 생성
<a name="create-mfa-users-cloudhsm-cli"></a>

다음 단계에 따라 다중 인증(MFA)이 활성화된 AWS CloudHSM 사용자를 생성합니다.

1. CloudHSM CLI를 사용하여 HSM에 관리자로 로그인합니다.

1. [**user create**](cloudhsm_cli-user-create.md) 명령을 사용하여 원하는 사용자를 생성합니다. 그런 다음 [CloudHSM CLI용 MFA 설정](set-up-mfa-for-cloudhsm-cli.md)의 단계에 따라 사용자를 위한 MFA를 설정합니다.

# CloudHSM CLI용 MFA가 활성화된 사용자 로그인
<a name="login-mfa-cloudhsm-cli"></a>

다음 단계에 따라 멀티 팩터 인증(MFA)이 활성화된 AWS CloudHSM 사용자를 로그인합니다.

1. CloudHSM CLI의 [**login mfa-token-sign**](cloudhsm_cli-login-mfa-token-sign.md) 명령을 사용하여 MFA를 활성화한 사용자에 대해 MFA로 로그인 프로세스를 시작할 수 있습니다.

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   ```

1. 암호를 입력합니다. 그러면 사인되지 않은/사인된 토큰 페어가 포함된 토큰 파일의 경로를 입력하라는 메시지가 표시됩니다. 여기서 사인된 토큰은 프라이빗 키를 사용하여 생성된 토큰입니다.

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   Enter signed token file path (press enter if same as the unsigned token file):
   ```

1. 사인된 토큰 파일 경로를 입력하라는 메시지가 표시되면 별도의 터미널에서 사인되지 않은 토큰 파일을 검사할 수 있습니다. 사인이 필요한 사인되지 않은 토큰이 있는 파일 식별: `<unsigned-tokens.json>` 이 파일의 토큰 수는 클러스터의 HSM 수에 따라 달라집니다. 각 토큰은 하나의 HSM을 나타냅니다. 이 파일은 JSON 형식이며 프라이빗 키가 있음을 증명하기 위해 사인이 필요한 토큰을 포함하고 있습니다.

   ```
   $ cat <unsigned-tokens.json>
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. 2단계에서 생성한 프라이빗 키로 사인되지 않은 토큰에 사인합니다. 먼저 base64로 인코딩된 토큰을 추출하고 디코딩해야 합니다.

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin 
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. 이제 바이너리 토큰이 생겼습니다. [MFA 설정 단계 1](set-up-mfa-for-cloudhsm-cli.md)에서 이전에 생성한 RSA 프라이빗 키를 사용하여 사인합니다.

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

1. 이제 토큰의 바이너리 사인이 생겼습니다. base64를 사용하여 인코딩한 다음 토큰 파일에 다시 배치합니다.

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 마지막으로 base64 값을 복사하여 토큰 파일에 다시 붙여넣습니다.

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. 이제 토큰 파일에 필요한 모든 사인이 포함되었으므로 계속 진행할 수 있습니다. 사인된 토큰이 들어 있는 파일 이름을 입력하고 Enter 키를 누릅니다. 이제 성공적으로 로그인할 수 있습니다.

   ```
   aws-cloudhsm > login --username <username> --role <role> mfa-token-sign --token <unsigned-tokens.json>
   Enter password:
   Enter signed token file path (press enter if same as the unsigned token file):
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "<role>"
     }
   }
   ```

# CloudHSM CLI용 MFA가 활성화된 사용자의 키 순환
<a name="rotate-mfa-cloudhsm-cli"></a>

멀티 팩터 인증(MFA)이 활성화된 AWS CloudHSM 사용자의 키를 교체하려면 다음 단계를 따르세요.

1. CloudHSM CLI를 사용하여 관리자 또는 MFA가 활성화된 특정 사용자로 HSM에 로그인합니다(자세한 내용은 [MFA가 활성화된 상태로 사용자 로그인]() 참조).

1. 그런 다음 명령을 실행하여 MFA 전략을 변경합니다. 파라미터 **--token**을 제공해야 합니다. 이 파라미터 변수는 사인되지 않은 토큰이 기록되는 파일을 지정합니다.

   ```
   aws-cloudhsm > user change-mfa token-sign --token unsigned-tokens.json --username <username> --role crypto-user --change-quorum
   Enter password:
   Confirm password:
   ```

1. 사인이 필요한 사인되지 않은 토큰이 있는 파일 식별: `unsigned-tokens.json` 이 파일의 토큰 수는 클러스터의 HSM 수에 따라 달라집니다. 각 토큰은 하나의 HSM을 나타냅니다. 이 파일은 JSON 형식이며 프라이빗 키가 있음을 증명하기 위해 사인이 필요한 토큰을 포함하고 있습니다. 이 키는 현재 등록된 퍼블릭 키를 교체하는 데 사용하려는 새 RSA 공개/프라이빗 키 페어의 새 프라이빗 키입니다.

   ```
   $ cat unsigned-tokens.json
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=",
         "signed": ""
       },
       {
         "unsigned": "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=",
         "signed": ""
       },
       {
         "unsigned": "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=",
         "signed": ""
       }
     ]
   }
   ```

1. 설정 과정에서 이전에 생성한 프라이빗 키로 이 토큰에 사인하십시오. 먼저 base64로 인코딩된 토큰을 추출하고 디코딩해야 합니다.

   ```
   $ echo "Vtf/9QOFY45v/E1osvpEMr59JsnP/hLDm4ItOO2vqL8=" > token1.b64
   $ echo "wVbC0/5IKwjyZK2NBpdFLyI7BiayZ24YcdUdlcxLwZ4=" > token2.b64
   $ echo "z6aW9RzErJBL5KqFG5h8lhTVt9oLbxppjod0Ebysydw=" > token3.b64
   $ base64 -d token1.b64 > token1.bin
   $ base64 -d token2.b64 > token2.bin
   $ base64 -d token3.b64 > token3.bin
   ```

1. 이제 바이너리 토큰이 생겼습니다. 설정 중에 이전에 생성한 RSA 프라이빗 키를 사용하여 사인하십시오.

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

1. 이제 토큰의 바이너리 사인이 생겼습니다. base64를 사용하여 인코딩한 다음 토큰 파일에 다시 배치합니다.

   ```
   $ base64 -w0 token1.sig.bin > token1.sig.b64
   $ base64 -w0 token2.sig.bin > token2.sig.b64 
   $ base64 -w0 token3.sig.bin > token3.sig.b64
   ```

1. 마지막으로 base64 값을 복사하여 토큰 파일에 다시 붙여넣습니다.

   ```
   {
     "version": "2.0",
     "tokens": [
       {
         "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
         "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
       },
       {
         "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
         "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
       },
       {
         "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
         "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
       }
     ]
   }
   ```

1. 이제 토큰 파일에 필요한 모든 사인이 포함되었으므로 계속 진행할 수 있습니다. 사인된 토큰이 들어 있는 파일 이름을 입력하고 Enter 키를 누릅니다. 마지막으로 새 퍼블릭 키의 경로를 입력합니다. 이제 [user list]() 출력의 일부로 다음이 표시됩니다.

   ```
   Enter signed token file path (press enter if same as the unsigned token file):
   Enter public key PEM file path:officer1.pub
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "crypto-user"
     }
   }
   ```

   이제 사용자를 MFA로 설정했습니다.

   ```
   {
       "username": "<username>",
       "role": "crypto-user",
       "locked": "false",
       "mfa": [
         {
           "strategy": "token-sign",
           "status": "enabled"
         }
       ],
       "cluster-coverage": "full"
   },
   ```

생성된 JSON 형식 토큰 파일에 프라이빗 키로 사인하고 새 MFA 퍼블릭 키를 등록했습니다.

# CloudHSM CLI를 사용하여 MFA 퍼블릭 키 등록 취소
<a name="deregister-mfa-cloudhsm-cli"></a>

MFA 퍼블릭 키가 등록된 경우 AWS CloudHSM 관리자의 다중 인증(MFA) 퍼블릭 키 등록을 취소하려면 다음 단계를 따릅니다.

1. CloudHSM CLI를 사용하여 MFA가 활성화된 상태에서 관리자로 HSM에 로그인할 수 있습니다.

1. **user change-mfa token-sign** 명령을 사용하여 사용자용 MFA를 제거합니다.

   ```
   aws-cloudhsm > user change-mfa token-sign --username <username> --role admin --deregister --change-quorum
   Enter password:
   Confirm password:
   {
     "error_code": 0,
     "data": {
       "username": "<username>",
       "role": "admin"
     }
   }
   ```

# CloudHSM CLI를 사용하는 MFA에 대한 토큰 파일 참조
<a name="reference-mfa-cloudhsm-cli"></a>

다중 인증(MFA) 퍼블릭 키를 등록하거나 MFA를 사용하여 CloudHSM CLI에 로그인을 시도할 때 생성되는 토큰 파일은 다음과 같이 구성됩니다.
+ **토큰: JSON** 객체 리터럴 형태의 base64로 인코딩된 사인되지 않은/사인된 토큰 페어 배열.
+ **미사인:** base64로 인코딩되고 SHA256 해시 처리된 토큰입니다.
+ **사인:** RSA2048비트 프라이빗 키를 사용하여 사인되지 않은 토큰의 base64로 인코딩된 사인된 토큰(사인).

```
{
  "version": "2.0",
  "tokens": [
    {
      "unsigned": "1jqwxb9bJOUUQLiNb7mxXS1uBJsEXh0B9nj05BqnPsE=",
      "signed": "eiw3fZeCKIY50C4zPeg9Rt90M1Qlq3WlJh6Yw7xXm4nF6e9ETLE39+9M+rUqDWMRZjaBfaMbg5d9yDkz5p13U7ch2tlF9LoYabsWutkT014KRq/rcYMvFsU9n/Ey/TK0PVaxLN42X+pebV4juwMhN4mK4CzdFAJgM+UGBOj4yB9recpOBB9K8QFSpJZALSEdDgUc/mS1eDq3rU0int6+4NKuLQjpR+LSEIWRZ6g6+MND2vXGskxHjadCQ09L7Tz8VcWjKDbxJcBiGKvkqyozl9zrGo8fA3WHBmwiAgS61Merx77ZGY4PFR37+j/YMSC14prCN15DtMRv2xA1SGSb4w=="
    },
    {
      "unsigned": "LMMFc34ASPnvNPFzBbMbr9FProS/Zu2P8zF/xzk5hVQ=",
      "signed": "HBImKnHmw+6R2TpFEpfiAg4+hu2pFNwn43ClhKPkn2higbEhUD0JVi+4MerSyvU/NN79iWVxDvJ9Ito+jpiRQjTfTGEoIteyuAr1v/Bzh+HjmrO53OQpZaJ/VXGIgApD0myuu/ZGNKQTCSkkL7+V81FG7yR1Nm22jUeGa735zvm/E+cenvZdy0VVx6A7WeWrl3JEKKBweHbi+7BwbaW+PTdCuIRd4Ug76Sy+cFhsvcG1k7cMwDh8MgXzIZ2m1f/hdy2j8qAxORTLlmwyUOYvPYOvUhc+s83hx36QpGwGcD7RA0bPT5OrTx7PHd0N1CL+Wwy91We8yIOFBS6nxo1R7w=="
    },
    {
      "unsigned": "dzeHbwhiVXQqcUGj563z51/7sLUdxjL93SbOUyZRjH8=",
      "signed": "VgQPvrTsvGljVBFxHnswduq16x8ZrnxfcYVYGf/N7gEzI4At3GDs2EVZWTRdvS0uGHdkFYp1apHgJZ7PDVmGcTkIXVD2lFYppcgNlSzkYlftr5EOjqS9ZjYEqgGuB4g//MxaBaRbJai/6BlcE92NIdBusTtreIm3yTpjIXNAVoeRSnkfuw7wZcL96QoklNb1WUuSHw+psUyeIVtIwFMHEfFoRC0t+VhmnlnFnkjGPb9W3Aprw2dRRvFM3R2ZTDvMCiOYDzUCd43GftGq2LfxH3qSD51oFHglHQVOY0jyVzzlAvub5HQdtOQdErIeO0/9dGx5yot07o3xaGl5yQRhwA=="
    }
  ]
}
```

# CloudHSM CLI를 사용하여 쿼럼 인증 관리(N 중 M 액세스 제어)
<a name="quorum-auth-chsm-cli"></a>

AWS CloudHSM 클러스터는 M of N 액세스 제어라고도 하는 쿼럼 인증을 지원합니다. 이 기능을 사용하려면 HSM 사용자가 특정 작업에 협력하여 보호 계층을 추가해야 합니다.

쿼럼 인증의 경우 HSM의 단일 사용자는 HSM에서 쿼럼 제어 작업을 수행할 수 없습니다. 이러한 작업을 하려면 최소 숫자의 HSM 사용자(최소 2명)가 협력해야 합니다.

쿼럼 인증은 다음 작업을 제어할 수 있습니다.
+ [관리자](understanding-users.md#admin)의 HSM 사용자 관리: HSM 사용자 생성 및 삭제 또는 다른 HSM 사용자의 암호 변경. 자세한 내용은 [CloudHSM CLI를 AWS CloudHSM 사용하여 쿼럼 인증을 활성화한 사용자 관리](quorum-auth-chsm-cli-admin.md) 단원을 참조하십시오.

 AWS CloudHSM의 쿼럼 인증에 대한 핵심 사항입니다.
+ HSM 사용자는 자신의 쿼럼 토큰에 서명할 수 있습니다. 즉, 쿼럼 인증에 필요한 승인 중 하나를 제공할 수 있습니다.
+ 최소 쿼럼 승인자 수를 2\$18 사이에서 선택할 수 있습니다.
+ HSM은 최대 1024개의 쿼럼 토큰을 저장할 수 있습니다. 이 한도에 도달하면 HSM에서 만료된 토큰을 제거하고 새 토큰을 생성합니다.
+ 토큰은 기본적으로 생성 10분 후에 만료됩니다.
+ MFA가 활성화된 경우 클러스터는 쿼럼 인증과 다중 인증(MFA)에 동일한 키를 사용합니다. 자세한 내용은 [Using CloudHSM CLI to manage MFA](login-mfa-token-sign.md) 섹션을 참조하세요.
+ 각 HSM에는 관리자 서비스당 하나의 토큰과 Crypto User 서비스당 여러 개의 토큰이 포함될 수 있습니다.

다음 주제에는 AWS CloudHSM의 쿼럼 인증에 대한 자세한 내용이 있습니다.

**Topics**
+ [CloudHSM CLI용 쿼럼 인증 프로세스](quorum-auth-chsm-cli-overview.md)
+ [CloudHSM CLI를 사용한 쿼럼 인증에 지원되는 AWS CloudHSM 서비스 이름 및 유형](quorum-auth-chsm-cli-service-names.md)
+ [CloudHSM CLI를 사용하여 AWS CloudHSM 관리자에 대한 쿼럼 인증 설정](quorum-auth-chsm-cli-first-time.md)
+ [CloudHSM CLI를 AWS CloudHSM 사용하여 쿼럼 인증을 활성화한 사용자 관리](quorum-auth-chsm-cli-admin.md)
+ [CloudHSM CLI AWS CloudHSM 사용에 대한 쿼럼 최소값 변경](quorum-auth-chsm-cli-min-value.md)

# CloudHSM CLI용 쿼럼 인증 프로세스
<a name="quorum-auth-chsm-cli-overview"></a>

다음 단계는 CloudHSM CLI에 대한 쿼럼 인증 프로세스를 요약합니다. 구체적인 단계와 도구는 [CloudHSM CLI를 AWS CloudHSM 사용하여 쿼럼 인증을 활성화한 사용자 관리](quorum-auth-chsm-cli-admin.md)을 참조하십시오.

1. 각각의 하드웨어 보안 모듈(HSM) 사용자는 서명을 위한 비대칭 키를 생성합니다. 사용자들은 HSM 외부에서 이를 수행하며 키를 적절히 보호하기 위해 주의합니다.

1. 각 HSM 사용자는 HSM에 로그인하고 자신의 서명 키의 퍼블릭 부분(퍼블릭 키)을 HSM에 등록합니다.

1. HSM 사용자가 쿼럼 제어 작업을 수행하려는 경우, 동일한 사용자가 HSM에 로그인하고 *쿼럼 토큰*을 가져옵니다.

1. HSM 사용자는 한 명 이상의 다른 HSM 사용자에게 쿼럼 토큰을 제공하고 승인을 요청합니다.

1. 다른 HSM 사용자는 자신의 키를 사용하여 암호화된 방식으로 쿼럼 토큰에 서명함으로써 승인합니다. 이는 HSM 외부에서 이루어집니다.

1. HSM 사용자가 필요한 수의 승인을 받으면 동일한 사용자가 HSM에 로그인하고 **--approval** 인수로 쿼럼 제어 작업을 실행하여 필요한 모든 승인(서명)이 포함된 서명된 쿼럼 토큰 파일을 제공합니다.

1. HSM은 각 서명자의 등록된 퍼블릭 키를 사용하여 서명을 확인합니다. 서명이 유효하면 HSM이 토큰을 승인하고 쿼럼 제어 작업이 수행됩니다.

# CloudHSM CLI를 사용한 쿼럼 인증에 지원되는 AWS CloudHSM 서비스 이름 및 유형
<a name="quorum-auth-chsm-cli-service-names"></a>

**관리 서비스**: 쿼럼 인증은 사용자 생성, 사용자 삭제, 사용자 비밀번호 변경, 쿼럼 값 설정, 쿼럼 및 MFA 기능 비활성화와 같은 관리자 권한 서비스에 사용됩니다.

**Crypto User 서비스**: Quorum 인증은 키로 서명, 키 공유/공유 해제, 키 래핑/래핑 해제, 키 속성 설정과 같은 특정 키와 연결된 Crypto User 권한 서비스에 사용됩니다. 연결된 키의 쿼럼 값은 키가 생성, 가져오기 또는 래핑 해제될 때 구성됩니다. 쿼럼 값은 키가 연결된 사용자 수와 같거나 적어야 합니다. 여기에는 키가 공유되는 사용자와 키 소유자가 포함됩니다.

각 서비스 유형은 수행할 수 있는 특정 쿼럼 지원 서비스 작업 세트를 포함하는 적격 서비스 이름으로 더 세분화됩니다.


****  

| 서비스 이름 | 서비스 유형 | 서비스 작업 | 
| --- | --- | --- | 
| user | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-service-names.html)  | 
| 쿼럼 | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-service-names.html)  | 
| cluster1 | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-service-names.html)  | 
| 키 관리 | Crypto User |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-service-names.html)  | 
| 키 사용 | Crypto User |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-service-names.html)  | 

[1] 클러스터 서비스는 hsm2m.medium에서만 사용할 수 있습니다

# CloudHSM CLI를 사용하여 AWS CloudHSM 관리자에 대한 쿼럼 인증 설정
<a name="quorum-auth-chsm-cli-first-time"></a>

다음 주제에서는 AWS CloudHSM [관리자가 쿼럼 인증을 사용할](understanding-users.md#admin) 수 있도록 하드웨어 보안 모듈(HSM)을 구성하기 위해 완료해야 하는 단계를 설명합니다. 관리자에 대한 쿼럼 인증을 처음 구성할 때 이러한 단계를 한 번만 수행하면 됩니다. 이 단계들을 완료한 후 [CloudHSM CLI를 AWS CloudHSM 사용하여 쿼럼 인증을 활성화한 사용자 관리](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**: 원시 데이터가 최대 245바이트를 초과하지 않는 base64로 인코딩된 무작위 데이터 토큰입니다.
   + **서명되지 않음**: approval\$1data의 base64로 인코딩되고 SHA256 해시 처리된 토큰입니다.
   + **서명됨**: 이전에 OpenSSL로 생성된 RSA 2048비트 개인 키를 사용하여 서명되지 않은 토큰의 base64로 인코딩된 서명된 토큰(서명)입니다.

   개인 키로 서명되지 않은 토큰에 서명하여 개인 키에 액세스할 수 있음을 증명합니다. 관리자를 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를 사용하여 사용자의 token-sign 쿼럼 전략 등록](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 클러스터에는 **user list** 명령의 다음 출력과 같이 각각 관리자가 동일한 두 개의 HSMs이 있습니다. 사용자 생성에 대한 자세한 내용은 [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)를 사용합니다. HSM의 총 관리자 수까지 이(2)\$1팔(8) 사이의 값을 선택할 수 있습니다. 이 예제에서 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) 임을 보여줍니다. 이 단계들을 완료한 후 [쿼럼을 사용한 사용자 관리(N 중 M)](quorum-auth-chsm-cli-admin.md) 섹션을 참조하십시오.

**관리 서비스**: 쿼럼 인증은 사용자 생성, 사용자 삭제, 사용자 비밀번호 변경, 쿼럼 값 설정, 쿼럼 및 MFA 기능 비활성화와 같은 관리자 권한 서비스에 사용됩니다.

**Crypto User 서비스**: Quorum 인증은 키로 서명, 키 공유/공유 해제, 키 래핑/래핑 해제, 키 속성 설정과 같은 특정 키와 연결된 Crypto User 권한 서비스에 사용됩니다. 연결된 키의 쿼럼 값은 키가 생성, 가져오기 또는 래핑 해제될 때 구성됩니다. 쿼럼 값은 키가 연결된 사용자 수와 같거나 적어야 합니다. 여기에는 키가 공유되는 사용자와 키 소유자가 포함됩니다.

각 서비스 유형은 수행할 수 있는 특정 쿼럼 지원 서비스 작업 세트를 포함하는 적격 서비스 이름으로 더 세분화됩니다.


****  

| 서비스 이름 | 서비스 유형 | 서비스 작업 | 
| --- | --- | --- | 
| user | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| 쿼럼 | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| cluster1 | 관리자 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| 키 관리 | Crypto User |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 
| 키 사용 | Crypto User |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/cloudhsm/latest/userguide/quorum-auth-chsm-cli-first-time.html)  | 

[1] 클러스터 서비스는 hsm2m.medium에서만 사용할 수 있습니다

# CloudHSM CLI를 AWS CloudHSM 사용하여 쿼럼 인증을 활성화한 사용자 관리
<a name="quorum-auth-chsm-cli-admin"></a>

하드웨어 보안 모듈(HSM)의 An AWS CloudHSM [admin](understanding-users.md#admin)은 AWS CloudHSM 클러스터에서 다음 작업에 대한 쿼럼 인증을 구성할 수 있습니다.
+ **[CloudHSM CLI를 사용하여 AWS CloudHSM 사용자 생성](cloudhsm_cli-user-create.md)**
+ **[CloudHSM CLI를 사용하여 AWS CloudHSM 사용자 삭제](cloudhsm_cli-user-delete.md)**
+ **[CloudHSM CLI를 사용하여 사용자 암호 변경](cloudhsm_cli-user-change-password.md)**
+ **[CloudHSM CLI에서 사용자 change-mfa 범주](cloudhsm_cli-user-change-mfa.md)**

 AWS CloudHSM 클러스터가 쿼럼 인증을 위해 구성된 후에는 관리자가 자체적으로 HSM 사용자 관리 작업을 수행할 수 없습니다. 다음 예에서는 관리자가 HSM에서 새 사용자를 생성하려고 할 때의 출력을 보여줍니다. 쿼럼 인증이 필요하다는 오류 메시지와 함께 명령이 실패합니다.

```
aws-cloudhsm > user create --username user1 --role crypto-user
Enter password:
Confirm password:
{
  "error_code": 1,
  "data": "Quorum approval is required for this operation"
}
```

HSM 사용자 관리 작업을 수행하려면 관리자가 다음 작업을 완료해야 합니다.

**Topics**
+ [1단계. 쿼럼 토큰 가져오기](#quorum-admin-gen-token-chsm-cli)
+ [2단계. 승인하는 관리자로부터 서명 받기](#quorum-admin-get-approval-signatures-chsm-cli)
+ [3단계. AWS CloudHSM 클러스터에서 토큰을 승인하고 사용자 관리 작업을 실행합니다.](#quorum-admin-approve-token-chsm-cli)

## 1단계. 쿼럼 토큰 가져오기
<a name="quorum-admin-gen-token-chsm-cli"></a>

먼저 관리자는 CloudHSM CLI를 사용하여 *쿼럼 토큰*을 요청해야 합니다.

**쿼럼 토큰을 가져오려면**

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. **quorum token-sign generate** 명령을 사용하여 쿼럼 토큰을 생성합니다. 자세한 내용은 다음 예제를 참조하거나 **help quorum token-sign generate** 명령을 사용하십시오.

**Example — 쿼럼 토큰 생성**  
이 예에서는 사용자 이름이 `admin`인 관리자에 대한 쿼럼 토큰을 가져오고 해당 토큰을 `admin.token`라는 파일에 저장합니다. 예제 명령을 사용하려면 이들 값을 본인의 것으로 바꿉니다.  
+ *<admin>* – 토큰을 받는 관리자의 이름. 이는 HSM에 로그인하여 이 명령을 실행하는 관리자와 동일해야 합니다.
+ *<admin.token>* – 쿼럼 토큰을 저장하는 데 사용할 파일 이름입니다.
다음 명령에서 `user`는 생성 중인 토큰을 사용할 수 있는 *서비스 이름*을 식별합니다. 이 경우 토큰은 HSM 사용자 관리 작업 (`user` 서비스)을 위한 것입니다. .  

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

```
aws-cloudhsm > quorum token-sign generate --service user --token </path/admin.token>
{
  "error_code": 0,
  "data": {
    "path": "/home/tfile"
  }
}
```
**quorum token-sign generate** 명령은 지정된 파일 경로에 사용자 서비스 쿼럼 토큰을 생성합니다. 토큰 파일을 검사할 수 있습니다.  

```
$ cat </path/admin.token>
{
  "version": "2.0",
  "service": "user-management",
  "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA",
  "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=",
  "signatures": []
}
```
토큰 파일은 다음으로 구성됩니다.  
+ **서비스**: 토큰이 연결된 쿼럼 서비스의 식별자입니다.
+ **approval\$1data**: HSM에서 생성한 base64로 인코딩된 원시 데이터 토큰입니다.
+ **토큰**: Approval\$1data의 base64로 인코딩되고 SHA-256 해시된 토큰
+ **서명**: 승인자의 각 서명이 JSON 객체 리터럴 형식인 서명되지 않은 토큰의 base64로 인코딩된 서명된 토큰(서명) 배열입니다.

  ```
  {
        "username": "<APPROVER_USERNAME>",
        "role": "<APPROVER_ROLE>",
        "signature": "<APPROVER_RSA2048_BIT_SIGNATURE>"
  }
  ```

  각 서명은 HSM에 퍼블릭 키가 등록된 해당 RSA 2048비트 프라이빗 키를 사용하여 승인자의 결과로 생성됩니다.
생성된 사용자 서비스 쿼럼 토큰이 **quorum token-sign list** 명령을 실행하여 CloudHSM 클러스터에 존재하는지 확인할 수 있습니다.   

```
aws-cloudhsm > quorum token-sign list
{
  "error_code": 0,
  "data": {
    "tokens": [
      {
        "username": "admin",
        "service": "user",
        "approvals-required": {
          "value": 2
        },
        "number-of-approvals": {
          "value": 0
        },
        "token-timeout-seconds": {
          "value": 597
        },
        "cluster-coverage": "full"
      }
    ]
  }
}
```
`token-timeout-seconds` 시간은 생성된 토큰이 만료되기 전에 승인되는 데 걸리는 제한 시간 (초)을 나타냅니다.

## 2단계. 승인하는 관리자로부터 서명 받기
<a name="quorum-admin-get-approval-signatures-chsm-cli"></a>

쿼럼 토큰이 있는 관리자는 다른 관리자로부터 토큰 승인을 받아야 합니다. 승인을 위해 다른 관리자는 서명 키를 사용하여 암호화 방식으로 토큰에 서명합니다. 이 절차는 HSM 외부에서 이루어집니다.

토큰에 서명하는 방법은 다양합니다. 다음 예제에서는 [OpenSSL](https://www.openssl.org/)을 사용한 작업 방법을 보여 줍니다. 다른 서명 도구를 사용하려면 해당 도구가 관리자의 개인 키(서명 키)를 사용하여 토큰의 SHA-256 다이제스트에 서명하는지 확인하십시오.

**Example – 승인 관리자로부터 서명 받기**  
이 예에서 토큰(`admin`)이 있는 관리자는 최소 두(2) 개의 승인이 필요합니다. 다음 예제 명령은 두(2) 명의 관리자가 OpenSSL을 사용하여 암호화 방식으로 토큰에 서명할 수 있는 방법을 보여줍니다.  

1. base64로 인코딩된 서명되지 않은 토큰을 디코딩하여 바이너리 파일에 배치합니다:

   ```
   $ echo -n '0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=' | base64 -d > admin.bin
   ```

1. OpenSSL과 승인자 `(admin3)`의 개별 개인 키를 사용하여 사용자 서비스에 대한 현재 바이너리 쿼럼의 서명되지 않은 토큰에 서명하고 바이너리 서명 파일을 생성합니다.

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

1. 바이너리 서명을 base64로 인코딩합니다.

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

1. 마지막으로, 앞서 승인자 서명에 대해 지정한 JSON 개체 리터럴 형식에 따라 base64로 인코딩된 서명을 복사하여 토큰 파일에 붙여넣습니다.

   ```
   {
     "version": "2.0",
     "approval_data": "AAEAAwAAABgAAAAAAAAAAJ9eFkfcP3mNzJAlfK+OWbNhZG1pbgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABj5vbeAAAAAAAAAAAAAQADAAAAFQAAAAAAAAAAW/v5Euk83amq1fij0zyvD2FkbWluAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGPm9t4AAAAAAAAAAAABAAMAAAAUAAAAAAAAAABDw2XDwfK4hB8a15Xh1E0nYWRtaW4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY+b23gAAAAAAAAAA",
     "token": "0l2LZkmAHZyAc1hPhyckOoVW33aGrgG77qmDHWQ3CJ8=",
     "signatures": [
       {
         "username": "admin2",
         "role": "admin",
         "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw=="
       },
       {
         "username": "admin3",
         "role": "admin",
         "signature": "O6qx7/mUaVkYYVr1PW7l8JJko+Kh3e8zBIqdk3tAiNy+1rW+OsDtvYujhEU4aOFVLcrUFmyB/CX9OQmgJLgx/pyK+ZPEH+GoJGqk9YZ7X1nOXwZRP9g7hKV+7XCtg9TuDFtHYWDpBfz2jWiu2fXfX4/jTs4f2xIfFPIDKcSP8fhxjQ63xEcCf1jzGha6rDQMu4xUWWdtDgfT7um7EJ9dXNoHqLB7cTzphaubNaEFbFPXQ1siGmYKmvETlqe/ssktwyruGFLpXs1n0tJOEglGhx2qbYTs+omKWZdORl5WIWEXW3IXw/Dg5vVObrNpvG0eZKO8nSMc27+cyPySc+ZbNw=="
       }
     ]
   }
   ```

## 3단계. AWS CloudHSM 클러스터에서 토큰을 승인하고 사용자 관리 작업을 실행합니다.
<a name="quorum-admin-approve-token-chsm-cli"></a>

이전 섹션에서 설명한 대로 관리자가 필요한 승인/서명을 받은 후 관리자는 다음 사용자 관리 작업 중 하나와 함께 해당 토큰을 AWS CloudHSM 클러스터에 제공할 수 있습니다.
+ **[생성](cloudhsm_cli-user-create.md)**
+ **[삭제](cloudhsm_cli-user-delete.md)**
+ **[암호-변경](cloudhsm_cli-user-change-password.md)**
+ **[user change-mfa](cloudhsm_cli-user-change-mfa.md)**

이러한 명령을 사용하는 방법은 [CloudHSM CLI를 사용하는 사용자 관리](manage-hsm-users-chsm-cli.md) 섹션을 참조하십시오.

트랜잭션 중에 토큰은 AWS CloudHSM 클러스터 내에서 승인되고 요청된 사용자 관리 작업을 실행합니다. 사용자 관리 작업의 성공 여부는 승인된 유효한 쿼럼 토큰과 유효한 사용자 관리 작업에 따라 결정됩니다.

관리자는 한 번의 작업에만 토큰을 사용할 수 있습니다. 해당 작업이 성공하면 토큰은 더 이상 유효하지 않습니다. 다른 HSM 사용자 관리 작업을 수행하려면 관리자가 위에 설명된 프로세스를 반복해야 합니다. 즉, 관리자는 새 쿼럼 토큰을 생성하고 승인자로부터 새 서명을 받은 다음 요청된 사용자 관리 작업을 통해 HSM에서 새 토큰을 승인하고 사용해야 합니다.

**참고**  
쿼럼 토큰은 현재 로그인 세션이 열려 있는 동안에만 유효합니다. CloudHSM CLI에서 로그아웃하거나 네트워크 연결이 끊기면 토큰은 더 이상 유효하지 않습니다. 마찬가지로 승인된 토큰은 CloudHSM CLI 내에서만 사용할 수 있습니다. 다른 애플리케이션에서 인증하는 데는 사용할 수 없습니다.

**Example 관리자로 새 사용자 생성**  
다음 예에서는 로그인한 관리자가 HSM에 새 사용자를 생성합니다.  

```
aws-cloudhsm > user create --username user1 --role crypto-user --approval /path/admin.token
Enter password:
Confirm password:
{
  "error_code": 0,
  "data": {
    "username": "user1",
    "role": "crypto-user"
  }
}
```
그후에 관리자는 **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": "user1",
        "role": "crypto-user",
        "locked": "false",
        "mfa": [],
        "quorum": [],
        "cluster-coverage": "full"
      },
      {
        "username": "app_user",
        "role": "internal(APPLIANCE_USER)",
        "locked": "false",
        "mfa": [],
        "quorum": [],
        "cluster-coverage": "full"
      }
    ]
  }
}
```
관리자가 다른 HSM 사용자 관리 작업을 수행하려고 하면 쿼럼 인증 오류로 인해 실패합니다.  

```
aws-cloudhsm > user delete --username user1 --role crypto-user
{
  "error_code": 1,
  "data": "Quorum approval is required for this operation"
}
```
아래와 같이 **quorum token-sign list** 명령을 실행하면 관리자에게 승인된 토큰이 없는 것으로 표시됩니다. 다른 HSM 사용자 관리 작업을 수행하려면 사용자 관리 작업을 실행하는 동안 승인되고 소비될 쿼럼 토큰을 제공하기 위해 관리자가 새 쿼럼 토큰을 생성하고 승인자로부터 새 서명을 받은 다음 --approval 인수와 함께 원하는 사용자 관리 작업을 실행해야 합니다.   

```
aws-cloudhsm > quorum token-sign list
{
  "error_code": 0,
  "data": {
    "tokens": []
  }
}
```

# CloudHSM CLI AWS CloudHSM 사용에 대한 쿼럼 최소값 변경
<a name="quorum-auth-chsm-cli-min-value"></a>

CloudHSM [관리자](understanding-users.md#admin)의 [쿼럼 최솟값을 설정](quorum-auth-chsm-cli-first-time.md#quorum-admin-set-quorum-minimum-value-chsm-cli)한 후 쿼럼 최솟값을 조정해야 할 수 있습니다. HSM에서는 승인자의 수가 현재 값에 도달하거나 그 이상인 경우에만 쿼럼 최솟값을 변경할 수 있습니다. 예를 들어 쿼럼 최솟값이 2인 경우 최소 두 명(2)의 관리자가 변경 사항을 승인해야 합니다.

**참고**  
사용자 서비스의 쿼럼 값은 항상 쿼럼 서비스의 쿼럼 값보다 작거나 같아야 합니다. 서비스 이름에 대한 자세한 내용은 [CloudHSM CLI를 사용한 쿼럼 인증에 지원되는 AWS CloudHSM 서비스 이름 및 유형](quorum-auth-chsm-cli-service-names.md) 섹션을 참조하세요.

쿼럼 최소값을 변경하기 위한 쿼럼 승인을 받으려면 **quorum token-sign set-quorum-value** 명령을 사용할 **quorum service**에 대한 *쿼럼 토큰*이 필요합니다. **quorum token-sign set-quorum-value** 명령을 사용할 **quorum service**에 대한 쿼럼 토큰을 생성하려면 쿼럼 서비스가 1보다 높아야 합니다. 즉, *사용자 서비스*의 쿼럼 최소값을 변경하려면 먼저 *쿼럼 서비스*의 쿼럼 최소값을 변경해야 할 수도 있습니다.

**관리자의 쿼럼 최솟값을 변경하기 위한 단계**

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. 현재 쿼럼 최솟값을 확인합니다.

   ```
   aws-cloudhsm > quorum token-sign list-quorum-values
   ```

1. 쿼럼 서비스의 쿼럼 최솟값이 사용자 서비스의 값보다 작은 경우 *쿼럼 서비스*의 값을 변경합니다.

   ```
   aws-cloudhsm > quorum token-sign set-quorum-value --service quorum --value <3>
   ```

1. 쿼럼 서비스에 대한 [쿼럼 토큰을 생성](quorum-auth-chsm-cli-admin.md#quorum-admin-gen-token-chsm-cli)합니다.

1. [다른 관리자의 승인(서명)을 받습니다](quorum-auth-chsm-cli-admin.md#quorum-admin-get-approval-signatures-chsm-cli).

1. [CloudHSM 클러스터에 토큰을 승인하고 사용자 관리 작업을 실행합니다](quorum-auth-chsm-cli-admin.md#quorum-admin-approve-token-chsm-cli).

1. *사용자 서비스*의 쿼럼 최솟값을 변경합니다.

   ```
   aws-cloudhsm > quorum token-sign set-quorum-value
   ```

**Example *쿼럼 서비스* 최솟값 조정**  

1. **현재 값을 확인 합니다**. 다음 예제는 *사용자 서비스*의 쿼럼 최솟값이 현재 2임을 보여줍니다.

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

1. **쿼럼 서비스 값을 변경합니다**. *쿼럼 서비스*의 쿼럼 최솟값을 *사용자 서비스*와 같거나 높은 값으로 설정합니다. 이 예제에서는 *쿼럼 서비스*의 쿼럼 최솟값을 이전 예제의 *사용자 서비스*에 설정된 값과 동일한 2로 설정합니다.

   ```
   aws-cloudhsm > quorum token-sign set-quorum-value --service quorum --value 2
   {
     "error_code": 0,
     "data": "Set quorum value successful"
   }
   ```

1. **변경 사항을 확인합니다**. 이 예제는 이제 *사용자 서비스* 및 *쿼럼 서비스*에 대한 쿼럼 최솟값이 2임을 보여줍니다.

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