

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

# 신뢰할 수 있는 키를 사용하여에서 데이터 키를 래핑하는 방법 AWS CloudHSM
<a name="wrap_keys_using_trusted"></a>

신뢰할 수 있는 키를 사용하여 데이터 키를 래핑하려면 세 가지 기본 단계를 완료해야 AWS CloudHSM합니다.

1. 신뢰할 수 있는 키로 래핑하려는 데이터 키의 경우 해당 `CKA_WRAP_WITH_TRUSTED` 속성을 true로 설정합니다.

1. 데이터 키를 래핑하려는 신뢰할 수 있는 키의 경우 해당 `CKA_TRUSTED` 속성을 true로 설정합니다.

1. 신뢰할 수 있는 키를 사용하여 데이터 키를 래핑합니다.

## 단계 1: `CKA_WRAP_WITH_TRUSTED` 데이터 키를 true로 설정
<a name="w2aac15c19c11b7"></a>

래핑하려는 데이터 키의 경우 다음 옵션 중 하나를 선택하여 키의 `CKA_WRAP_WITH_TRUSTED` 속성을 true로 설정합니다. 이렇게 하면 데이터 키가 제한되므로 애플리케이션은 신뢰할 수 있는 키만 사용하여 데이터를 래핑할 수 있습니다.

### 옵션 1: 새 키를 생성하는 경우 `CKA_WRAP_WITH_TRUSTED`는 true로 설정합니다.
<a name="w2aac15c19c11b7b5"></a>

[PKCS \$111](pkcs11-library.md), [JCE](java-library.md) 또한 [CloudHSM CLI](cloudhsm_cli.md) 사용하여 키를 생성합니다. 자세한 내용은 다음 예를 참조하십시오.

------
#### [ PKCS \$111 ]

PKCS \$111로 키를 생성하려면 키의 `CKA_WRAP_WITH_TRUSTED` 속성을 true로 설정해야 합니다. 다음 예제와 같이 이 속성을 `CK_ATTRIBUTE template` 키에 포함시킨 후 속성을 true로 설정하여 이 작업을 수행하십시오. 

```
CK_BYTE_PTR label = "test_key";
CK_ATTRIBUTE template[] = {
        {CKA_WRAP_WITH_TRUSTED, &true_val,         sizeof(CK_BBOOL)},
        {CKA_LABEL,             label,             strlen(label)},
        ...
};
```

자세한 내용은 [PKCS \$111 기반 키 생성을 보여주는 퍼블릭 샘플](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/generate)을 참조하십시오.

------
#### [ JCE ]

JCE를 사용하여 키를 생성하려면 키 `WRAP_WITH_TRUSTED` 속성을 true로 설정해야 합니다. 다음 예제와 같이 이 속성을 `KeyAttributesMap` 키에 포함시킨 후 속성을 true로 설정하여 이 작업을 수행하십시오. 

```
final String label = "test_key";
final KeyAttributesMap keySpec = new KeyAttributesMap();
keySpec.put(KeyAttribute.WRAP_WITH_TRUSTED, true);
keySpec.put(KeyAttribute.LABEL, label);
...
```

자세한 내용은 [JCE를 사용한 키 생성을 보여주는 퍼블릭 샘플](https://docs.aws.amazon.com/cloudhsm/latest/userguide/java-samples.html#java-samples-code_5)을 참조하십시오.

------
#### [ CloudHSM CLI ]

CloudHSM CLI를 사용하여 키를 생성하려면 `wrap-with-trusted` 키의 속성을 true로 설정해야 합니다. 키 생성 명령의 적절한 인수에 `wrap-with-trusted=true`를 포함시키면 됩니다.
+ 대칭 키의 경우 `attributes` 인수에 `wrap-with-trusted`를 추가합니다.
+ 퍼블릭 키의 경우 `public-attributes` 인수에 `wrap-with-trusted`를 추가합니다.
+ 프라이빗 키의 경우 `private-attributes` 인수에 `wrap-with-trusted`를 추가합니다.

키 페어에 대한 자세한 내용은 [CloudHSM CLI에서 generate-asymmetric-pair 범주](cloudhsm_cli-key-generate-asymmetric-pair.md) 단원을 참조하십시오.

대칭 키 생성에 대한 자세한 내용은 [CloudHSM CLI에서 generate-symmetric 범주](cloudhsm_cli-key-generate-symmetric.md) 단원을 참조하십시오.

------

### 옵션 2: 기존 키를 사용하는 경우 CloudHSM CLI를 사용하여 해당 `CKA_WRAP_WITH_TRUSTED` 키를 true로 설정합니다.
<a name="w2aac15c19c11b7b7"></a>

기존 키의 `CKA_WRAP_WITH_TRUSTED` 속성을 true로 설정하려면 다음 단계를 따르십시오.

1. [CloudHSM CLI를 사용하여 HSM에 로그인](cloudhsm_cli-login.md) 명령을 사용하여 CU(Crypto User)로 로그인합니다.

1. [CloudHSM CLI를 사용하여 키 속성 설정](cloudhsm_cli-key-set-attribute.md) 명령을 사용하여 키 `wrap-with-trusted` 속성을 true로 설정합니다.

   ```
   aws-cloudhsm > key set-attribute --filter attr.label=test_key --name wrap-with-trusted --value true
   {
     "error_code": 0,
     "data": {
       "message": "Attribute set successfully"
     }
   }
   ```

## 단계 2: 신뢰할 수 있는 키의 `CKA_TRUSTED`를 true로 설정합니다.
<a name="w2aac15c19c11b9"></a>

키를 신뢰할 수 있는 키로 만들려면 해당 `CKA_TRUSTED` 속성을 true로 설정해야 합니다. CloudHSM CLI 또는 CloudHSM 관리 유틸리티(CMU)를 사용하여 이 작업을 수행할 수 있습니다.
+ CloudHSM CLI를 사용하여 키의 `CKA_TRUSTED` 속성을 설정하는 경우 [CloudHSM CLI를 사용하여 키를 신뢰할 수 있는 것으로 표시](manage-keys-cloudhsm-cli-trusted.md) 단원을 참조하십시오. 
+ CMU를 사용하여 키의 `CKA_TRUSTED` 속성을 설정하는 경우 [AWS CloudHSM 관리 유틸리티를 사용하여 키를 신뢰할 수 있는 것으로 표시하는 방법](cloudhsm_using_trusted_keys_control_key_wrap.md) 단원을 참조하십시오. 

## 단계 3. 신뢰할 수 있는 키를 사용하여 데이터 키를 래핑합니다.
<a name="w2aac15c19c11c11"></a>

단계 1에서 참조한 데이터 키를 단계 2에서 설정한 신뢰할 수 있는 키로 래핑하려면 다음 링크의 코드 샘플을 참조하십시오. 각 그림은 키를 래핑하는 방법을 보여줍니다.
+ [AWS CloudHSM PKCS \$111 예제](https://github.com/aws-samples/aws-cloudhsm-pkcs11-examples/tree/master/src/wrapping)
+ [AWS CloudHSM JCE 예제](https://github.com/aws-samples/aws-cloudhsm-jce-examples/tree/sdk5/src/main/java/com/amazonaws/cloudhsm/examples)