

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

# の JCE を使用したキー抽出 AWS CloudHSM
<a name="java-lib-configs-getencoded"></a>

Java Cryptography Extension (JCE) は、さまざまな暗号化実装をプラグインできるアーキテクチャを使用します。 は、暗号化オペレーションを HSM にオフロードする 1 つの JCE プロバイダーを AWS CloudHSM 出荷します。他のほとんどの JCE プロバイダーが AWS CloudHSM に保存されているキーを操作するには、HSM のキーバイトをクリアテキストでマシンのメモリに抽出して使用する必要があります。HSM では通常、キーを ラップされたオブジェクト としてのみ抽出でき、クリアテキストとして抽出することはできません。ただし、プロバイダー間の統合のユースケースをサポートするために、 では、クリアでキーバイトの抽出を有効にするオプトイン設定オプション AWS CloudHSM を許可します。

**重要**  
JCE は、AWS CloudHSM プロバイダーが指定されるか、 AWS CloudHSM キーオブジェクトが使用される AWS CloudHSM たびに、オペレーションを にオフロードします。HSM 内でオペレーションが行われることが予想される場合は、キーを明確に抽出する必要はありません。クリアテキストでのキー抽出が必要なのは、サードパーティのライブラリや JCE プロバイダーの制限により、アプリケーションがキーのラップやラップ解除などの安全なメカニズムを使用できない場合のみです。

 AWS CloudHSM JCE プロバイダーは、デフォルトで外部 JCE プロバイダーと連携する**パブリックキー**の抽出を許可します。以下の方法は常に許可されています。


| Class | 方法 | Format (getEncoded) | 
| --- | --- | --- | 
| EcPublicKey | getEncoded () | X.509 | 
|  | getW() | 該当なし | 
| RSAPublicKey | getEncoded () | X.509 | 
|  | getPublicExponent() | 該当なし | 
| CloudHsmRsaPrivateCrtKey | getPublicExponent() | 該当なし | 

 AWS CloudHSM JCE プロバイダーは、デフォルトで**プライベート**キーまたは**シー**クレットキーに対してクリアなキーバイトの抽出を許可しません。ユースケースで必要な場合は、以下の条件で **プライベート** または **シークレット** キーのキーバイトを消去して抽出できます。

1. プライベートまたはシークレットキーの `EXTRACTABLE` 属性は「**true**」に設定されています。
   + デフォルトでは、プライベートキーとシークレットキーの `EXTRACTABLE` 属性は「**true**」に設定されています。`EXTRACTABLE` キーは HSM からのエクスポートが許可されているキーです。詳細については、「[クライアント SDK 5 向け](java-lib-attributes_5.md)サポートされている Java 属性」を参照してください。

1. プライベートキーとシークレットキーの `WRAP_WITH_TRUSTED` 属性は「**false**」に設定されます。
   + `getEncoded`、`getPrivateExponent`、`getS`およびクリアでエクスポートできないプライベートキーでは使用できません。`WRAP_WITH_TRUSTED` は、プライベートキーを HSM からクリアにエクスポートすることはできません。詳細については、「[信頼できるキーを使ったキーのアンラップの制御](manage-keys-using-trusted-keys.md)」を参照してください。

# JCE プロバイダーがプライベートキーシークレットを から抽出することを許可する AWS CloudHSM
<a name="get-encoded-take-out-private-keys"></a>

次の手順を使用して、 AWS CloudHSM JCE プロバイダーがプライベートキーシークレットを抽出できるようにします。

**重要**  
この設定変更により、HSM クラスターからすべてのクリアの `EXTRACTABLE` キーバイトを抽出できるようになります。セキュリティを高めるには、[キーラッピング方法](java-lib-supported_5.md)を使用して HSM から安全にキーを抽出することを検討してください。これにより、HSM からキーバイトが意図せず抽出されるのを防ぐことができます。

1. 以下のコマンドを使用して、**プライベート** キーと **シークレット** キーを JCE で抽出できるようにします。

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

   ```
   $ /opt/cloudhsm/bin/configure-jce --enable-clear-key-extraction-in-software
   ```

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

   ```
   PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" --enable-clear-key-extraction-in-software
   ```

------

1. クリアキー抽出を有効にすると、以下の方法でプライベートキーをメモリーに抽出できるようになります。    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/get-encoded-take-out-private-keys.html)

JCE がキーをクリアでエクスポートできないようにして、デフォルトの動作に戻したい場合は、以下のコマンドを実行します。

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

```
$ /opt/cloudhsm/bin/configure-jce --disable-clear-key-extraction-in-software
```

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

```
PS C:\> & "C:\Program Files\Amazon\CloudHSM\bin\configure-jce.exe" --disable-clear-key-extraction-in-software
```

------