

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

# 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에서만 사용할 수 있습니다