

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

# AWS CloudHSM KMU를 사용한 키 관리
<a name="manage-keys-kmu-cmu"></a>

[최신 SDK 버전 시리즈](use-hsm.md)를 사용하는 경우 [CloudHSM CLI](cloudhsm_cli.md)를 사용하여 AWS CloudHSM 클러스터의 키를 관리합니다.

[이전 SDK 버전 시리즈](choose-client-sdk.md)를 사용하는 경우 key\$1mgmt\$1util(KMU) 명령줄 도구를 사용하여 AWS CloudHSM 클러스터의 하드웨어 보안 모듈(HSM)에서 키를 관리할 수 있습니다. 키를 관리하려면 먼저 AWS CloudHSM 클라이언트를 시작하고 key\$1mgmt\$1util을 시작한 다음 HSMs에 로그인해야 합니다. 자세한 내용은 [key\$1mgmt\$1util 시작](key_mgmt_util-getting-started.md)을 참조하십시오.
+ [신뢰할 수 있는 키 사용](cloudhsm_using_trusted_keys_control_key_wrap.md)에서는 PKCS \$111 라이브러리 속성 및 CMU를 사용하여 신뢰할 수 있는 키를 생성하여 데이터를 보호하는 방법을 설명합니다.
+ [키 생성](generate-keys.md)에는 대칭 키, RSA 키 및 EC 키 등 키 생성에 대한 지침이 나와 있습니다.
+ [키 가져오기](import-keys.md)는 키 소유자가 키를 가져오는 방법에 대한 자세한 정보를 제공합니다.
+ [키 내보내기](export-keys.md)는 키 소유자가 키를 내보내는 방법에 대한 자세한 정보를 제공합니다.
+ [키 삭제](delete-keys.md)는 키 소유자가 키를 삭제하는 방법에 대한 자세한 정보를 제공합니다.
+ [키 공유 및 공유 해제](share-keys.md)에는 키 소유자가 키를 공유하고 공유를 해제하는 방법에 대한 자세한 정보를 제공합니다.

# AWS CloudHSM KMU를 사용하여 키 생성
<a name="generate-keys"></a>

하드웨어 보안 모듈(HSM)에서 키를 생성하려면 생성하려는 키 유형에 해당하는 AWS CloudHSM key\$1mgmt\$1util(KMU)의 명령을 사용합니다.

**Topics**
+ [대칭 키 생성하기](generate-symmetric-keys.md)
+ [RSA 키 쌍 생성하기](generate-rsa-key-pairs.md)
+ [ECC(타원 곡선 암호) 키 쌍 생성하기](generate-ecc-key-pairs.md)

# AWS CloudHSM KMU를 사용하여 대칭 키 생성
<a name="generate-symmetric-keys"></a>

 AWS CloudHSM key\$1mgmt\$1util(KMU)의 [genSymKey](key_mgmt_util-genSymKey.md) 명령을 사용하여 AES 및 기타 유형의 대칭 키를 생성합니다 AWS CloudHSM. 사용 가능한 옵션을 모두 확인하려면 **genSymKey -h** 명령을 사용합니다.

다음은 256비트 AES 키를 생성하는 예제입니다.

```
Command: genSymKey -t 31 -s 32 -l aes256
Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

Symmetric Key Created.  Key Handle: 524295

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

# AWS CloudHSM KMU를 사용하여 RSA 키 페어 생성
<a name="generate-rsa-key-pairs"></a>

에 대한 RSA 키 페어를 생성하려면 AWS CloudHSM key\$1mgmt\$1util에서 [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) 명령을 AWS CloudHSM사용합니다. 사용 가능한 옵션을 모두 확인하려면 **genRSAKeyPair -h** 명령을 사용합니다.

다음은 RSA 2048비트 키 페어를 생성하는 예제입니다.

```
Command: genRSAKeyPair -m 2048 -e 65537 -l rsa2048
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair:    public key handle: 524294    private key handle: 524296

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

# AWS CloudHSM KMU를 사용하여 ECC(타원 곡선 암호화) 키 페어 생성
<a name="generate-ecc-key-pairs"></a>

에 대한 ECC 키 페어를 생성하려면 AWS CloudHSM key\$1mgmt\$1util에서 [genECCKeyPair](key_mgmt_util-genECCKeyPair.md) 명령을 AWS CloudHSM사용합니다. 지원되는 타원 곡선 목록을 포함하여 사용 가능한 옵션을 모두 확인하려면 **genECCKeyPair -h** 명령을 사용합니다.

다음 예제에서는 [NIST FIPS 간행물 186-4](http://dx.doi.org/10.6028/NIST.FIPS.186-4)에 정의된 P-384 타원 곡선을 사용하여 ECC 키 페어를 생성합니다.

```
Command: genECCKeyPair -i 14 -l ecc-p384
Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

Cfm3GenerateKeyPair:    public key handle: 524297    private key handle: 524298

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

# AWS CloudHSM KMU를 사용하여 키 가져오기
<a name="import-keys"></a>

 AWS CloudHSM key\$1mgmt\$1util을 사용하여 보안 키, 즉 대칭 키와 비대칭 프라이빗 키를 하드웨어 보안 모듈(HSM)로 가져오려면 먼저 HSM에서 래핑 키를 생성해야 합니다. 래핑 키 없이 퍼블릭 키를 바로 가져올 수 있습니다.

**Topics**
+ [보안 키 가져오기](import-secret-keys.md)
+ [퍼블릭 키 가져오기](import-public-keys.md)

# AWS CloudHSM KMU를 사용하여 보안 키 가져오기
<a name="import-secret-keys"></a>

key\$1mgmt\$1util(KMU)을 AWS CloudHSM 사용하여 보안 키를 로 가져오려면 다음 단계를 완료합니다. 보안 키를 가져오려면 파일에 키를 저장합니다. 대칭적 키를 원시 바이트로 저장하고 비대칭적 프라이빗 키를 PEM 형식으로 저장합니다.

이 예제는 평문 보안 키를 파일에서 HSM으로 가져오는 방법을 보여 줍니다. 암호화된 키를 파일에서 HSM으로 가져오려면 [unWrapKey](key_mgmt_util-unwrapKey.md) 명령을 사용합니다.

**보안 키를 가져오려면**

1. [genSymKey](key_mgmt_util-genSymKey.md) 명령을 사용하여 래핑 키를 생성합니다. 다음 명령은 현재 세션에 대해서만 유효한 128비트 AES 래핑 키를 생성합니다. 세션 키 또는 영구 키를 래핑 키로 사용할 수 있습니다.

   ```
   Command: genSymKey -t 31 -s 16 -sess -l import-wrapping-key
   Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS
   
   Symmetric Key Created.  Key Handle: 524299
   
   Cluster Error Status
   Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
   ```

1. 가져오는 보안 키의 유형에 따라 다음 명령 중 하나를 사용합니다.
   + 대칭 키를 가져오려면 [imSymKey](key_mgmt_util-imSymKey.md) 명령을 사용합니다. 다음 명령은 이전 단계에서 생성한 래핑 키를 사용하여 `aes256.key`라는 파일의 AES 키를 가져옵니다. 사용 가능한 옵션을 모두 확인하려면 **imSymKey -h** 명령을 사용합니다.

     ```
     Command: imSymKey -f aes256.key -t 31 -l aes256-imported -w 524299
     Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS
     
     Symmetric Key Unwrapped.  Key Handle: 524300
     
     Cluster Error Status
     Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
     Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
     Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
     ```
   + 비대칭 프라이빗 키를 가져오려면 [importPrivateKey](key_mgmt_util-importPrivateKey.md) 명령을 사용합니다. 다음 명령은 이전 단계에서 생성한 래핑 키를 사용하여 `rsa2048.key`라는 파일의 프라이빗 키를 가져옵니다. 사용 가능한 옵션을 모두 확인하려면 **importPrivateKey -h** 명령을 사용합니다.

     ```
     Command: importPrivateKey -f rsa2048.key -l rsa2048-imported -w 524299
     BER encoded key length is 1216
     
     Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS
     
     Private Key Unwrapped.  Key Handle: 524301
     
     Cluster Error Status
     Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
     Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
     Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
     ```

# AWS CloudHSM KMU를 사용하여 퍼블릭 키 가져오기
<a name="import-public-keys"></a>

 AWS CloudHSM key\$1mgmt\$1util(KMU)에서 [importPubKey](key_mgmt_util-importPubKey.md) 명령을 사용하여 퍼블릭 키를 HSM으로 가져옵니다. 사용 가능한 옵션을 모두 확인하려면 **importPubKey -h** 명령을 사용합니다.

다음 예제에서는 `rsa2048.pub`라는 파일에서 RSA 퍼블릭 키를 가져옵니다.

```
Command: importPubKey -f rsa2048.pub -l rsa2048-public-imported
Cfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS

Public Key Handle: 524302

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

# AWS CloudHSM KMU를 사용하여 키 내보내기
<a name="export-keys"></a>

 AWS CloudHSM key\$1mgmt\$1util(KMU)을 사용하여 하드웨어 보안 모듈(HSM)에서 대칭 키와 비대칭 프라이빗 키와 같은 AWS CloudHSM 보안 키를 내보내려면 먼저 래핑 키를 생성해야 합니다. 래핑 키 없이 퍼블릭 키를 바로 내보낼 수 있습니다.

키 소유자만 키를 내보낼 수 있습니다. 다른 사용자의 키를 공유하는 사용자는 해당 키를 암호화 작업에 사용할 수는 있지만 내보낼 수는 없습니다. 이 예제를 실행할 때 본인이 생성한 키를 내보내야 합니다.

**중요**  
[exSymKey](key_mgmt_util-exSymKey.md) 명령은 보안 키의 평문(암호화되지 않은) 사본을 파일에 기록합니다. 내보내기 절차에 래핑 키가 필요하지만, 파일의 키는 래핑된 키가 ***아닙니다***. 키의 래핑된(암호화된) 사본을 내보내려면 [wrapKey](key_mgmt_util-wrapKey.md) 명령을 사용합니다.

**Topics**
+ [보안 키 내보내기](export-secret-keys.md)
+ [퍼블릭 키 내보내기](export-public-keys.md)

# AWS CloudHSM KMU를 사용하여 보안 암호 키 내보내기
<a name="export-secret-keys"></a>

key\$1mgmt\$1util(KMU)을 AWS CloudHSM 사용하여에서 보안 키를 내보내려면 다음 단계를 완료합니다.

**보안 키를 내보내려면**

1. [genSymKey](key_mgmt_util-genSymKey.md) 명령을 사용하여 래핑 키를 생성합니다. 다음 명령은 현재 세션에 대해서만 유효한 128비트 AES 래핑 키를 생성합니다.

   ```
   Command: genSymKey -t 31 -s 16 -sess -l export-wrapping-key
   Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS
   
   Symmetric Key Created.  Key Handle: 524304
   
   Cluster Error Status
   Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
   ```

1. 내보내는 보안 키의 유형에 따라 다음 명령 중 하나를 사용합니다.
   + 대칭적 키를 내보내려면 [exSymKey](key_mgmt_util-exSymKey.md) 명령을 사용합니다. 다음 명령은 AES 키를 `aes256.key.exp`라는 파일로 내보냅니다. 사용 가능한 옵션을 모두 확인하려면 **exSymKey -h** 명령을 사용합니다.

     ```
     Command: exSymKey -k 524295 -out aes256.key.exp -w 524304
     Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS
     
     
     Wrapped Symmetric Key written to file "aes256.key.exp"
     ```
**참고**  
명령의 출력은 "Wrapped Symmetric Key"가 출력 파일에 기록되었음을 보여 줍니다. 하지만 출력 파일은 평문(래핑되지 않은) 키를 포함합니다. 래핑된(암호화된) 키를 파일로 내보내려면 [wrapKey](key_mgmt_util-wrapKey.md) 명령을 사용합니다.
   + 프라이빗 키를 내보내려면 **exportPrivateKey** 명령을 사용합니다. 다음 명령은 프라이빗 키를 `rsa2048.key.exp`라는 파일로 내보냅니다. 사용 가능한 옵션을 모두 확인하려면 **exportPrivateKey -h** 명령을 사용합니다.

     ```
     Command: exportPrivateKey -k 524296 -out rsa2048.key.exp -w 524304
     Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS
     
     Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS
     
     PEM formatted private key is written to rsa2048.key.exp
     ```

# AWS CloudHSM KMU를 사용하여 퍼블릭 키 내보내기
<a name="export-public-keys"></a>

 AWS CloudHSM key\$1mgmt\$1util(KMU)의 **exportPubKey** 명령을 사용하여 퍼블릭 키를 내보냅니다. 사용 가능한 옵션을 모두 확인하려면 **exportPubKey -h** 명령을 사용합니다.

다음 예제에서는 `rsa2048.pub.exp`라는 파일로 RSA 퍼블릭 키를 내보냅니다.

```
Command: exportPubKey -k 524294 -out rsa2048.pub.exp
PEM formatted public key is written to rsa2048.pub.key

Cfm3ExportPubKey returned: 0x00 : HSM Return: SUCCESS
```

# KMU 및 CMU를 사용하여 키 삭제
<a name="delete-keys"></a>

다음 예제에 나온 바와 같이 [deleteKey](key_mgmt_util-deleteKey.md) 명령을 사용하여 키를 삭제합니다. 키 소유자만 키를 삭제할 수 있습니다.

```
Command: deleteKey -k 524300
Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

Cluster Error Status
Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```

# KMU 및 CMU를 사용하여 키 공유 및 공유 해제
<a name="share-keys"></a>

에서는 키를 생성하는 AWS CloudHSM CU가 키를 소유합니다. 소유자는 키를 관리하고, 키를 내보내거나 삭제할 수 있고, 암호화 작업에 키를 사용할 수 있습니다. 또한 사용자는 다른 CU 사용자와 키를 공유할 수 있습니다. 다른 사용자의 키를 공유하는 사용자는 해당 키를 암호화 작업에 사용할 수는 있지만 키를 내보내거나 삭제할 수 없고 다른 사용자와 공유할 수 없습니다.

[genSymKey](key_mgmt_util-genSymKey.md) 또는 [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) 명령의 `-u` 파라미터를 사용하는 등 키를 생성할 때 다른 CU 사용자와 키를 공유할 수 있습니다. 다른 HSM 사용자와 기존 키를 공유하려면 [cloudhsm\$1mgmt\$1util](cloudhsm_mgmt_util.md) 명령줄 도구를 사용합니다. [key\$1mgmt\$1util](key_mgmt_util.md) 명령줄 도구를 사용하는 이 단원의 대부분의 작업과는 다른 작업입니다.

키를 공유하려면 먼저 cloudhsm\$1mgmt\$1util을 시작하고 종단 간 암호화를 활성화한 다음, HSM에 로그인해야 합니다. 키를 공유하려면 키를 소유하는 CU(Crypto User)로 HSM에 로그인합니다. 키 소유자만이 키를 공유할 수 있습니다.

**shareKey** 명령을 사용하여 키를 공유 또는 공유 해제하고, 키의 핸들과 사용자의 ID를 지정합니다. 한 명 이상의 사용자와 키를 공유 또는 공유 해제하려면 쉼표로 구분된 사용자 ID 목록을 지정합니다. 키를 공유하려면 다음 예제에 나온 바와 같이 `1`을 명령의 마지막 파라미터로 사용합니다. 공유를 해제하려면 `0`을 사용합니다.

```
aws-cloudhsm > shareKey 524295 4 1
*************************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
shareKey success on server 0(10.0.2.9)
shareKey success on server 1(10.0.3.11)
shareKey success on server 2(10.0.1.12)
```

다음은 **shareKey** 명령의 구문을 보여 줍니다.

```
aws-cloudhsm > shareKey <key handle> <user ID> <Boolean: 1 for share, 0 for unshare>
```

# AWS CloudHSM 관리 유틸리티를 사용하여 키를 신뢰할 수 있는 것으로 표시하는 방법
<a name="cloudhsm_using_trusted_keys_control_key_wrap"></a>

이 섹션의 내용은 AWS CloudHSM 관리 유틸리티(CMU)를 사용하여 키를 신뢰할 수 있는 것으로 표시하는 방법에 대한 지침을 제공합니다.

1. [loginHSM](cloudhsm_mgmt_util-loginLogout.md) 명령을 사용하여 암호화폐 책임자 (CO) 로 로그인합니다.

1. `OBJ_ATTR_TRUSTED`(값`134`) 을 true () 로 설정한 상태에서 [CMU를 사용하여 AWS CloudHSM 키의 속성 설정](cloudhsm_mgmt_util-setAttribute.md) 명령을 사용하십시오. `1` 

   ```
   aws-cloudhsm > setAttribute <Key Handle> 134 1
   ```