

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 信頼されたキーを使用して でデータキーをラップする方法 AWS CloudHSM
<a name="wrap_keys_using_trusted"></a>

信頼されたキーを使用してデータキーをラップするには AWS CloudHSM、3 つの基本的なステップを完了する必要があります。

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 \#11](pkcs11-library.md)、[JCE](java-library.md)、または [CloudHSM CLI](cloudhsm_cli.md) を使用してキーを生成します。詳細については、次の例を参照してください。

------
#### [ PKCS \#11 ]

PKCS \#11 でキーを生成するには、キーの `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 \#11 によるキーの生成を実演する公開サンプル](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) コマンドを使用して、Crypto User (CU) としてログインします。

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 \#11 の例](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)