

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

# AWS CloudHSM キー管理ユーティリティコマンドのリファレンス
<a name="key_mgmt_util-reference"></a>

**key\$1mgmt\$1util** コマンドラインツールは、キーとその属性の作成、削除、検索など、 AWS CloudHSM クラスター内のハードウェアセキュリティモジュール (HSM) のキーを管理するのに役立ちます。このトピックでは、このツールに含まれている各コマンドについて詳しく説明します。

クイックスタートについては、「[AWS CloudHSM key\$1mgmt\$1util の開始方法](key_mgmt_util-getting-started.md)」を参照してください。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。クラスターの HSM とユーザーを管理するコマンドを含む cloudhsm\$1mgmt\$1util コマンドラインツールについては、[AWS CloudHSM 管理ユーティリティ (CMU)](cloudhsm_mgmt_util.md) を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

すべての key\$1mgmt\$1util コマンドを一覧表示するには、次のように入力します。

```
Command: help
```

特定の key\$1mgmt\$1util コマンドのヘルプを表示するには、次のように入力します。

```
Command: <command-name> -h
```

key\$1mgmt\$1util セッションを終了するには、次のように入力します。

```
Command: exit
```

次のトピックでは、key\$1mgmt\$1util のコマンドについて説明します。

**注記**  
key\$1mgmt\$1util と cloudhsm\$1mgmt\$1util のコマンドには、同じ名前のものがあります。ただし、コマンドは通常、構文が異なり、出力が異なり、機能がわずかに異なります。


| コマンド | 説明 | 
| --- | --- | 
|  [aesWrapUnwrap](key_mgmt_util-aesWrapUnwrap.md) | ファイルのキーの内容を暗号化および復号します。 | 
| [deleteKey](key_mgmt_util-deleteKey.md) | HSM からキーを削除します。 | 
| [Error2String](key_mgmt_util-Error2String.md) | key\$1mgmt\$1util 16 進エラーコードに対応するエラーを取得します。 | 
| [exit](key_mgmt_util-exit.md) | key\$1mgmt\$1util を終了します。 | 
| [exportPrivateKey](key_mgmt_util-exportPrivateKey.md) | プライベートキーのコピーを HSM からディスク上のファイルにエクスポートします。 | 
| [exportPubKey](key_mgmt_util-exportPubKey.md) | パブリックキーのコピーを HSM からファイルにエクスポートします。 | 
| [exSymKey](key_mgmt_util-exSymKey.md) | 対称キーのプレーンテキストコピーを HSM からファイルにエクスポートします。 | 
| [extractMaskedObject](key_mgmt_util-extractMaskedObject.md) | HSM のキーをマスクされたオブジェクトとして抽出します。 | 
| [findKey](key_mgmt_util-findKey.md) | キーの属性値に基づいてキーを検索します。 | 
| [findSingleKey](key_mgmt_util-findSingleKey.md) |  クラスターのすべての HSM にキーが存在することを検証します。 | 
| [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md) |  [ デジタル署名アルゴリズム](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) (DSA) キーペアを HSM に生成します。 | 
| [genECCKeyPair](key_mgmt_util-genECCKeyPair.md) |  [楕円曲線暗号](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) (ECC) キーペアを HSM に生成します。 | 
| [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) |  [RSA](https://en.wikipedia.org/wiki/RSA_%28cryptosystem%29) 非対称キーペアを HSM に生成します。 | 
| [genSymKey](key_mgmt_util-genSymKey.md) |  対称キーを HSM に生成します。 | 
| [getAttribute](key_mgmt_util-getAttribute.md) |  AWS CloudHSM キーの属性値を取得し、ファイルに書き込みます。 | 
| [getCaviumPrivKey](key_mgmt_util-getCaviumPrivKey.md) |  プライベートキーのフェイク PEM 形式バージョンを作成し、ファイルにエクスポートします。  | 
| [getCert](key_mgmt_util-getCert.md) |  HSM のパーティション証明書を取得し、それをファイルに保存します。  | 
| [getKeyInfo](key_mgmt_util-getKeyInfo.md) |  キーを使用できるユーザーの HSM ユーザー ID を取得します。 キーがクォーラム制御されている場合は、クォーラムのユーザー数を取得します。 | 
| [help](key_mgmt_util-help.md) |  key\$1mgmt\$1util で使用可能なコマンドに関するヘルプ情報を表示します。  | 
| [importPrivateKey](key_mgmt_util-importPrivateKey.md) | プライベートキーを HSM にインポートします。 | 
| [importPubKey](key_mgmt_util-importPubKey.md) | パブリックキーを HSM にインポートします。 | 
| [imSymKey](key_mgmt_util-imSymKey.md) |  対称キーのプレーンテキストコピーをファイルから HSM 内にインポートします。  | 
| [insertMaskedObject](key_mgmt_util-insertMaskedObject.md) | ディスク上のファイルにあるマスクされたオブジェクトを、そのオブジェクトの元のクラスターの関連クラスターに格納されている HSM に挿入します。関連クラスターとは、[元のクラスターのバックアップから生成された](create-cluster-from-backup.md)クラスターを指します。 | 
| [KMU AWS CloudHSM を使用してキーファイルを検証する](key_mgmt_util-IsValidKeyHandlefile.md) | あるファイルに、実際のプライベートキーとサンプルの PEM キーのどちらが含まれているかを特定します。 | 
| [listAttributes](key_mgmt_util-listAttributes.md) |   AWS CloudHSM キーの属性とそれを表す定数を一覧表示します。 | 
| [listUsers](key_mgmt_util-listUsers.md) |  HSM のユーザー、そのユーザータイプと ID、およびその他の属性を取得します。 | 
| [loginHSM および logoutHSM](key_mgmt_util-loginHSM.md) |  クラスターの HSM でログインおよびログアウトを行います。  | 
| [setAttribute](key_mgmt_util-setAttribute.md) | セッションキーを永続キーに変換します。 | 
| [sign](key_mgmt_util-sign.md) | 選択されたプライベートキーを使ってファイルのための署名を生成します。 | 
| [unWrapKey](key_mgmt_util-unwrapKey.md) |  ラップ (暗号化) されたキーをファイルから HSM 内にインポートします。 | 
| [verify](key_mgmt_util-verify.md) | 特定のファイルへの署名に特定のキーが使用されたかどうかを検証します。 | 
| [wrapKey](key_mgmt_util-wrapKey.md) |  キーの暗号化されたコピーを HSM からファイルにエクスポートします。  | 

# KMU を使用して AWS CloudHSM ファイルを暗号化および復号する
<a name="key_mgmt_util-aesWrapUnwrap"></a>

 AWS CloudHSM key\$1mgmt\$1util の **aesWrapUnwrap** コマンドを使用して、ディスク上のファイルの内容を暗号化または復号します。このコマンドは、暗号化キーをラップおよびラップ解除するように設計されていますが、4 KB (4096 バイト) 未満のデータを含むすべてのファイルに使用できます。

**aesWrapUnwrap** は、PKCS \$15 パディングを使用する AES キーラップを使用します。HSM で、ラップまたはラップ解除キーとして、AES キーを使用します。その後、ディスク上の別のファイルに結果が書き込まれます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="aesWrapUnwrap-syntax"></a>

```
aesWrapUnwrap -h

aesWrapUnwrap -m <wrap-unwrap mode>
              -f <file-to-wrap-unwrap> 
              -w <wrapping-key-handle>               
              [-i <wrapping-IV>] 
              [-out <output-file>]
```

## 例
<a name="aesWrapUnwrap-examples"></a>

以下の例では、**aesWrapUnwrap** を使用してファイルの暗号化キーを暗号化および復号する方法を示します。

**Example : 暗号化キーをラップする**  
次のコマンドでは、**aesWrapUnwrap** を使用して[プレーンテキストで HSM からエクスポートされた](key_mgmt_util-exSymKey.md) Triple DES 対称キーを `3DES.key` ファイルにラップします。同様のコマンドを使用して、ファイルに保存されたキーをラップできます。  
コマンドは、ラップモードを示す `1` の値で `-m` パラメータを使用します。`-w` パラメータを使用して HSM の AES キー (キーハンドル `6`) をラップキーとして指定します。ラップしたキーは `3DES.key.wrapped` ファイルに書き込まれます。  
出力は、コマンドが正常に実行され、推奨されているデフォルトの IV をオペレーションが使用したことを示しています。  

```
 Command:  aesWrapUnwrap -f 3DES.key -w 6 -m 1 -out 3DES.key.wrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
49 49 E2 D0 11 C1 97 22
17 43 BD E3 4E F4 12 75
8D C1 34 CF 26 10 3A 8D
6D 0A 7B D5 D3 E8 4D C2
79 09 08 61 94 68 51 B7

result written to file 3DES.key.wrapped

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

**Example : 暗号化キーをラップ解除する**  
次の例では、**aesWrapUnwrap** を使用してラップ (暗号化) したキーをラップ解除 (復号) する方法を示します。HSM にキーをインポートする前に次のようなオペレーションを実行できます。たとえば、暗号化されたキーを [imSymKey](key_mgmt_util-imSymKey.md) コマンドでインポートしようとすると、暗号化されたキーには、該当タイプのプレーンテキストキーに必要な形式がないため、エラーが返されます。  
コマンドは `3DES.key.wrapped` ファイルのキーをラップ解除し、プレーンテキストを `3DES.key.unwrapped` ファイルに書き込みます。コマンドは、ラップ解除モードを示す `-m` の値で `0` パラメータを使用します。`-w` パラメータを使用して HSM の AES キー (キーハンドル `6`) をラップキーとして指定します。ラップしたキーは `3DES.key.unwrapped` ファイルに書き込まれます。  

```
 Command:  aesWrapUnwrap -m 0 -f 3DES.key.wrapped -w 6 -out 3DES.key.unwrapped

        Warning: IV (-i) is missing.
                 0xA6A6A6A6A6A6A6A6 is considered as default IV
result data:
14 90 D7 AD D6 E4 F5 FA
A1 95 6F 24 89 79 F3 EE
37 21 E6 54 1F 3B 8D 62

result written to file 3DES.key.unwrapped

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

## パラメータ
<a name="aesWrapUnwrap-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-m**  
モードを指定します。ファイルの内容をラップ (暗号化) するには「`1`」と入力します。ファイルの内容をラップ解除 (復号) するには「`0`」と入力します。  
必須: はい

**-f**  
ラップするファイルを指定します。4 KB (4096 バイト) 未満のデータを含むファイルを入力します。このオペレーションは、暗号化キーをラップおよびラップ解除するように設計されています。  
必須: はい

**-w**  
ラップキーを指定します。HSM で AES キーのキーハンドルを入力します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
ラッピングキーを作成するには、[genSymKey](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を生成します。  
必須: はい

**-i**  
アルゴリズムの代替の初期値 (IV) を指定します。代替を必要とする特殊な条件がなければ、デフォルト値を使用します。  
デフォルト: `0xA6A6A6A6A6A6A6A6`。デフォルト値は [AES キーのラップ](https://tools.ietf.org/html/rfc3394)のアルゴリズム仕様で定義されています。  
必須: いいえ

**-out**  
ラップまたはラップ解除されたキーを含む出力ファイルに代わりの名前を指定します。デフォルトは、ローカルディレクトリの `wrapped_key` (ラップオペレーション) および `unwrapped_key` (ラップ解除オペレーション) です。  
既存のファイルがある場合、**aesWrapUnwrap** は警告なしに上書きされます。コマンドが失敗すると、**aesWrapUnwrap** で内容のない出力ファイルが作成されます。  
デフォルト: ラップ: `wrapped_key`。ラップ解除: `unwrapped_key`。  
必須: いいえ

## 関連トピック
<a name="aesWrapUnwrap-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)

# KMU を使用して AWS CloudHSM キーを削除する
<a name="key_mgmt_util-deleteKey"></a>

key AWS CloudHSM \$1mgmt\$1util の **deleteKey** コマンドを使用して、 AWS CloudHSM クラスターのハードウェアセキュリティモジュール (HSM) からキーを削除します。一度に削除できるキーは 1 つだけです。キーペアの一方のキーを削除しても、ペアの他方のキーには影響がありません。

キーを削除できるのは、キー所有者のみです。キーを共有するユーザーは、キーを暗号化オペレーションで使用することはできますが、削除することはできません。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="deleteKey-syntax"></a>

```
deleteKey -h 

deleteKey -k
```

## 例
<a name="deleteKey-examples"></a>

以下の例では、**deleteKey** を使用してキーを HSM から削除する方法を示します。

**Example : キーを削除する**  
次のコマンドでは、キーハンドルが `6` のキーを削除します。コマンドが成功すると、**deleteKey** はクラスターの各 HSM から成功メッセージを返します。  

```
Command: deleteKey -k 6

        Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

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

**Example : キーを削除する (失敗)**  
指定したキーハンドルに対応するキーがないためにコマンドが失敗すると、**deleteKey** はオブジェクトハンドルが無効であるというエラーメッセージを返します。  

```
Command: deleteKey -k 252126

        Cfm3FindKey returned: 0xa8 : HSM Error: Invalid object handle is passed to this operation

        Cluster Error Status
        Node id 1 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation
        Node id 2 and err state 0x000000a8 : HSM Error: Invalid object handle is passed to this operation
```
現在のユーザーがキーの所有者ではないためにコマンドが失敗すると、コマンドはアクセス拒否エラーを返します。  

```
Command:  deleteKey -k 262152

Cfm3DeleteKey returned: 0xc6 : HSM Error: Key Access is denied.
```

## パラメータ
<a name="deleteKey-parameters"></a>

**-h**  
コマンドのコマンドラインヘルプを表示します   
必須: はい

**-k**  
削除するキーのキーハンドルを指定します。HSM のキーのキーハンドルを確認するには、[findKey](key_mgmt_util-findKey.md) を使用します。  
必須: はい

## 関連トピック
<a name="deleteKey-seealso"></a>
+ [findKey](key_mgmt_util-findKey.md)

# KMU を使用して AWS CloudHSM エラーを記述する
<a name="key_mgmt_util-Error2String"></a>

 AWS CloudHSM key\$1mgmt\$1util の **Error2String** helper コマンドを使用して、key\$1mgmt\$1util の 16 進エラーコードに対応するエラーを返します。このコマンドは、コマンドとスクリプトのトラブルシューティングに使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="Error2String-syntax"></a>

```
Error2String -h

Error2String -r <response-code>
```

## 例
<a name="Error2String-examples"></a>

これらの例は、key\$1mgmt\$1util エラーコードのエラー文字列を取得するために **Error2String** を使用する方法を示しています。

**Example : エラーの説明を取得する**  
次のコマンドでは、`0xdb` エラーコードに関するエラーの説明を取得します。説明では、ユーザーがユーザータイプを間違えたため、key\$1mgmt\$1util へのログインに失敗したとなります。key\$1mgmt\$1util にログインできるのは Crypto User (CU) のみです。  

```
        Command:  Error2String -r 0xdb
        
        Error Code db maps to HSM Error: Invalid User Type.
```

**Example : エラーコードを見つける**  
この例は、key\$1mgmt\$1util エラーのエラーコードの場所を示しています。エラーコード `0xc6` は、文字列 `Cfm3<command-name> returned: `の後に表示されます。  
この例の [getKeyInfo](key_mgmt_util-getKeyInfo.md) では、現在のユーザー (ユーザー 4) が暗号化オペレーションでキーを使用できることを示しています。その場合でも、ユーザーが [deleteKey](key_mgmt_util-deleteKey.md) を使用してキーを削除しようとすると、コマンドはエラーコード `0xc6` を返します。  

```
        Command:  deleteKey -k 262162

        Cfm3DeleteKey returned: <0xc6> : HSM Error: Key Access is denied

        Cluster Error Status

        Command:  getKeyInfo -k 262162
        
        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 1 user(s):

                4
```
`0xc6` エラーが返された場合は、次のような **Error2String** コマンドを使用してエラーを検索できます。この例で `deleteKey` コマンドが失敗しているのは、現在のユーザーがキーを共有していても、キーの所有者が別のユーザーであるために、アクセス拒否エラーとなるためです。キーを削除できるのはキーの所有者のみです。  

```
        Command:  Error2String -r 0xa8
        
        Error Code c6 maps to HSM Error: Key Access is denied
```

## パラメータ
<a name="Error2String-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-r**  
16 進数のエラーコードを指定します。16 進数インジケータ `0x` は必須です。  
必須: はい

# KMU AWS CloudHSM を終了する
<a name="key_mgmt_util-exit"></a>

 AWS CloudHSM key\$1mgmt\$1util の **exit** コマンドを使用して key\$1mgmt\$1util を終了します。正常に終了すると、標準のコマンドラインに戻ります。

どの key\$1mgmt\$1util コマンドを実行する場合でも、事前に [key\$1mgmt\$1util を起動](key_mgmt_util-setup.md#key_mgmt_util-start)する必要があります。

## 構文
<a name="exit-syntax"></a>

```
exit
```

## パラメータ
<a name="exit-parameters"></a>

このコマンドにはパラメータがありません。

## 関連トピック
<a name="exit-seealso"></a>
+ [key\$1mgmt\$1util の起動](key_mgmt_util-setup.md#key_mgmt_util-start)

# KMU を使用してプライベート AWS CloudHSM キーをエクスポートする
<a name="key_mgmt_util-exportPrivateKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **exportPrivateKey** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) からファイルに非対称プライベートキーをエクスポートします。HSM では、クリアテキストのキーを直接エクスポートすることはできません。このコマンドは、指定した AES ラップキーを使用してプライベートキーをラップし、ラップされたバイトを復号化して、クリアテキストのプライベートキーをファイルにコピーします。

**exportPrivateKey** コマンドはキーを HSM から削除したり、[キー属性](key-attribute-table.md)を変更したり、今後の暗号化操作でのキーの使用を禁止したりすることはありません。同じキーを複数回エクスポートできます。

`OBJ_ATTR_EXTRACTABLE` 属性値が `1` のプライベートキーのみエクスポートすることができます。`OBJ_ATTR_WRAP` と `OBJ_ATTR_DECRYPT` 属性値 `1` を持つ AES ラップキーを指定する必要があります。キーの属性を確認するには、[**getAttribute**](key_mgmt_util-getAttribute.md) コマンドを使用します。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="exportPrivateKey-syntax"></a>

```
exportPrivateKey -h

exportPrivateKey -k <private-key-handle>
                 -w <wrapping-key-handle>
                 -out <key-file>
                 [-m <wrapping-mechanism>]
                 [-wk <wrapping-key-file>]
```

## 例
<a name="exportPrivateKey-examples"></a>

この例では、**exportPrivateKey** を使って HSM からプライベートキーをエクスポートする方法を示します。

**Example : プライベートキーをエクスポートする**  
このコマンドは、ハンドルが `16` のラップキーを使い、ハンドルが `15` のプライベートキーを `exportKey.pem` という PEM ファイルにエクスポートします。**exportPrivateKey** は、コマンドが成功すると成功メッセージを返します。  

```
Command: exportPrivateKey -k 15 -w 16 -out exportKey.pem

Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS

PEM formatted private key is written to exportKey.pem
```

## パラメータ
<a name="exportPrivateKey-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-k`**  
エクスポートするプライベートキーのキーハンドルを指定します。  
必須: はい

**`-w`**  
ラップキーのキーハンドルを指定します。このパラメータは必須です。キーハンドルを見つけるには、[**findKey**](key_mgmt_util-findKey.md) コマンドを使用します。  
キーをラップキーとして使用できるかどうかを確認するには、[**getAttribute**](key_mgmt_util-getAttribute.md) を使用して `OBJ_ATTR_WRAP` 属性 (262) の値を取得します。ラップキーを作成するには、[**genSymKey**](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を作成します。  
`-wk` パラメータを使用して外部のラップ解除キーを指定した場合、エクスポート時の (ラップ解除ではなく) ラップに `-w` ラップキーが使われます。  
必須: はい

**`-out`**  
エクスポートしたプライベートキーの書き込み先とするファイルの名前を指定します。  
必須: はい

**`-m`**  
エクスポートするプライベートキーのラップ方法を指定します。唯一の有効な値は `4` です。これは `NIST_AES_WRAP mechanism.` を指します。  
デフォルト: 4 (`NIST_AES_WRAP`)  
必須: いいえ

**`-wk`**  
エクスポートするキーをラップ解除するためのキーを指定します。プレーンテキストの AES キーが含まれているファイルのパスと名前を入力します。  
このパラメータを含めた場合、**exportPrivateKey** は、エクスポートするキーをラップする際に `-w` ファイルのキーを使用し、ラップ解除する際に `-wk` パラメータで指定されたキーを使用します。  
デフォルト: `-w` パラメータで指定されたラップキーを使用して、ラップとラップ解除の両方を行う。  
必須: いいえ

## 関連トピック
<a name="exportPrivateKey-seealso"></a>
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)

# KMU を使用してパブリック AWS CloudHSM キーをエクスポートする
<a name="key_mgmt_util-exportPubKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **exportPubKey** コマンドを使用して、HSM のパブリックキーをファイルにエクスポートします。これを使用すると、HSM で生成したパブリックキーをエクスポートすることができます。また、このコマンドを使うと、**[**importPubKey**](key_mgmt_util-importPubKey.md)** コマンドでインポートされたパブリックキーなど、HSM にインポートされたパブリックキーをエクスポートすることもできます。

**exportPubKey** オペレーションは、キーマテリアルを指定のファイルにコピーします。しかし、キーを HSM から削除したり、[キー属性](key-attribute-table.md)を変更したり、今後の暗号化操作でのキーの使用を禁止したりすることはありません。同じキーを複数回エクスポートできます。

エクスポート可能なパブリックキーは、`OBJ_ATTR_EXTRACTABLE` 値が `1` であるものに限られます。キーの属性を確認するには、**[getAttribute](key_mgmt_util-getAttribute.md)** コマンドを使用します。

`key_mgmt_util` コマンドを実行する前に、[key\$1mgmt\$1util を起動](key_mgmt_util-setup.md#key_mgmt_util-start)し、Crypto User (CU) として HSM に[ログイン](key_mgmt_util-log-in.md)する必要があります。

## 構文
<a name="exportPubKey-syntax"></a>

```
exportPubKey -h

exportPubKey -k <public-key-handle>
             -out <key-file>
```

## 例
<a name="exportPubKey-examples"></a>

この例では、**exportPubKey** を使って HSM からパブリックキーをエクスポートする方法を示します。

**Example : パブリックキーをエクスポートする**  
このコマンドは、ハンドルが `10` のパブリックキーを `public.pem` というファイルにエクスポートします。**exportPubKey** は、コマンドが成功すると成功メッセージを返します。  

```
Command: exportPubKey -k 10 -out public.pem

PEM formatted public key is written to public.pem

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

## パラメータ
<a name="exportPubKey-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-k`**  
エクスポートするパブリックキーのキーハンドルを指定します。  
必須: はい

**`-out`**  
エクスポートしたパブリックキーの書き込み先とするファイルの名前を指定します。  
必須: はい

## 関連トピック
<a name="exportPubKey-seealso"></a>
+ [importPubKey](key_mgmt_util-importPubKey.md)
+ [キーの生成](generate-keys.md)

# KMU を使用して AWS CloudHSM キーのプレーンテキストコピーをエクスポートする
<a name="key_mgmt_util-exSymKey"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **exSymKey** コマンドを使用して、対称キーのプレーンテキストコピーをハードウェアセキュリティモジュール (HSM) からエクスポートし、ディスク上のファイルに保存します。キーの暗号化 (ラップ) されたコピーをエクスポートするには、[wrapKey](key_mgmt_util-wrapKey.md) キーを使用します。プレーンテキストのキー (`exSymKey` でエクスポートしたものなど) をインポートするには、[imSymKey](key_mgmt_util-imSymKey.md) を使用し ます。

エクスポートプロセス中に、**exSymKey** は、指定した AES キー (*ラッピングキー*) を使用して、エクスポートするキーを*ラップ* (暗号化) してから*ラップ解除* (復号化) します。ただし、エクスポートオペレーションの結果は、ディスク上のプレーンテキスト (*ラップ解除された*) キーとなります。

キーの所有者 (キーを作成した CU ユーザー) のみがキーをエクスポートできます。キーを共有するユーザーは、キーを暗号化オペレーションで使用することはできますが、エクスポートすることはできません。

**exSymKey** オペレーションは、キーマテリアルをユーザーが指定したファイルにコピーしますが、キーを HSM から削除したり、その[キー属性](key-attribute-table.md)を変更したり、暗号化オペレーションでのキーの使用を禁止したりはしません。同じキーを複数回エクスポートできます。

**exSymKey** は対称キーのみをエクスポートします。パブリックキーをエクスポートするには、[exportPubKey](key_mgmt_util-exportPubKey.md) を使用します。プライベートキーをエクスポートするには、[exportPrivateKey](key_mgmt_util-exportPrivateKey.md) を使用します。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="exSymKey-syntax"></a>

```
exSymKey -h

exSymKey -k <key-to-export>
         -w <wrapping-key>
         -out <key-file>
         [-m 4] 
         [-wk <unwrapping-key-file> ]
```

## 例
<a name="exSymKey-examples"></a>

以下の例では、**exSymKey** を使用してユーザーが所有する対称キーを HSM からエクスポートする方法を示しています。

**Example : 3 DES 対称キーをエクスポートする**  
次のコマンドでは、Triple DES (3DES) 対称キー (キーハンドル `7`) をエクスポートします。HSM の既存の AES キー (キーハンドル `6`) をラップキーとして使用します。次に、3DES キーのプレーンテキストを `3DES.key` ファイルに書き込みます。  
出力は、キー `7` (3DES キー) が正常にラップ/ラップ解除されて `3DES.key` ファイルに書き込まれたことを示しています。  
出力では「ラップされた対称キー」が出力ファイルに書き込まれたことになっていますが、出力ファイルに含まれているのはプレーンテキスト (ラップ解除された) キーです。

```
        Command: exSymKey -k 7 -w 6 -out 3DES.key

       Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "3DES.key"
```

**Example : セッション専用のラップキーでエクスポートする**  
次の例では、セッションでのみ有効なキーをラップキーとして使用する方法を示します。エクスポートするキーはラップされた後で、すぐにラップ解除されて、プレーンテキストとして配信されるため、ラップキーを保持する必要はありません。  
以下のコマンドでは、キーハンドル `8` の AES キーを HSM からエクスポートします。このために専用の AES セッションキーを作成して使用します。  
最初のコマンドでは、[genSymKey](key_mgmt_util-genSymKey.md) を使用して 256 ビット AES キーを作成します。`-sess` パラメータを使用して、現在のセッションでのみ有効なキーを作成します。  
出力は、HSM でキー `262168` が作成されたことを示しています。  

```
        Command:  genSymKey -t 31 -s 32 -l AES-wrapping-key -sess

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 262168

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```
次の例では、キー `8` (エクスポートするキー) が抽出可能な対称キーであることを検証します。また、ラップキー (キー `262168`) がセッションでのみ有効な AES キーであることも検証します。[findKey](key_mgmt_util-findKey.md) コマンドを使用することもできますが、この例では両方のキーの属性をファイルにエクスポートし、`grep` を使用してファイルの関連する属性値を見つけます。  
以下のコマンドでは、`getAttribute` で `-a` 値として `512` (すべて) を使用し、キー `8` とキー `262168` のすべての属性を取得します。キー属性の詳細については、「[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md)」を参照してください。  

```
getAttribute -o 8 -a 512 -out attributes/attr_8
getAttribute -o 262168 -a 512 -out attributes/attr_262168
```
以下のコマンドでは、`grep` を使用してエクスポートするキー (キー `8`) の属性と、セッション専用のラップキー (キー `262168`) を検証します。  

```
    // Verify that the key to be exported is a symmetric key.
    $  grep -A 1 "OBJ_ATTR_CLASS" attributes/attr_8    
    OBJ_ATTR_CLASS
    0x04
   
    // Verify that the key to be exported is extractable.
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_8
    OBJ_ATTR_EXTRACTABLE
    0x00000001

    // Verify that the wrapping key is an AES key
    $  grep -A 1 "OBJ_ATTR_KEY_TYPE" attributes/attr_262168
    OBJ_ATTR_KEY_TYPE
    0x1f

    // Verify that the wrapping key is a session key
    $  grep -A 1 "OBJ_ATTR_TOKEN" attributes/attr_262168
    OBJ_ATTR_TOKEN
    0x00    
    
    // Verify that the wrapping key can be used for wrapping
     $  grep -A 1 "OBJ_ATTR_WRAP" attributes/attr_262168
    OBJ_ATTR_WRAP
    0x00000001
```
最後に、**exSymKey** コマンドを使用してキー `8` をエクスポートします。ラップキーとしてセッションキー (キー `262168`) を使用します。  
セッションが終了すると、キー `262168` は消滅します。  

```
        Command:  exSymKey -k 8 -w 262168 -out aes256_H8.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "aes256_H8.key"
```

**Example : 外部のラップ解除キーを使用する**  
次の例では、外部のラップ解除キーを使用して HSM からキーをエクスポートする方法を示します。  
HSM からキーをエクスポートする場合、HSM の AES キーをラップキーとして指定します。デフォルトでは、そのラップキーを使用して、エクスポートするキーがラップおよびラップ解除されます。ただし、`-wk` パラメータを使用すると、**exSymKey** でディスク上のファイルにある外部キーを使用してラップ解除できます。この場合は、`-w` パラメータで指定したキーでターゲットキーをラップし、`-wk` パラメータで指定したファイルのキーでラップ解除します。  
ラップキーは AES (対称) キーである必要があるため、HSM のラップキーとディスク上のラップ解除キーは、キーマテリアルが同じであることが必要です。そのためには、エクスポートオペレーションに先立って、HSM に対するラップキーのインポートまたはエクスポートを行う必要があります。  
次の例では、HSM の外部でキーを作成して HSM 内にインポートします。エクスポートする対称キーはキーの内部コピーでラップし、ファイルのキーのコピーでラップ解除します。  
最初のコマンドでは、OpenSSL を使用して 256 ビット AES キーを生成します。生成したキーは、`aes256-forImport.key` ファイルに保存されます。OpenSSL コマンドから返される出力はありませんが、いくつかのコマンドを使用して成功したかどうかを確認できます。次の例では、**wc** (ワードカウント) ツールを使用してファイルに 32 バイトのデータが保存されていることを確認しています。  

```
$  openssl rand -out keys/aes256-forImport.key 32

$ wc keys/aes256-forImport.key
 0  2 32 keys/aes256-forImport.key
```
次の例では、[imSymKey](key_mgmt_util-imSymKey.md) コマンドを使用して `aes256-forImport.key` ファイルから HSM に AES キーをインポートします。コマンドが完了すると、キーはキーハンドル `262167` で HSM の `aes256-forImport.key` ファイルに格納されます。  

```
Command:  imSymKey -f keys/aes256-forImport.key -t 31 -l aes256-imported -w 6

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 262167

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
次のコマンドでは、エクスポートオペレーションでキーを使用します。このコマンドでは、**exSymKey** を使用してキー `21` (192 ビット AES キー) をエクスポートします。キーをラップするために、HSM 内にコピーとしてインポートしたキー `262167` を使用します。キーをラップ解除するには、`aes256-forImport.key` の同じキーマテリアルを使用します。コマンドが完了すると、キー `21` は `aes192_h21.key` ファイルにエクスポートされます。  

```
        Command:  exSymKey -k 21 -w 262167 -out aes192_H21.key -wk aes256-forImport.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

Wrapped Symmetric Key written to file "aes192_H21.key"
```

## パラメータ
<a name="exSymKey-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-k**  
エクスポートするキーのキーハンドルを指定します。このパラメータは必須です。所有する対称キーのキーハンドルを入力します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
キーがエクスポート可能であることを検証するには、[getAttribute](key_mgmt_util-getAttribute.md) コマンドを使用して、`OBJ_ATTR_EXTRACTABLE` 属性の値を取得します。この属性は定数 `354` で表されます。また、ユーザーが所有するキーのみをエクスポートすることもできます。キーの所有者を確認するには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) コマンドを使用します。  
必須: はい

**-w**  
ラップキーのキーハンドルを指定します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
*ラップキー*は、エクスポートするキーの暗号化 (ラップ) と復号 (ラップ解除) に使用する HSM のキーです。ラップキーとして使用できるのは AES キーのみです。  
任意の AES キー (任意のサイズ) をラップキーとして使用できます。ラップキーは、ターゲットキーをラップし、直後にラップ解除するため、セッション専用の AES キーをラップキーとして使用できます。キーをラップキーとして使用できるかどうかを確認するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用して、`OBJ_ATTR_WRAP` 属性の値を取得します。この属性は定数 `262` で表されます。ラップキーを作成するには、[genSymKey](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を作成します。  
`-wk` パラメータを使用して外部のラップ解除キーを指定すると、エクスポート時に `-w` ラップキーがラップに使用されます。ただし、ラップ解除には使用されません。  
キー 4 は、サポートされていない内部キーを表します。AES キーをラップキーとして作成および管理することをお勧めします。
必須: はい

**-out**  
出力ファイルのパスと名前を指定します。コマンドが成功すると、このファイルに、エクスポートされたキーがプレーンテキストとして配置されます。既存のファイルがある場合は、警告なしに上書きされます。  
必須: はい

**-m**  
ラップ方法を指定します。唯一の有効な値は `4` です。これは `NIST_AES_WRAP` メカニズムを表します。  
必須: いいえ  
デフォルト: 4

**-wk**  
指定したファイルの AES キーを使用して、エクスポートするキーをラップ解除します。プレーンテキストの AES キーが含まれているファイルのパスと名前を入力します。  
このパラメータを含める場合、`exSymKey` は、`-w` パラメータで指定した HSM のキーを使用してエクスポートするキーをラップし、`-wk` ファイルのキーを使用してラップ解除します。`-w` パラメータと `-wk` パラメータの値は同じプレーンテキストのキーに解決される必要があります。  
必須: いいえ  
デフォルト: HSM のラップキーを使用してラップ解除します。

## 関連トピック
<a name="exSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)

# KMU を使用して AWS CloudHSM キーを抽出する
<a name="key_mgmt_util-extractMaskedObject"></a>

 AWS CloudHSM key\$1mgmt\$1util の **extractMaskedObject** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) からキーを抽出し、マスクされたオブジェクトとしてファイルに保存します。マスクされたオブジェクトとは、*クローンされた*オブジェクトで、**[insertMaskedObject](key_mgmt_util-insertMaskedObject.md)** コマンドを使用して再び元のクラスターに挿入して初めて使用可能になります。マスクされたオブジェクトは、生成元であるクラスター、またはそのクラスターのクローンにしか挿入できません。これには、[リージョン間でのバックアップのコピー](copy-backup-to-region.md)によって生成されたクラスターのクローンバージョンや、[そのバックアップを使って新しいクラスターを作成することで](create-cluster-from-backup.md)生成されたクラスターのクローンバージョンが含まれます。

マスクされたオブジェクトは、抽出不可能なキー ([`OBJ_ATTR_EXTRACTABLE`](key-attribute-table.md) 値が `0` であるキー) を含め、キーを効率的にオフロードおよび同期する手段です。これにより、 AWS CloudHSM [設定ファイル](configure-tool.md)を更新することなく、異なるリージョンの関連するクラスター間でキーを安全に同期できます。

**重要**  
マスクされたオブジェクトは、挿入時に復号され、元のキーのキーハンドルとは異なるキーハンドルを与えられます。マスクされたオブジェクトには、属性、所有権、共有情報、クォーラム設定など、元のキーに関連付けられているすべてのメタデータが含まれます。アプリケーションのクラスター間でキーを同期する必要がある場合は、代わりに cloudhsm\$1mgmt\$1util で [syncKey](cloudhsm_mgmt_util-syncKey.md) を使用してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、 HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。**extractMaskedObject** コマンドは、キーを所有する CU または任意の CO が使用できます。

## Syntax
<a name="extractMaskedObject-syntax"></a>

```
extractMaskedObject -h

extractMaskedObject -o <object-handle>
                    -out <object-file>
```

## 例
<a name="extractMaskedObject-examples"></a>

この例は、**extractMaskedObject** を使い、HSM のキーをマスクされたオブジェクトとして抽出する方法を示します。

**Example : マスクされたオブジェクトを抽出する**  
このコマンドは、HSM のハンドルが `524295` であるキーからマスクされたオブジェクトを抽出し、`maskedObj` というファイルとして保存します。**extractMaskedObject** は、コマンドが成功すると成功メッセージを返します。  

```
Command: extractMaskedObject -o 524295 -out maskedObj

Object was masked and written to file "maskedObj"

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

## パラメータ
<a name="extractMaskedObject-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-o`**  
マスクされたオブジェクトとして抽出するキーのハンドルを指定します。  
必須: はい

**`-out`**  
マスクされたオブジェクトの保存先とするファイルの名前を指定します。  
必須: はい

## 関連トピック
<a name="extractMaskedObject-seealso"></a>
+ [insertMaskedObject](key_mgmt_util-insertMaskedObject.md)
+ [syncKey](cloudhsm_mgmt_util-syncKey.md)
+ [リージョン間のバックアップのコピー](copy-backup-to-region.md)
+ [以前のバックアップからの AWS CloudHSM クラスターの作成](create-cluster-from-backup.md)

# KMU を使用して属性で AWS CloudHSM キーを検索する
<a name="key_mgmt_util-findKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **findKey** コマンドを使用して、キー属性の値でキーを検索します。設定したすべての基準にキーが一致すると、**findKey** はキーハンドルを返します。パラメータがない場合、**findKey** は HSM で使用できるすべてのキーのキーハンドルを返します。特定のキーの属性値を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。

すべての key\$1mgmt\$1util コマンドと同様に、**findKey** はユーザー固有です。暗号化オペレーションで現在のユーザーが使用できるキーのみが返されます。これには、現在のユーザーが所有しているキーおよび現在のユーザーと共有されているキーが含まれます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="findKey-syntax"></a>

```
findKey -h 

findKey [-c <key class>] 
        [-t <key type>]
        [-l <key label>] 
        [-id <key ID>]
        [-sess (0 | 1)] 
        [-u <user-ids>]
        [-m <modulus>]
        [-kcv <key_check_value>]
```

## 例
<a name="findKey-examples"></a>

この例では、**findKey** を使用して HSM でキーを検索および特定する方法を示します。

**Example : すべてのキーを検索する**  
このコマンドは、HSM の現在のユーザーのすべてのキーを検索します。出力には、そのユーザーが所有および共有しているキーと、HSM のすべてのパブリックキーが含まれます。  
特定のキーハンドルを持つキーの属性を取得するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。現在のユーザーが特定のキーを所有しているか共有しているかを判断するには、cloudhsm\$1mgmt\$1util で [getKeyInfo](key_mgmt_util-getKeyInfo.md) または [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md) を使用します。  

```
Command: findKey

Total number of keys present 13

 number of keys matched from start index 0::12
6, 7, 524296, 9, 262154, 262155, 262156, 262157, 262158, 262159, 262160, 262161, 262162

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

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

**Example : タイプ、ユーザー、およびセッションでキーを検索する**  
次のコマンドでは、現在のユーザーとユーザー 3 が使用できる永続 AES キーを検索します (ユーザー 3 は、現在のユーザーが表示できない他のキーを使用できる場合があります)。  

```
Command: findKey -t 31 -sess 0 -u 3
```

**Example : クラスおよびラベルでキーを検索する**  
次のコマンドでは、`2018-sept` ラベルで現在のユーザーのすべてのパブリックキーを検索します。  

```
Command: findKey -c 2 -l 2018-sept
```

**Example : モジュラスで RSA キーを検索する**  
次のコマンドでは、`m4.txt` ファイルのモジュラスを使用して作成された、現在のユーザーの RSA キー (タイプ 0) を検索します。  

```
Command: findKey -t 0 -m m4.txt
```

## パラメータ
<a name="findKey-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-t**  
指定されたタイプのキーを検索します。キークラスを表す定数を入力します。たとえば、3DES キーを検索するには、`-t 21` と入力します。  
有効な値:   
+ 0: [RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem))
+ 1: [DSA](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm)
+ 3: [EC](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography)
+ 16: [GENERIC\$1SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962)
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4)
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES)
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
必須: いいえ

**-c**  
指定されたクラスのキーを検索します。キークラスを表す定数を入力します。たとえば、パブリックキーを検索するには「`-c 2`」と入力します。  
各キータイプに有効な値:  
+ 2: パブリック。このクラスには、公開 - プライベートのキーペアの公開キーが含まれています。
+ 3: プライベート。このクラスには、公開 - プライベートのキーペアの公開キーが含まれています。
+ 4: シークレット。このクラスには、対称キーすべてが含まれています。
必須: いいえ

**-I**  
指定されたラベルのキーを検索します。正確なラベルを入力します。`--l` 値にはワイルドカード文字も正規表現も使用できません。  
必須: いいえ

**-id**  
指定された ID のキーを検索します。正確な ID 文字列を入力します。`-id` 値にはワイルドカード文字も正規表現も使用できません。  
必須: いいえ

**-sess**  
セッションステータスでキーを検索します。現在のセッションでのみ有効なキーを検索するには「`1`」と入力します。永続キーを検索するには「`0`」と入力します。  
必須: いいえ

**-u**  
指定されたユーザーと現在のユーザーが共有しているキーを検索します。HSM ユーザー ID のカンマ区切りリスト (`-u 3` や `-u 4,7` など) を入力します。HSM のユーザーの ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。  
1 つのユーザー ID を指定すると、**findKey** はそのユーザーのキーを返します。複数のユーザー ID を指定すると、**findKey** は指定したユーザーすべてが使用できるキーを返します。  
**findKey** は現在のユーザーが使用できるキーのみを返すため、`-u` の結果は常に、現在のユーザーのキーと同じかそのサブセットです。任意のユーザーが所有または共有するすべてのキーを取得するために、暗号オフィサー (CO) は cloudhsm\$1mgmt\$1util の [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md) を使用できます。  
必須: いいえ

**-m**  
指定したファイルの RSA モジュラスを使用して作成されたキーを検索します。モジュラスを保存するファイルのパスを入力します。  
-m は、一致する RSA モジュラスを含むバイナリファイルを指定します (オプション)。  
必須: いいえ

**-kcv**  
指定されたキーのチェック値のキーを検索します。  
*キーチェック値* (KCV) は、HSM がキーをインポートまたは生成するときに生成されるキーの3バイトのハッシュまたはチェックサムです。キーをエクスポートした後など、HSM の外部で KCV を計算することもできます。次に、KCV 値を比較して、キーのアイデンティティと整合性を確認できます。キーの KCV を取得するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。  
AWS CloudHSM は、次の標準メソッドを使用してキーチェック値を生成します。  
+ **対称キー**: ゼロブロックをキーで暗号化した結果の最初の 3 バイト。
+ **非対称キーペア**: 公開キーの SHA-1 ハッシュの最初の 3 バイト。
+ **HMAC キー **: 現時点では、HMAC キーの KCV はサポートされていません。
必須: いいえ

## Output
<a name="findKey-output"></a>

**findKey** の出力には、一致するキーの合計数とそのキーハンドルが一覧表示されます。

```
        Command:  findKey
Total number of keys present 10

 number of keys matched from start index 0::9
6, 7, 8, 9, 10, 11, 262156, 262157, 262158, 262159

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

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

## 関連トピック
<a name="findKey-seealso"></a>
+ [findSingleKey](key_mgmt_util-findSingleKey.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ cloudhsm\$1mgmt\$1util の中の [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md) です。
+ [キー属性リファレンス](key-attribute-table.md)

# KMU を使用して AWS CloudHSM キーを検証する
<a name="key_mgmt_util-findSingleKey"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **findSingleKey** コマンドを使用して、 AWS CloudHSM クラスター内のすべてのハードウェアセキュリティモジュール (HSM) にキーが存在することを確認します。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="findSingleKey-syntax"></a>

```
findSingleKey -h

findSingleKey -k <key-handle>
```

## 例
<a name="findSingleKey-examples"></a>

**Example**  
次のコマンドでは、クラスターの 3 つすべての HSM にキー `252136` が存在することを検証します。  

```
Command: findSingleKey -k 252136
Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

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

## パラメータ
<a name="findSingleKey-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-k**  
HSM で 1 つのキーのキーハンドルを指定します。このパラメータは必須です。  
キーハンドルを見つけるには、[findKey](key_mgmt_util-listUsers.md) コマンドを使用します。  
必須: はい

## 関連トピック
<a name="findSingleKey-seealso"></a>
+ [findKey](key_mgmt_util-listUsers.md)
+ [getKeyInfo](key_mgmt_util-listUsers.md)
+ [getAttribute](key_mgmt_util-findKey.md)

# KMU を使用して AWS CloudHSM DSA キーペアを生成する
<a name="key_mgmt_util-genDSAKeyPair"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **genDSAKeyPair** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) [でデジタル署名アルゴリズム](https://en.wikipedia.org/wiki/Digital_Signature_Algorithm) (DSA) キーペアを生成します。ユーザーは、モジュラスの長さを指定する必要があります。モジュラスの値はコマンドで生成されます。ユーザーは、ID を割り当て、他の HSM ユーザーとキーを共有し、抽出不可のキーとセッション終了時に失効するキーを作成することもできます。コマンドが成功すると、*キーハンドル*が返されます。HSM は、このキーハンドルをパブリックキーとプライベートキーに割り当てます。このキーハンドルでキーを識別することで、他のコマンドでキーを使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start) Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

**ヒント**  
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。特定のユーザーのキーを見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。属性値に基づいてキーを検索するには、[findKey](key_mgmt_util-findKey.md) を使用します。

## 構文
<a name="genDSAKeyPair-syntax"></a>

```
genDSAKeyPair -h

genDSAKeyPair -m <modulus length> 
              -l <label> 
              [-id <key ID>] 
              [-min_srv <minimum number of servers>] 
              [-m_value <0..8>]
              [-nex] 
              [-sess] 
              [-timeout <number of seconds> ]
              [-u <user-ids>] 
              [-attest]
```

## 例
<a name="genDSAKeyPair-examples"></a>

以下の例では、**genDSAKeyPair** を使用して DSA キーペアを作成する方法を示します。

**Example : DSA キーペアを作成する**  
次のコマンドでは、`DSA` をラベルとする DSA キーペアを作成します。出力は、パブリックキーのキーハンドルが `19`、プライベートキーのキーハンドルが `21` であることを示しています。  

```
Command: genDSAKeyPair -m 2048 -l DSA

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 19    private key handle: 21

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

**Example : セッション専用の DSA キーペアを作成する**  
次のコマンドでは、現在のセッションでのみ有効な DSA キーペアを作成します。コマンドは、必須の (一意でない) ラベルに加えて `DSA_temp_pair` の一意な ID を割り当てます。次のようなキーペアを作成して、セッション専用のトークンの署名および検証ができます。出力は、パブリックキーのキーハンドルが `12`、プライベートキーのキーハンドルが `14` であることを示しています。  

```
Command: genDSAKeyPair -m 2048 -l DSA-temp -id DSA_temp_pair -sess

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 14

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
キーペアがセッションでのみ有効であることを確認するには、`-sess`findKey[ の ](key_mgmt_util-findKey.md) パラメータで、値 `1` (true) を使用します。  

```
  Command: findKey -sess 1

  Total number of keys present 2

 number of keys matched from start index 0::1
12, 14

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

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

**Example : 抽出不可の共有 DSA キーペアを作成する**  
次のコマンドでは、DSA キーペアを作成します。プライベートキーは、他の 3 ユーザーと共有され、HSM からエクスポートすることはできません。パブリックキーは、すべてのユーザーが使用可能であり、常に抽出可能です。  

```
        Command:  genDSAKeyPair -m 2048 -l DSA -id DSA_shared_pair -nex -u 3,5,6

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 11    private key handle: 19

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

**Example : クォーラム制御のキーペアを作成する**  
次のコマンドでは、`DSA-mV2` をラベルとする DSA キーペアを作成します。このコマンドでは、`-u` パラメータを使用してプライベートキーをユーザー 4 および 6 と共有します。`-m_value` パラメータを使用して、プライベートキーを使用する暗号化オペレーションごとに 2 つ以上の承認のクォーラムを要求します。また、`-attest` パラメータを使用して、キーペアを生成するファームウェアの整合性を検証します。  
出力は、コマンドでキーハンドル `12` のパブリックキーとキーハンドル `17` のプライベートキーが生成され、クラスターファームウェアの認証チェックが合格であることを示しています。  

```
        Command:  genDSAKeyPair -m 2048 -l DSA-mV2 -m_value 2 -u 4,6 -attest

        Cfm3GenerateKeyPair: returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 12    private key handle: 17

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
このコマンドでは、プライベートキー (キーハンドル `17`) で [getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。出力は、キーの所有者が現在のユーザー (ユーザー 3) であり、キーがユーザー 4 および 6 (それ以外はなし) と共有されていることを示しています。また、クォーラム認証が有効になっていて、クォーラムサイズが 2 であることも示しています。  

```
        Command:  getKeyInfo -k 17

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4
                 6
         2 Users need to approve to use/manage this key
```

## パラメータ
<a name="genDSAKeyPair-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-m**  
モジュラスの長さをビット単位で指定します。唯一の有効な値は `2048` です。  
必須: はい

**-I**  
キーペアのユーザー定義ラベルを指定します。文字列を入力します。同じラベルがペアの両方のキーに適用されます。`label` の最大長は 127 文字です。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-id**  
キーペアのユーザー定義識別子 (ID) を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。指定した ID は、ペアの両方のキーに適用されます。  
デフォルト: ID 値なし。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-m\$1value**  
ペアの秘密キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。`0` から `8` までの値を入力します。  
このパラメータにより、プライベートキーのクォーラム認証要件が確立されます。デフォルト値、`0` で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーがトークンに署名して、プライベートキーを使用する暗号化オペレーション、およびプライベートキーを共有または共有解除するオペレーションを承認する必要があります。  
キーの `m_value` を見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
このパラメーターは、コマンドの `-u` パラメーターが `m_value` 要件を満たすのに十分なユーザーとキーペアを共有している場合にのみ有効です。  
デフォルト: 0  
必須: いいえ

**-nex**  
プライベートキーを抽出できなくなります。生成されたプライベートキーを [HSM からエクスポートする](export-keys.md) ことはできません。公開キーは常に抽出可能です。  
デフォルト: キーペアの公開キーとプライベートキーの両方が抽出可能です。  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-u**  
ペアのプライベートキーを指定されたユーザーと共有します。このパラメータは、他の HSM Crypto User (CU) に暗号化オペレーションでプライベートキーを使用する許可を与えます。公開キーは、共有なしですべてのユーザーが使用可能です。  
( -`u 5,6`などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。既存のキーを共有および共有解除するには、cloudhsm\$1mgmt\$1util で [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。  
デフォルト: 現在のユーザーのみがプライベートキーを使用できます。  
必須: いいえ

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

## 関連トピック
<a name="genDSAKeyPair-seealso"></a>
+ [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [genECCKeyPair](key_mgmt_util-genECCKeyPair.md)

# KMU を使用して AWS CloudHSM ECC キーペアを生成する
<a name="key_mgmt_util-genECCKeyPair"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの `genECCKeyPair` コマンドを使用して、ハードウェアセキュリティモジュール (HSM) [で楕円曲線暗号](https://en.wikipedia.org/wiki/Elliptic-curve_cryptography) (ECC) キーペアを生成します。`genECCKeyPair` コマンドを実行するときは、楕円曲線識別子とキーペアのラベルを指定する必要があります。また、他の CU ユーザーとプライベートキーを共有したり、抽出可能なキー、クォーラム制御キー、およびセッション終了時に失効するキーを作成したりできます。コマンドが成功すると、HSM がパブリックおよびプライベートの ECC キーに割り当てるキーハンドルが返されます。このキーハンドルでキーを識別することで、他のコマンドでキーを使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start) Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

**ヒント**  
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。特定のユーザーのキーを見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。属性値に基づいてキーを検索するには、[findKey](key_mgmt_util-findKey.md) を使用します。

## 構文
<a name="genECCKeyPair-syntax"></a>

```
genECCKeyPair -h

genECCKeyPair -i <EC curve id> 
              -l <label> 
              [-id <key ID>]
              [-min_srv <minimum number of servers>]
              [-m_value <0..8>]
              [-nex]
              [-sess]
              [-timeout <number of seconds> ]
              [-u <user-ids>]
              [-attest]
```

## 例
<a name="genECCKeyPair-examples"></a>

以下の例では、**genECCKeyPair** を使用して ECC キーペアを HSM に作成する方法を示します。

**Example : ECC キーペアを作成して検査する**  
次のコマンドでは、NID\$1secp384r1 楕円曲線と `ecc14` ラベルを使用して ECC キーペアを作成します。出力は、プライベートキーのキーハンドルが `262177`、パブリックキーのキーハンドルが `262179` であることを示しています。ラベルは、パブリックキーとプライベートキーの両方に適用されます。  

```
Command: genECCKeyPair -i 14 -l ecc14

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 262179    private key handle: 262177

        Cluster Error Status
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
キーを生成した後、その属性を調べることができます。次のコマンドでは、[getAttribute](key_mgmt_util-getAttribute.md) を使用して新しい ECC プライベートキーのすべての属性 (定数 `512` で表される) を `attr_262177` ファイルに書き込みます。  

```
Command: getAttribute -o 262177 -a 512 -out attr_262177
got all attributes of size 529 attr cnt 19
Attributes dumped into attr_262177

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
```
次に、`cat` コマンドを使用して、`attr_262177` 属性ファイルの内容を表示します。出力は、キーが楕円曲線プライベートキーであり、このキーは署名には使用できるが、暗号化、復号、ラップ、ラップ解除には使用できないことを示しています。キーは永続的で、エクスポート可能です。  

```
$  cat attr_262177

OBJ_ATTR_CLASS
0x03
OBJ_ATTR_KEY_TYPE
0x03
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x00
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x01
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
ecc2
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x0000008a
OBJ_ATTR_KCV
0xbbb32a
OBJ_ATTR_MODULUS
044a0f9d01d10f7437d9fa20995f0cc742552e5ba16d3d7e9a65a33e20ad3e569e68eb62477a9960a87911e6121d112b698e469a0329a665eba74ee5ac55eae9f5
OBJ_ATTR_MODULUS_BITS
0x0000019f
```

**Example 無効な EEC 曲線の使用**  
次のコマンドでは、NID\$1X9\$162\$1prime192v1 曲線を使用して ECC キーペアの作成を試行します。この楕円曲線は FIPS モードの HSM に対して無効であるため、コマンドは失敗します。クラスターのサーバーが使用不可であることがメッセージで報告されますが、通常、これはクラスターのサーバーに問題があることを示すものではありません。  

```
Command:  genECCKeyPair -i 1 -l ecc1

        Cfm3GenerateKeyPair returned: 0xb3 : HSM Error: This operation violates the current configured/FIPS policies

        Cluster Error Status
        Node id 0 and err state 0x30000085 : HSM CLUSTER ERROR: Server in cluster is unavailable
```

## パラメータ
<a name="genECCKeyPair-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-i **  
楕円曲線の識別子を指定します。識別子を入力します。  
有効な値:   
+ **2**: NID\$1X9\$162\$1prime256v1
+ **14**: NID\$1secp384r1
+ **16**: NID\$1secp256k1
必須: はい

**-I**  
キーペアのユーザー定義ラベルを指定します。文字列を入力します。同じラベルがペアの両方のキーに適用されます。`label` の最大長は 127 文字です。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-id**  
キーペアのユーザー定義識別子 (ID) を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。指定した ID は、ペアの両方のキーに適用されます。  
デフォルト: ID 値なし。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-m\$1value**  
ペアの秘密キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。`0` から `8` までの値を入力します。  
このパラメータにより、プライベートキーのクォーラム認証要件が確立されます。デフォルト値、`0` で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーがトークンに署名して、プライベートキーを使用する暗号化オペレーション、およびプライベートキーを共有または共有解除するオペレーションを承認する必要があります。  
キーの `m_value` を見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
このパラメーターは、コマンドの `-u` パラメーターが `m_value` 要件を満たすのに十分なユーザーとキーペアを共有している場合にのみ有効です。  
デフォルト: 0  
必須: いいえ

**-nex**  
プライベートキーを抽出できなくなります。生成されたプライベートキーを [HSM からエクスポートする](export-keys.md) ことはできません。公開キーは常に抽出可能です。  
デフォルト: キーペアの公開キーとプライベートキーの両方が抽出可能です。  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-u**  
ペアのプライベートキーを指定されたユーザーと共有します。このパラメータは、他の HSM Crypto User (CU) に暗号化オペレーションでプライベートキーを使用する許可を与えます。公開キーは、共有なしですべてのユーザーが使用可能です。  
( -`u 5,6`などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。既存のキーを共有および共有解除するには、cloudhsm\$1mgmt\$1util で [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。  
デフォルト: 現在のユーザーのみがプライベートキーを使用できます。  
必須: いいえ

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

## 関連トピック
<a name="genECCKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)
+ [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md)

# KMU を使用して AWS CloudHSM RSA キーペアを生成する
<a name="key_mgmt_util-genRSAKeyPair"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **genRSAKeyPair** コマンドを使用して、[RSA](https://en.wikipedia.org/wiki/RSA_(cryptosystem)) 非対称キーペアを生成します。ユーザーは、キーのタイプ、モジュラスの長さ、および公開指数を指定します。コマンドは、指定した長さのモジュラスを生成し、キーペアを作成します。ユーザーは、ID を割り当て、他の HSM ユーザーとプライベートキーを共有し、抽出不可のキーとセッション終了時に失効するキーを作成できます。コマンドが成功すると、HSM がキーに割り当てるキーハンドルが返されます。このキーハンドルでキーを識別して他のコマンドで使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

**ヒント**  
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。特定のユーザーのキーを見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。属性値に基づいてキーを検索するには、[findKey](key_mgmt_util-findKey.md) を使用します。

## 構文
<a name="genRSAKeyPair-syntax"></a>

```
genRSAKeyPair -h

genRSAKeyPair -m <modulus length>
              -e <public exponent> 
              -l <label> 
              [-id <key ID>] 
              [-min_srv <minimum number of servers>] 
              [-m_value <0..8>]
              [-nex] 
              [-sess] 
              [-timeout <number of seconds> ]
              [-u <user-ids>] 
              [-attest]
```

## 例
<a name="genRSAKeyPair-examples"></a>

以下の例では、**genRSAKeyPair** を使用して非対称キーペアを HSM に作成する方法を示します。

**Example : RSA キーペアを作成して検査する**  
このコマンドでは、モジュラス 2048 ビットで指数が 65537 の RSA キーペアを作成します。出力は、パブリックキーのハンドルが `2100177`、プライベートキーのハンドルが `2100426` であることを示しています。  

```
Command: genRSAKeyPair -m 2048 -e 65537 -l rsa_test 

Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 2100177    private key handle: 2100426

        Cluster Status:
        Node id 0 status: 0x00000000 : HSM Return: SUCCESS
        Node id 1 status: 0x00000000 : HSM Return: SUCCESS
```
次のコマンドでは、[getAttribute](key_mgmt_util-getAttribute.md) を使用して、先ほど作成したパブリックキーの属性を取得します。出力の書き込み先は `attr_2100177` ファイルです。この属性ファイルの内容を取得する **cat** コマンドが続けて実行されます。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  
結果の 16 進値は、RSA タイプ (`OBJ_ATTR_CLASS 0x02`) のパブリックキー (`OBJ_ATTR_KEY_TYPE 0x00`) であることを示しています。この公開キーを使用して暗号化 (`OBJ_ATTR_ENCRYPT 0x01`) はできますが、復号 (`OBJ_ATTR_DECRYPT 0x00`) を行うことはできません。結果には、キーの長さ (512、`0x200`)、モジュラス、モジュラスの長さ (2048、`0x800`)、およびパブリック指数 (65537、`0x10001`) も含まれています。  

```
Command:  getAttribute -o 2100177 -a 512 -out attr_2100177

Attribute size: 801, count: 26
Written to: attr_2100177 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS

$  cat attr_2100177
OBJ_ATTR_CLASS
0x02
OBJ_ATTR_KEY_TYPE
0x00
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x00
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x01
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x00
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
rsa_test
OBJ_ATTR_ID

OBJ_ATTR_VALUE_LEN
0x00000200
OBJ_ATTR_KCV
0xc51c18
OBJ_ATTR_MODULUS
0xbb9301cc362c1d9724eb93da8adab0364296bde7124a241087d9436b9be57e4f7780040df03c2c
1c0fe6e3b61aa83c205280119452868f66541bbbffacbbe787b8284fc81deaeef2b8ec0ba25a077d
6983c77a1de7b17cbe8e15b203868704c6452c2810344a7f2736012424cf0703cf15a37183a1d2d0
97240829f8f90b063dd3a41171402b162578d581980976653935431da0c1260bfe756d85dca63857
d9f27a541676cb9c7def0ef6a2a89c9b9304bcac16fdf8183c0a555421f9ad5dfeb534cf26b65873
970cdf1a07484f1c128b53e10209cc6f7ac308669112968c81a5de408e7f644fe58b1a9ae1286fec
b3e4203294a96fae06f8f0db7982cb5d7f
OBJ_ATTR_MODULUS_BITS
0x00000800
OBJ_ATTR_PUBLIC_EXPONENT
0x010001
OBJ_ATTR_TRUSTED
0x00
OBJ_ATTR_WRAP_WITH_TRUSTED
0x00
OBJ_ATTR_DESTROYABLE
0x01
OBJ_ATTR_DERIVE
0x00
OBJ_ATTR_ALWAYS_SENSITIVE
0x00
OBJ_ATTR_NEVER_EXTRACTABLE
0x00
```

**Example : 共有 RSA キーペアを生成する**  
次のコマンドでは、RSA キーペアを生成し、HSM の別の CU であるユーザー 4 とプライベートキーを共有します。コマンドでは、`m_value` パラメータを使用して少なくとも 2 つの承認を要求した上で、ペアのプライベートキーを暗号化オペレーションで使用できるようにします。`m_value` パラメータを使用する場合、コマンドで `-u` も使用する必要があります。これにより、`m_value` がユーザーの合計数 (`-u` の数値 \$1 所有者) を超えないようにします。  

```
 Command:  genRSAKeyPair -m 2048 -e 65537 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 27    private key handle: 28

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

## パラメータ
<a name="genRSAKeyPair-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-m**  
モジュラスの長さをビット単位で指定します。最小値は 2,048 です。  
必須: はい

**-e**  
パブリック指数を指定します。値は、65537 以上の奇数にする必要があります  
必須: はい

**-I**  
キーペアのユーザー定義ラベルを指定します。文字列を入力します。同じラベルがペアの両方のキーに適用されます。`label` の最大長は 127 文字です。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-id**  
キーペアのユーザー定義識別子 (ID) を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。指定した ID は、ペアの両方のキーに適用されます。  
デフォルト: ID 値なし。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-m\$1value**  
ペアの秘密キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。`0` から `8` までの値を入力します。  
このパラメータにより、プライベートキーのクォーラム認証要件が確立されます。デフォルト値、`0` で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーがトークンに署名して、プライベートキーを使用する暗号化オペレーション、およびプライベートキーを共有または共有解除するオペレーションを承認する必要があります。  
キーの `m_value` を見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
このパラメーターは、コマンドの `-u` パラメーターが `m_value` 要件を満たすのに十分なユーザーとキーペアを共有している場合にのみ有効です。  
デフォルト: 0  
必須: いいえ

**-nex**  
プライベートキーを抽出できなくなります。生成されたプライベートキーを [HSM からエクスポートする](export-keys.md) ことはできません。公開キーは常に抽出可能です。  
デフォルト: キーペアの公開キーとプライベートキーの両方が抽出可能です。  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-u**  
ペアのプライベートキーを指定されたユーザーと共有します。このパラメータは、他の HSM Crypto User (CU) に暗号化オペレーションでプライベートキーを使用する許可を与えます。公開キーは、共有なしですべてのユーザーが使用可能です。  
( -`u 5,6`などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。既存のキーを共有および共有解除するには、cloudhsm\$1mgmt\$1util で [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。  
デフォルト: 現在のユーザーのみがプライベートキーを使用できます。  
必須: いいえ

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

## 関連トピック
<a name="genRSAKeyPair-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md)
+ [genECCKeyPair](key_mgmt_util-genECCKeyPair.md)

# KMU AWS CloudHSM を使用して対称キーを生成する
<a name="key_mgmt_util-genSymKey"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **genSymKey** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) に対称キーを生成します。キーのタイプとサイズを指定し、ID とラベルを割り当て、他の HSM ユーザーとキーを共有することができます。また、抽出不可のキーや、セッションが終了すると同時に失効するキーを作成することもできます。コマンドが成功すると、HSM がキーに割り当てるキーハンドルが返されます。このキーハンドルでキーを識別して他のコマンドで使用できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="genSymKey-syntax"></a>

```
genSymKey -h

genSymKey -t <key-type>
          -s <key-size> 
          -l <label> 
          [-id <key-ID>] 
          [-min_srv <minimum-number-of-servers>] 
          [-m_value <0..8>]
          [-nex] 
          [-sess] 
          [-timeout <number-of-seconds> ]
          [-u <user-ids>] 
          [-attest]
```

## 例
<a name="genSymKey-examples"></a>

以下の例では、**genSymKey** を使用して HSM に対称キーを作成する方法を示しています。

**ヒント**  
これらの例で作成したキーをHMACオペレーションに使用するには、`OBJ_ATTR_SIGN` キーを生成した後に `OBJ_ATTR_VERIFY` と `TRUE` を設定する必要があります。これらの値を設定するには、CloudHSM 管理ユーティリティ (CMU) で **setAttribute** を使用します。詳細については、[setAttribute](cloudhsm_mgmt_util-setAttribute.md) を参照してください。

**Example : AES キーの生成**  
このコマンドは、`aes256` というラベルを持つ 256 ビット AES キーを作成します。出力は、新しいキーのキーハンドルが `6` であることを示します。  

```
Command: genSymKey -t 31 -s 32 -l aes256

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 6

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

**Example : セッションキーの作成**  
次のコマンドは、現在のセッションでのみ有効な、抽出不可の 192 ビット AES キーを作成します。次のようなキーを作成して、エクスポートするキーをラップ (および直後にラップ解除) することができます。  

```
Command: genSymKey -t 31 -s 24 -l tmpAES -id wrap01 -nex -sess 
```

**Example : 迅速に戻る**  
次のコマンドでは、`IT_test_key` をラベルとする 512 バイトの汎用キーを作成します。このコマンドは、キーがクラスターのすべての HSM に同期されるまで待機しません。代わりに、いずれかの HSM でキーが作成された時点 (`-min_srv 1`) または 1 秒 (`-timeout 1`) のいずれか短い方で戻ります。タイムアウトが経過する前に、指定した最小数の HSM にキーが同期されない場合、キーは生成されません。次の例の `for` ループのように、多数のキーを作成するスクリプトでこのようなコマンドを使用できます。  

```
Command: genSymKey -t 16 -s 512 -l IT_test_key -min_srv 1 -timeout 1

$  for i in {1..30}; 
     do /opt/cloudhsm/bin/key_mgmt_util singlecmd loginHSM -u CU -s example_user -p example_pwd genSymKey -l aes -t 31 -s 32 -min_srv 1 -timeout 1; 
 done;
```

**Example : クォーラム認証汎用キーの作成**  
次のコマンドでは、`generic-mV2` をラベルとする 2048 ビットの汎用シークレットキーを作成します。このコマンドでは、`-u` パラメータを使用して別の CU、ユーザー 6、とキーを共有します。`-m_value` パラメータを使用して、キーを使用するすべての暗号オペレーションで 2 つ以上のクォーラムの承認を要求します。また、このコマンドでは、`-attest` パラメータを使用して、キーが生成されたファームウェアの整合性を検証します。  
出力は、コマンドがキーハンドル `9` でキーを生成し、クラスターファームウェアの認証チェックが成功したことを示しています。  

```
                Command:  genSymKey -t 16 -s 2048 -l generic-mV2 -m_value 2 -u 6 -attest

        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 9

        Attestation Check : [PASS]

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

**Example : キーの作成と検証**  
このコマンドは、ラベルが `3DES_shared` で ID が `IT-02` の Triple DES キーを作成します。現在のユーザーと、ユーザー 4 およびユーザー 5 がキーを使用できます。クラスター内で ID が一意でない場合、または現在のユーザーがユーザー 4 またはユーザー 5 の場合、コマンドは失敗します。  
出力は、新規キーのキーハンドルが `7` であることを示しています。  

```
Command: genSymKey -t 21 -s 24 -l 3DES_shared -id IT-02 -u 4,5

       Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 7

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
新しい 3DES キーが現在のユーザーによって所有され、ユーザー 4 とユーザー 5 と共有されていることを確認するには、**[getKeyInfo](key_mgmt_util-getKeyInfo.md)** を使用します。このコマンドは、新しいキーに割り当てられたハンドル (`Key Handle: 7`) を使用します。  
出力は、キーの所有者がユーザー 3 で、キーをユーザー 4 とユーザー 5 が共有していることを示しています。  

```
Command:  getKeyInfo -k 7

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 2 user(s):

                 4, 5
```
キーの他のプロパティを確認するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。最初のコマンドでは、`getAttribute` を使用して、キーハンドル 7 (`-o 7`) のすべての属性 (`-a 512`) を取得します。それを `attr_7` ファイルに書き込みます。2 番目のコマンドは、`cat` を使用して、`attr_7` ファイルの内容を取得します。  
このコマンドは、キー 7 が 192 ビット (`OBJ_ATTR_VALUE_LEN 0x00000018` または 24 バイト) 3DES (`OBJ_ATTR_KEY_TYPE 0x15`) 対称キー (`OBJ_ATTR_CLASS 0x04`) で、ラベルが `3DES_shared` (`OBJ_ATTR_LABEL 3DES_shared`)、ID が `IT_02` (`OBJ_ATTR_ID IT-02`) であることを示しています。このキーは永続的 (`OBJ_ATTR_TOKEN 0x01`) および抽出可能 (`OBJ_ATTR_EXTRACTABLE 0x01`) で、暗号化、復号、およびラッピングに使用できます。  
タイプ、長さ、ラベル、ID など、作成したキーの属性を検索するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。特定のユーザーのキーを見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。属性値に基づいてキーを検索するには、[findKey](key_mgmt_util-findKey.md) を使用します。
キー属性の解釈については、 [AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  

```
Command:  getAttribute -o 7 -a 512 -out attr_7

got all attributes of size 444 attr cnt 17
Attributes dumped into attr_7 file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS


$  cat attr_7

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x00
OBJ_ATTR_UNWRAP
0x00
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
3DES_shared
OBJ_ATTR_ID
IT-02
OBJ_ATTR_VALUE_LEN
0x00000018
OBJ_ATTR_KCV
0x59a46e
```
これらの例で作成したキーをHMACオペレーションに使用するには、`OBJ_ATTR_SIGN` キーを生成した後に `OBJ_ATTR_VERIFY` と `TRUE` を設定する必要があります。これらの値を設定するには、CMUで **setAttribute** を使用します。詳細については、[setAttribute](cloudhsm_mgmt_util-setAttribute.md) を参照してください。

## パラメータ
<a name="genSymKey-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-t**  
対称キーのタイプを指定します。キーのタイプを表す定数を入力します。たとえば、AES キーを作成するには「`-t 31`」と入力します。  
有効な値:   
+ 16: [GENERIC\$1SECRET](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226962)。*汎用シークレットキー* は、AES キーの要件など、特定のスタンダードに準拠していないバイト配列です。
+ 18: [RC4](https://en.wikipedia.org/wiki/RC4)。RC4 キーは FIPS モードの HSM では無効です
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES)。NIST のガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
必須: はい

**-s**  
キーのサイズをバイト単位で指定します。たとえば、192 ビットのキーを作成するには「`24`」と入力します。  
各キータイプに有効な値:  
+ AES: 16 (128 ビット)、24 (192 ビット)、32 (256 ビット)
+ 3DES: 24 (192 ビット)
+ 汎用シークレット: <3584 (28672 ビット)
必須: はい

**-I**  
キーのユーザー定義ラベルを指定します。文字列を入力します。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

**-id**  
キーのユーザー定義識別子を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。  
デフォルト: ID 値なし。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-m\$1value**  
キーを使用する暗号化オペレーションを承認する必要があるユーザーの数を指定します。`0` から `8` までの値を入力します。  
このパラメータは、キーのクォーラム認証要件を確立します。デフォルト値、`0` で、キーのクォーラム認証機能を無効にします。クォーラム認証が有効になっている場合、指定された数のユーザーは、キーを使用する暗号化オペレーション、およびキーを共有または共有解除するオペレーションを承認するためにトークンに署名する必要があります。  
キーの `m_value` を見つけるには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
このパラメータが有効なのは、コマンドの `-u` パラメータが `m_value` の要件を満たすために十分な数のユーザーとキーを共有するときのみです。  
デフォルト: 0  
必須: いいえ

**-nex**  
キーを抽出できなくなります。生成されたキーは [HSM からエクスポートできません](export-keys.md)。  
デフォルト: キーは抽出可能です。  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-u**  
指定されたユーザーとキーを共有します。このパラメータは、別の HSM Crypto User (CU) に、暗号化オペレーションでこのキーを使用するアクセス許可を付与します。  
( -`u 5,6`などの) HSM ユーザー ID のカンマ区切りリストを入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。既存のキーを共有および共有解除するには、cloudhsm\$1mgmt\$1util で [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。  
デフォルト : 現在のユーザーのみがキーを使用できます。  
必須: いいえ

## 関連トピック
<a name="genSymKey-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)
+ [genDSAKeyPair](key_mgmt_util-genDSAKeyPair.md)
+ [genECCKeyPair](key_mgmt_util-genECCKeyPair.md)
+ [setAttribute](cloudhsm_mgmt_util-setAttribute.md)

# KMU を使用して AWS CloudHSM キー属性を取得する
<a name="key_mgmt_util-getAttribute"></a>

 AWS CloudHSM key\$1mgmt\$1util の **getAttribute** コマンドを使用して、 AWS CloudHSM キーの属性値の 1 つまたはすべてをファイルに書き込みます。AES キーのモジュラスなど、キータイプに指定した属性が存在しない場合は、**getAttribute** はエラーを返します。

*キー属性*はキーのプロパティです。キー属性には、キータイプ、クラス、ラベル、ID などの特性と、キーで実行できるアクション (暗号化、復号、ラップ、署名、検証など) を表す値が含まれています。

**getAttribute** は、所有しているキーと共有しているキーに対してのみ使用できます。このコマンドまたは cloudhsm\$1mgmt\$1util で [getAttribute](cloudhsm_mgmt_util-getAttribute.md) コマンドを実行できます。このコマンドは、クラスターのすべての HSM からキーの1つの属性値を取得し、それを stdout またはファイルに書き込みます。

属性とそれを表す定数のリストを取得するには、[listAttributes](key_mgmt_util-listAttributes.md) コマンドを使用します。既存のキーの属性値を変更するには、key\$1mgmt\$1util の [setAttribute](key_mgmt_util-setAttribute.md) および cloudhsm\$1mgmt\$1util の [setAttribute](cloudhsm_mgmt_util-setAttribute.md) を使用します。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="getAttribute-syntax"></a>

```
getAttribute -h 

getAttribute -o <key handle> 
             -a <attribute constant> 
             -out <file>
```

## 例
<a name="getAttribute-examples"></a>

以下の例では、**getAttribute** を使用して HSM でキーの属性を取得する方法を示します。

**Example : キータイプを取得する**  
次の例では、AES、3DES、汎用キーなどのキータイプ、RSA または楕円曲線キーペアを取得します。  
最初のコマンドでは [listAttributes](key_mgmt_util-listAttributes.md) を実行し、キーの属性およびそれを表す定数を取得します。出力は、キータイプの定数が `256` であることを示しています。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  

```
Command: listAttributes

Description
===========
The following are all of the possible attribute values for getAttributes.

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_KEY_TYPE               = 256
      OBJ_ATTR_ID                     = 258
      OBJ_ATTR_SENSITIVE              = 259
      OBJ_ATTR_ENCRYPT                = 260
      OBJ_ATTR_DECRYPT                = 261
      OBJ_ATTR_WRAP                   = 262
      OBJ_ATTR_UNWRAP                 = 263
      OBJ_ATTR_SIGN                   = 264
      OBJ_ATTR_VERIFY                 = 266
      OBJ_ATTR_LOCAL                  = 355
      OBJ_ATTR_MODULUS                = 288
      OBJ_ATTR_MODULUS_BITS           = 289
      OBJ_ATTR_PUBLIC_EXPONENT        = 290
      OBJ_ATTR_VALUE_LEN              = 353
      OBJ_ATTR_EXTRACTABLE            = 354
      OBJ_ATTR_KCV                    = 371
```
2 番目のコマンドでは **getAttribute** を実行します。これは、キーハンドル `524296` のキータイプ (属性 `256`) をリクエストし、`attribute.txt` ファイルに書き込みます。  

```
Command: getAttribute -o 524296 -a 256 -out attribute.txt
Attributes dumped into attribute.txt file
```
最後のコマンドでは、キーファイルの内容を取得します。出力は、キータイプが `0x15` または `21` の Triple DES (3 DES) キーであることを示しています。クラスとタイプの値の定義については、「[キー属性リファレンス](key-attribute-table.md)」を参照してください。  

```
$  cat attribute.txt
OBJ_ATTR_KEY_TYPE
0x00000015
```

**Example : キーのすべての属性を取得する**  
次のコマンドでは、キーハンドル `6` でキーのすべての属性を取得し、`attr_6` ファイルに書き込みます。すべての属性を表す属性値として `512` を使用します。  

```
Command: getAttribute -o 6 -a 512 -out attr_6
        
got all attributes of size 444 attr cnt 17
Attributes dumped into attribute.txt file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS>
```
次のコマンドでは、すべての属性の値とサンプルの属性ファイルのコンテンツを示します。値の中で、キーは 256 ビット AES キーで ID は `test_01`、ラベルは `aes256` であることを示しています。キーは抽出可能で永続的であり、セッション専用キーではありません。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  

```
$  cat attribute.txt

OBJ_ATTR_CLASS
0x04
OBJ_ATTR_KEY_TYPE
0x15
OBJ_ATTR_TOKEN
0x01
OBJ_ATTR_PRIVATE
0x01
OBJ_ATTR_ENCRYPT
0x01
OBJ_ATTR_DECRYPT
0x01
OBJ_ATTR_WRAP
0x01
OBJ_ATTR_UNWRAP
0x01
OBJ_ATTR_SIGN
0x00
OBJ_ATTR_VERIFY
0x00
OBJ_ATTR_LOCAL
0x01
OBJ_ATTR_SENSITIVE
0x01
OBJ_ATTR_EXTRACTABLE
0x01
OBJ_ATTR_LABEL
aes256
OBJ_ATTR_ID
test_01
OBJ_ATTR_VALUE_LEN
0x00000020
OBJ_ATTR_KCV
0x1a4b31
```

## パラメータ
<a name="getAttribute-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-オ**  
ターゲットキーのキーハンドルを指定します。各コマンドに指定できるキーは 1 つのみです。キーのキーハンドルを取得するには、[findKey](key_mgmt_util-findKey.md) を使用します。  
また、指定するキーは所有しているか、共有している必要があります。キーのユーザーを確認するには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) を使用します。  
必須: はい

**-a**  
属性を識別します。属性を表す定数を入力するか、すべての属性を表す `512` を入力します。たとえば、キーの種類を取得するには「`256`」と入力します。これは `OBJ_ATTR_KEY_TYPE` 属性を表す定数です。  
属性とその定数のリスト化するために、[listAttributes](key_mgmt_util-listAttributes.md) を使用します。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  
必須: はい

**-out**  
指定したファイルに出力を書き込みます。ファイルパスを入力します。出力を `stdout` に書き込むことはできません。  
指定したファイルが既に存在する場合、**getAttribute** は警告なしにそのファイルを上書きします。  
必須: はい

## 関連トピック
<a name="getAttribute-seealso"></a>
+ cloudhsm\$1mgmt\$1util の中の [setAttribute](cloudhsm_mgmt_util-getAttribute.md) です。
+ [listAttributes](key_mgmt_util-listAttributes.md)
+ [setAttribute](key_mgmt_util-setAttribute.md)
+ [findKey](key_mgmt_util-findKey.md)
+ [キー属性リファレンス](key-attribute-table.md)

# KMU を使用して AWS CloudHSM キーをフェイク PEM 形式にエクスポートする
<a name="key_mgmt_util-getCaviumPrivKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **getCaviumPrivKey** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) からプライベートキーをフェイク PEM 形式でエクスポートします。フェイク PEM ファイルは、実際のプライベートキーマテリアルを含むわけではなく、HSM のプライベートキーを参照し、ウェブサーバーから AWS CloudHSMへの SSL/TLS オフロードを確立するために使用できます。詳細については、「[Tomcat を使用した Linux での SSL/TLS オフロード](third-offload-linux-jsse.md)」または「[NGINX または Apache を使用した Linux での SSL/TLS オフロード](third-offload-linux-openssl.md)」を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## 構文
<a name="getCaviumPrivKey-syntax"></a>

```
getCaviumPrivKey -h

getCaviumPrivKey -k <private-key-handle>
                 -out <fake-PEM-file>
```

## 例
<a name="getCaviumPrivKey-examples"></a>

この例では、**getCaviumPrivKey** を使ってプライベートキーをフェイク PEM 形式でエクスポートする方法を示します。

**Example : フェイク PEM ファイルをエクスポートする**  
このコマンドは、ハンドルが `15` のプライベートキーのフェイク PEM バージョンを作成してエクスポートし、`cavKey.pem` という名前のファイルを保存します。**exportPrivateKey** は、コマンドが成功すると成功メッセージを返します。  

```
Command: getCaviumPrivKey -k 15 -out cavKey.pem

Private Key Handle is written to cavKey.pem in fake PEM format

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

## パラメータ
<a name="getCaviumPrivKey-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-k`**  
フェイク PEM 形式でエクスポートするプライベートキーのキーハンドルを指定します。  
必須: はい

**`-out`**  
フェイク PEM キーの書き込み先とするファイルの名前を指定します。  
必須: はい

## 関連トピック
<a name="getCaviumPrivKey-seealso"></a>
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [Tomcat を使用した Linux での SSL/TLS オフロード](third-offload-linux-jsse.md)
+ [NGINX または Apache を使用した Linux での SSL/TLS オフロード](third-offload-linux-openssl.md)

# KMU を使用して HSM AWS CloudHSM パーティション証明書を取得する
<a name="key_mgmt_util-getCert"></a>

 AWS CloudHSM key\$1mgmt\$1util の **getCert** コマンドを使用して、ハードウェアセキュリティモジュールの (HSM) パーティション証明書を取得し、ファイルに保存します。コマンドを実行する際、取得する証明書のタイプを指定します。そのためには、以下の「[パラメータ](#kmu-getCert-parameters)」セクションで説明されているように、いずれかの整数を使用します。これらの各証明書のロールについては、「[HSM のアイデンティティの確認](verify-hsm-identity.md)」を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="kmu-getCert-syntax"></a>

```
getCert -h 

getCert -f <file-name> 
        -t <certificate-type>
```

## 例
<a name="kmu-getCert-examples"></a>

この例では、**getCert** を使用して、クラスターのお客様のルート証明書を取得し、ファイルに保存する方法を示します。

**Example : お客様のルート証明書を取得する**  
このコマンドは、お客様のルート証明書 (整数 `4` で表現) をエクスポートし、`userRoot.crt` というファイルに保存します。**getCert** は、コマンドが成功すると成功メッセージを返します。  

```
Command: getCert -f userRoot.crt -s 4

Cfm3GetCert() returned 0 :HSM Return: SUCCESS
```

## パラメータ
<a name="kmu-getCert-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-f`**  
取得された証明書の保存先とするファイルの名前を指定します。  
必須: はい

**-s**  
取得するパーティション証明書のタイプを指定する整数。整数とその証明書タイプは次のとおりです。  
+ **1** - 製造元のルート証明書。
+ **2** - 製造元のハードウェア証明書。
+ **4** - お客様のルート証明書。
+ **8** - (お客様のルート証明書で署名されている)クラスターの証明書。
+ **16** - (製造元のルート証明書に連鎖されている)クラスターの証明書。
必須: はい

## 関連トピック
<a name="kmu-getCert-seealso"></a>
+ [HSM のアイデンティティの確認](verify-hsm-identity.md)

# KMU を使用して AWS CloudHSM キーのユーザーを取得する
<a name="key_mgmt_util-getKeyInfo"></a>

 AWS CloudHSM key\$1mgmt\$1util の **getKeyInfo** コマンドを使用して、キーを共有している所有者や暗号化ユーザー (CU) など、キーを使用できるユーザーのハードウェアセキュリティモジュール (HSM) ユーザー IDs を返します。キーに対するクォーラム認証が有効になっている場合、**getKeyInfo** はキーを使用する暗号化オペレーションを承認する必要があるユーザーの数も返します。**getKeyInfo** は、所有および共有しているキーに対してのみ実行できます。

パブリックキーに対して **getKeyInfo** を実行すると、HSM のすべてのユーザーがパブリックキーを使用できる場合でも、**getKeyInfo** はキー所有者のみを返します。HSM のユーザーの HSM ユーザー ID を確認するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。特定のユーザーのキーを確認するには、[findKey](key_mgmt_util-findKey.md) `-u` を使用します。

ユーザーは、自分で作成したキーを所有します。自分で作成したキーは、他のユーザーと共有できます。既存のキーを共有または共有解除するには、cloudhsm\$1mgmt\$1util の [shareKey](cloudhsm_mgmt_util-shareKey.md) を使用します。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="getKeyInfo-syntax"></a>

```
getKeyInfo -h

getKeyInfo -k <key-handle>
```

## 例
<a name="getKeyInfo-examples"></a>

以下の例では、**getKeyInfo** を使用してキーのユーザーに関する情報を取得する方法を示します。

**Example : 対称キーのユーザーを取得する**  
次のコマンドでは、キーハンドルが `9` の AES (対称) キーを使用できるユーザーを取得します。出力は、キーの所有者がユーザー 3 であり、キーをユーザー 4 と共有していることを示しています。  

```
Command:  getKeyInfo -k 9

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 1 user(s):

                4
```

**Example : 非対称キーペアのユーザーを取得する**  
以下のコマンドでは、**getKeyInfo** を使用して RSA (非対称) キーペアのキーを使用できるユーザーを取得します。パブリックキーのキーハンドルは `21` です。プライベートキーのキーハンドルは `20` です。  
プライベートキー (**getKeyInfo**) に対して `20` を実行すると、キー所有者 (3) およびキーを共有している Crypto User (CU) 4 と 5 が返されます。  

```
Command:  getKeyInfo -k 20

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3

       also, shared to following 2 user(s):

                4
                5
```
**getKeyInfo** をパブリックキー (`21`) に対して実行すると、キー所有者 (3) のみが返されます。  

```
Command:  getKeyInfo -k 21

       Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

       Owned by user 3
```
ユーザー 4 がパブリックキー (および HSM のすべてのパブリックキー) を使用できることを確認するには、`-u`findKey[ の ](key_mgmt_util-findKey.md) パラメータを使用します。  
出力は、ユーザー 4 がキーペアのパブリックキー (`21`) とプライベートキー (`20`) の両方を使用できることを示しています。ユーザー 4 は、他のすべてのパブリックキーと、自分で作成したプライベートキーまたは共有しているプライベートキーを使用することもできます。  

```
Command:  findKey -u 4
Total number of keys present 8

 number of keys matched from start index 0::7
11, 12, 262159, 262161, 262162, 19, 20, 21

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

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

**Example : キーのクォーラム認証値 (m\$1value) を取得する**  
この例では、キーの `m_value`、つまりキーを使用する暗号化オペレーションを承認する必要があるクォーラムのユーザー数を取得する方法を示します。  
キーに対してクォーラム認証を有効にすると、ユーザーのクォーラムは、そのキーを使用する暗号化オペレーションを承認する必要があります。クォーラム認証を有効にしてクォーラムサイズを設定するには、キーの作成時に `-m_value` パラメータを使用します。  
次のコマンドでは、[genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) を使用して、ユーザー 4 と共有される RSA キーペアを作成します。また、`m_value` パラメータを使用してペアのプライベートキーでクォーラム認証を有効にし、クォーラムサイズを 2 ユーザーに設定します。ユーザー数は必要な承認を提供できるだけの大きさが必要です。  
出力は、このコマンドでパブリックキー `27` とプライベートキー `28` が作成されたことを示しています。  

```
 Command:  genRSAKeyPair -m 2048 -e 195193 -l rsa_mofn -id rsa_mv2 -u 4 -m_value 2

        Cfm3GenerateKeyPair returned: 0x00 : HSM Return: SUCCESS

        Cfm3GenerateKeyPair:    public key handle: 27    private key handle: 28

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
```
次のコマンドでは、**getKeyInfo** を使用して、プライベートキーのユーザーに関する情報を取得します。出力は、キーの所有者がユーザー 3 であり、キーがユーザー 4 と共有されていることを示しています。また、2 ユーザーのクォーラムが、このキーを使用するすべての暗号化オペレーションを承認する必要があることも示しています。  

```
Command:  getKeyInfo -k 28

        Cfm3GetKey returned: 0x00 : HSM Return: SUCCESS

        Owned by user 3

        also, shared to following 1 user(s):

                 4
         2 Users need to approve to use/manage this key
```

## パラメータ
<a name="getKeyInfo-parameters"></a>

**-h**  
コマンドのコマンドラインヘルプを表示します   
必須: はい

**-k**  
HSM で 1 つのキーのキーハンドルを指定します。所有または共有するキーのキーハンドルを入力します。このパラメータは必須です。  
キーハンドルを見つけるには、[findKey](key_mgmt_util-listUsers.md) コマンドを使用します。  
必須: はい

## 関連トピック
<a name="getKeyInfo-seealso"></a>
+ cloudhsm\$1mgmt\$1util の [ getKeyInfo ](cloudhsm_mgmt_util-getKeyInfo.md)
+ [listUsers](key_mgmt_util-listUsers.md)
+ [findKey](key_mgmt_util-findKey.md)
+ cloudhsm\$1mgmt\$1util の中の [findAllKeys](cloudhsm_mgmt_util-findAllKeys.md) です。

# KMU AWS CloudHSM のヘルプ情報を表示する
<a name="key_mgmt_util-help"></a>

 AWS CloudHSM key\$1mgmt\$1util の **help** コマンドを使用して、使用可能なすべての key\$1mgmt\$1util コマンドに関する情報を表示します。

**help** を実行する前に、[key\$1mgmt\$1util を起動](key_mgmt_util-setup.md#key_mgmt_util-start)する必要があります。

## Syntax
<a name="help-syntax"></a>

```
help
```

## 例
<a name="help-examples"></a>

次の例は、`help` コマンドの出力を示します。

**Example**  

```
Command:  help

Help Commands Available:

Syntax: <command> -h


   Command               Description
   =======               ===========

   exit                   Exits this application
   help                   Displays this information

        Configuration and Admin Commands
   getHSMInfo             Gets the HSM Information
   getPartitionInfo       Gets the Partition Information
   listUsers              Lists all users of a partition
   loginStatus            Gets the Login Information
   loginHSM               Login to the HSM
   logoutHSM              Logout from the HSM

        M of N commands
   getToken               Initiate an MxN service and get Token
   delToken               delete Token(s)
   approveToken           Approves an MxN service
   listTokens             List all Tokens in the current partition

        Key Generation Commands

        Asymmetric Keys:
   genRSAKeyPair          Generates an RSA Key Pair
   genDSAKeyPair          Generates a DSA Key Pair
   genECCKeyPair          Generates an ECC Key Pair

        Symmetric Keys:
   genPBEKey              Generates a PBE DES3 key
   genSymKey              Generates a Symmetric keys

        Key Import/Export Commands
   createPublicKey        Creates an RSA public key
   importPubKey           Imports RSA/DSA/EC Public key
   exportPubKey           Exports RSA/DSA/EC Public key
   importPrivateKey       Imports RSA/DSA/EC private key
   exportPrivateKey       Exports RSA/DSA/EC private key
   imSymKey               Imports a Symmetric key
   exSymKey               Exports a Symmetric key
   wrapKey                Wraps a key from from HSM using the specified handle
   unWrapKey              UnWraps a key into HSM using the specified handle

        Key Management Commands
   deleteKey              Delete Key
   setAttribute           Sets an attribute of an object
   getKeyInfo             Get Key Info about shared users/sessions
   findKey                Find Key
   findSingleKey          Find single Key
   getAttribute           Reads an attribute from an object

        Certificate Setup Commands
   getCert                Gets Partition Certificates stored on HSM

        Key Transfer Commands
   insertMaskedObject     Inserts a masked object
   extractMaskedObject    Extracts a masked object

        Management Crypto Commands
   sign                   Generates a signature
   verify                 Verifies a signature
   aesWrapUnwrap          Does NIST AES Wrap/Unwrap

        Helper Commands
   Error2String           Converts Error codes to Strings
                          save key handle in fake PEM format
   getCaviumPrivKey       Saves an RSA private key handle
                          in fake PEM format
   IsValidKeyHandlefile   Checks if private key file has
                          an HSM key handle or a real key
   listAttributes         List all attributes for getAttributes
   listECCCurveIds        List HSM supported ECC CurveIds
```

## パラメータ
<a name="loginHSM-parameters"></a>

このコマンドにはパラメータがありません。

## 関連トピック
<a name="loginHSM-seealso"></a>
+ [loginHSM および logoutHSM](key_mgmt_util-loginHSM.md)

# KMU AWS CloudHSM を使用してプライベートキーをインポートする
<a name="key_mgmt_util-importPrivateKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **importPrivateKey** コマンドを使用して、非対称プライベートキーをファイルからハードウェアセキュリティモジュール (HSM) にインポートします。HSM では、クリアテキストのキーを直接インポートすることはできません。このコマンドは、指定した AES ラップキーを使用してプライベートキーを暗号化し、HSM 内のキーをラップ解除します。 AWS CloudHSM キーを証明書に関連付ける場合は、[このトピック](ksp-library-associate-key-certificate.md)を参照してください。

**注記**  
パスワードで保護された PEM キーは、対称キーまたはプライベートキーを使用してインポートすることはできません。

`OBJ_ATTR_UNWRAP` と `OBJ_ATTR_ENCRYPT` 属性値 `1` を含む AES ラップキーを指定する必要があります。キーの属性を確認するには、[**getAttribute**](key_mgmt_util-getAttribute.md) コマンドを使用します。

**注記**  
 このコマンドでは、インポートしたキーをエクスポート不可として指定するオプションは使用できません。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="importPrivateKey-syntax"></a>

```
importPrivateKey -h

importPrivateKey -l <label>
                 -f <key-file>
                 -w <wrapping-key-handle>
                 [-sess]
                 [-id <key-id>]
                 [-m_value <0...8>]
                 [min_srv <minimum-number-of-servers>]
                 [-timeout <number-of-seconds>]
                 [-u <user-ids>]
                 [-wk <wrapping-key-file>]
                 [-attest]
```

## 例
<a name="importPrivateKey-examples"></a>

この例では、**importPrivateKey** を使ってプライベートキーを HSM にインポートする方法を示します。

**Example : プライベートキーをインポートする**  
このコマンドは、`rsa2048.key` というラベルとハンドルが `524299` のラップキーを使って、`rsa2048-imported` という名前のファイルからプライベートキーをインポートします。**importPrivateKey** コマンドは、成功すると、インポートされたキーのキーハンドルと成功メッセージを返します。  

```
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
```

## パラメータ
<a name="importPrivateKey-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-l`**  
ユーザー定義のプライベートキーラベルを指定します。  
必須: はい

**`-f`**  
インポートするキーのファイル名を指定します。  
必須: はい

**`-w`**  
ラップキーのキーハンドルを指定します。このパラメータは必須です。キーハンドルを見つけるには、[**findKey**](key_mgmt_util-findKey.md) コマンドを使用します。  
キーをラップキーとして使用できるかどうかを確認するには、[**getAttribute**](key_mgmt_util-getAttribute.md) を使用して `OBJ_ATTR_WRAP` 属性 (262) の値を取得します。ラップキーを作成するには、[**genSymKey**](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を作成します。  
`-wk` パラメータを使用して外部のラップ解除キーを指定した場合、インポート時の (ラップ解除ではなく) ラップには `-w` ラップキーが使われます。  
必須: はい

**`-sess`**  
インポートされたキーをセッションキーに指定します。  
デフォルト: インポートされたキーは、クラスター内で永続 (トークン) キーとして保持されます。  
必須: いいえ

**`-id`**  
インポートするキーの ID を指定します。  
デフォルト: ID 値なし。  
必須: いいえ

**`-m_value`**  
インポートされたキーを使用した暗号化オペレーションを、何人のユーザーが承認しなければならないかを指定します。**0**～**8** の値を入力します。  
このパラメータが有効なのは、コマンドの `-u` パラメータが `m_value` の要件を満たすために十分な数のユーザーとキーを共有するときのみです。  
デフォルト: 0  
必須: いいえ

**`-min_srv`**  
`-timeout` パラメータの値が期限切れになる前に、インポートされたキーが最小いくつの HSM で同期されるかを指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**`-timeout`**  
`min-serv` パラメータが含まれている場合に、すべての HSM でキーが同期されるまで待機する秒数を指定します。数値が指定されていない場合、ポーリングが永遠に続きます。  
デフォルト: 無制限  
必須: いいえ

**`-u`**  
インポートされたプライベートキーを共有するユーザーのリストを指定します。このパラメータは、他の HSM Crypto User (CU) に対し、インポートされたキーを暗号化オペレーションに使用するアクセス許可を付与します。  
HSM ユーザー ID のカンマ区切りリスト (例: -`-u 5,6`) を入力します。現在のユーザーの HSM ユーザー ID を含めないでください。HSM で CU の HSM ユーザー ID を検索するには、[listUsers](key_mgmt_util-listUsers.md) を使用します。  
デフォルト: 現在のユーザーのみがインポートされたキーを使用できます。  
必須: いいえ

**`-wk`**  
インポートするキーのラップ解除に使用するキーを指定します。プレーンテキストの AES キーが含まれているファイルのパスと名前を入力します。  
このパラメータを含めた場合、**importPrivateKey** は、インポートするキーのラップに `-wk` ファイルのキーを使用します。また、ラップ解除には `-w` パラメータで指定されたキーを使用します。  
デフォルト: `-w` パラメータで指定されたラップキーを使用して、ラップとラップ解除の両方を行う。  
必須: いいえ

**`-attest`**  
ファームウェアレスポンスの証明チェックを実行し、クラスターを実行するファームウェアが侵害されていないことを確認します。  
必須: いいえ

## 関連トピック
<a name="importPrivateKey-seealso"></a>
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)

# KMU AWS CloudHSM を使用してパブリックキーをインポートする
<a name="key_mgmt_util-importPubKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **importPubKey** コマンドを使用して、PEM 形式のパブリックキーをハードウェアセキュリティモジュール (HSM) にインポートします。このコマンドを使用すると、HSM の外部で生成されたパブリックキーをインポートできます。また、このコマンドを使用して、[exportPubKey](key_mgmt_util-exportPubKey.md) コマンドでエクスポートされたキーなど、HSM からエクスポートされたキーをインポートすることもできます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="importPubKey-syntax"></a>

```
importPubKey -h

importPubKey -l <label>
             -f <key-file>
             [-sess]
             [-id <key-id>]
             [min_srv <minimum-number-of-servers>]
             [-timeout <number-of-seconds>]
```

## 例
<a name="importPubKey-examples"></a>

この例では、**importPubKey** を使ってパブリックキーを HSM にインポートする方法を示します。

**Example : パブリックキーをインポートする**  
このコマンドは、`importedPublicKey` というラベルを使って `public.pem` という名前のファイルからパブリックキーをインポートします。**importPubKey** コマンドは、成功すると、インポートされたキーのキーハンドルと成功メッセージを返します。  

```
Command: importPubKey -l importedPublicKey -f public.pem

Cfm3CreatePublicKey returned: 0x00 : HSM Return: SUCCESS

Public Key Handle: 262230

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

## パラメータ
<a name="importPubKey-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-l`**  
ユーザー定義のパブリックキーラベルを指定します。  
必須: はい

**`-f`**  
インポートするキーのファイル名を指定します。  
必須: はい

**`-sess`**  
インポートされたキーをセッションキーに指定します。  
デフォルト: インポートされたキーは、クラスター内で永続 (トークン) キーとして保持されます。  
必須: いいえ

**`-id`**  
インポートするキーの ID を指定します。  
デフォルト: ID 値なし。  
必須: いいえ

**`-min_srv`**  
`-timeout` パラメータの値が期限切れになる前に、インポートされたキーが最小いくつの HSM に同期されるかを指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**`-timeout`**  
`min-serv` パラメータが含まれている場合に、すべての HSM でキーが同期されるまで待機する秒数を指定します。数値が指定されていない場合、ポーリングが永遠に続きます。  
デフォルト: 無制限  
必須: いいえ

## 関連トピック
<a name="importPubKey-seealso"></a>
+ [exportPubKey](key_mgmt_util-exportPubKey.md)
+ [キーの生成](generate-keys.md)

# AWS CloudHSM KMU を使用してプレーンテキストの対称キーをインポートする
<a name="key_mgmt_util-imSymKey"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **imSymKey** コマンドを使用して、対称キーのプレーンテキストコピーをファイルからハードウェアセキュリティモジュール (HSM) にインポートします。これを使用して、HSM 外で任意の方法で生成したキーや、HSM からエクスポートしたキー ([exSymKey](key_mgmt_util-exSymKey.md) でファイルに書き込んだキーなど) をインポートできます。

インポートプロセス中に、**imSymKey** は選択した AES キー (*ラッピングキー*) を使用して、インポートするキーを*ラップ* (暗号化) してから*ラップ解除* (復号化) します。ただし、**imSymKey** を使用できるのは、プレーンテキストのキーが含まれているファイルに対してのみです。暗号化されたキーのエクスポートとインポートには、[wrapKey](key_mgmt_util-wrapKey.md) コマンドと [unWrapKey](key_mgmt_util-unwrapKey.md) コマンドを使用します。

また、**imSymKey** コマンドは対称キーのみをインポートします。パブリックキーをインポートするには、[importPubKey](key_mgmt_util-importPubKey.md) を使用します。プライベートキーをインポートするには、 [importPrivateKey](key_mgmt_util-importPrivateKey.md) または [wrapKey](key_mgmt_util-wrapKey.md) を使用します。

**注記**  
パスワードで保護された PEM キーは、対称キーまたはプライベートキーを使用してインポートすることはできません。

インポートしたキーは、HSM で生成したキーとほぼ同じように動作します。ただし、[OBJ\$1ATTR\$1LOCAL 属性](key-attribute-table.md)の値は 0 であり、ローカルに生成されたものでないことを示しています。次のコマンドを使用して、インポートした対称キーを共有します。`shareKey`cloudhsm\$1mgmt\$1util[ で ](cloudhsm_mgmt_util.md) コマンドを使用して、インポート後にキーを共有します。

```
imSymKey -l aesShared -t 31 -f kms.key -w 3296 -u 5
```

キーのインポート後に、必ずキーファイルをマークまたは削除してください。このコマンドでは、同じキーマテリアルを複数回インポートすることが禁止されません。その結果、キーハンドルが異なる複数のキーが同じキーマテリアルを持つ場合があり、キーマテリアルの使用の追跡が困難になります。また、暗号化の制限に制約されます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="imSymKey-syntax"></a>

```
imSymKey -h

imSymKey -f <key-file>
         -w <wrapping-key-handle>  
         -t <key-type>
         -l <label>
         [-id <key-ID>]
         [-sess]
         [-wk <wrapping-key-file> ]
         [-attest]
         [-min_srv <minimum-number-of-servers>]
         [-timeout <number-of-seconds> ]
         [-u <user-ids>]
```

## 例
<a name="imSymKey-examples"></a>

以下の例では、**imSymKey** を使用して対称キーを HSM 内にインポートする方法を示します。

**Example : AES 対称キーをインポートする**  
次の例では、**imSymKey** を使用して AES 対称キーを HSM 内にインポートします。  
最初のコマンドでは、OpenSSL を使用してランダムな 256 ビット AES 対称キーを生成します。生成したキーは、`aes256.key` ファイルに保存されます。  

```
$  openssl rand -out aes256.key 32
```
2 番目のコマンドでは、**imSymKey** を使用し、AES キーを `aes256.key` ファイルから HSM 内にインポートします。HSM の AES キー (キー 20) をラップキーとして使用し、`imported` をラベルとして指定します。ID とは異なり、ラベルはクラスター内で一意である必要はありません。`-t` (タイプ) パラメータの値は、AES を表す `31` です。  
出力は、ファイルのキーがラップ/ラップ解除され、次に HSM 内にインポートされて、キーハンドル 262180 が割り当てられたことを示しています。  

```
Command:  imSymKey -f aes256.key -w 20 -t 31 -l imported

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 262180

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```
次のコマンドでは、[getAttribute](key_mgmt_util-getAttribute.md) を使用して、新しくインポートしたキーの OBJ\$1ATTR\$1LOCAL 属性 ([属性 355](key-attribute-table.md)) を取得し、それを `attr_262180` ファイルに書き込みます。  

```
Command:  getAttribute -o 262180 -a 355 -out attributes/attr_262180
Attributes dumped into attributes/attr_262180_imported file

        Cfm3GetAttribute returned: 0x00 : HSM Return: SUCCESS
```
属性ファイルを調べると、`OBJ_ATTR_LOCAL` 属性の値は 0 であり、キーマテリアルが HSM で生成されたものでないことがわかります。  

```
$  cat attributes/attr_262180_local
OBJ_ATTR_LOCAL
0x00000000
```

**Example : クラスター間で対称キーを移動する**  
次の例では、[exSymKey](key_mgmt_util-exSymKey.md) と **imSymKey** を使用し、クラスター間でプレーンテキストの AES キーを移動する方法を示します。次のようなプロセスを使用して HSM の両クラスターで有効な AES ラッピングを作成できます。共有ラップキーの準備が整ったら、[wrapKey](key_mgmt_util-wrapKey.md) と [unWrapKey](key_mgmt_util-unwrapKey.md) を使用してクラスター間で暗号化されたキーを移動できます。  
このオペレーションを実行する CU ユーザーには、両クラスターで HSM にログインするアクセス許可が必要です。  
最初のコマンドでは、[exSymKey](key_mgmt_util-exSymKey.md) を使用し、キー 14 (32 ビット AES キー) をクラスター 1 から `aes.key` ファイル内にエクスポートします。ラップキーとして、クラスター 1 の HSM でキー 6 (AES キー) を使用します。  

```
Command: exSymKey -k 14 -w 6 -out aes.key

        Cfm3WrapKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapHostKey returned: 0x00 : HSM Return: SUCCESS


Wrapped Symmetric Key written to file "aes.key"
```
次に、ユーザーはクラスター 2 の key\$1mgmt\$1util にログインし、**imSymKey** コマンドを実行して `aes.key` ファイルのキーをクラスター 2 の HSM 内にインポートします。このコマンドでは、ラップキーとして、クラスター 2 の HSM で キー 252152 (AES キー) を使用します。  
[exSymKey](key_mgmt_util-exSymKey.md) と **imSymKey** で使用するラップキーは、ターゲットキーをラップして即座にラップ解除するため、クラスターごとに別のものを使用できます。  
出力は、キーがクラスター 2 に正常にインポートされてキーハンドル 21 が割り当てられたことを示しています。  

```
Command:  imSymKey -f aes.key -w 262152 -t 31 -l xcluster

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 21

        Cluster Error Status
        Node id 1 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
        Node id 2 and err state 0x00000000 : HSM Return: SUCCESS
```
クラスター 1 のキー 14 とクラスター 2 のキー 21 で、キーマテリアルが同じであることを確認するには、各キーのキーチェック値 (KCV) を取得します。KCV 値が同じであれば、キーマテリアルは同じです。  
次のコマンドでは、クラスター 1 の [getAttribute](key_mgmt_util-getAttribute.md) を使用してキー 14 の KCV 属性 (属性 371) の値を `attr_14_kcv` ファイルに書き込みます。次に、**cat** コマンドを使用して、`attr_14_kcv` ファイルの内容を取得します。  

```
Command:  getAttribute -o 14 -a 371 -out attr_14_kcv
Attributes dumped into attr_14_kcv file

$  cat attr_14_kcv
OBJ_ATTR_KCV
0xc33cbd
```
次の同様のコマンドでは、クラスター 2 の [getAttribute](key_mgmt_util-getAttribute.md) を使用してキー 21 の KCV 属性 (属性 371) の値を `attr_21_kcv` ファイルに書き込みます。次に、**cat** コマンドを使用して、`attr_21_kcv` ファイルの内容を取得します。  

```
Command:  getAttribute -o 21 -a 371 -out attr_21_kcv
Attributes dumped into attr_21_kcv file

$  cat attr_21_kcv
OBJ_ATTR_KCV
0xc33cbd
```
出力は、2 つのキーの KCV 値が同じであり、キーマテリアルが同じであることを示しています。  
両クラスターの HSM でキーマテリアルが同じであるため、プレーンテキストキーを公開することなく、クラスター間で暗号化されたキーを共有できます。たとえば、`wrapKey` コマンドでラップキー 14 を使用してクラスター 1 から暗号化されたキーをエクスポートし、次に `unWrapKey` でラップキー 21 を使用してクラスター 2 に暗号化されたキーをインポートできます。

**Example : セッションキーをインポートする**  
次のコマンドでは、`-sess` の **imSymKey** パラメータを使用し、現在のセッションでのみ有効な 192 ビット Triple DES キーをインポートします。  
このコマンドでは、インポートするキーが含まれているファイルを `-f` パラメータで指定します。また、キーのタイプを `-t` パラメータで指定し、ラップキーを `-w` パラメータで指定します。キーを分類するラベルを `-l` パラメータで指定し、キーのフレンドリーな一意の識別子を `-id` パラメータで作成します。さらに、キーをインポートするファームウェアを `-attest` パラメータで検証します。  
出力は、キーが正常にラップ/ラップ解除され、HSM 内にインポートされて、キーハンドル 37 が割り当てられたことを示しています。また、認証チェックに合格し、ファームウェアが改ざんされていないことを示しています。  

```
Command:  imSymKey -f 3des192.key -w 6 -t 21 -l temp -id test01 -sess -attest

        Cfm3WrapHostKey returned: 0x00 : HSM Return: SUCCESS

        Cfm3CreateUnwrapTemplate returned: 0x00 : HSM Return: SUCCESS

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Unwrapped.  Key Handle: 37

        Attestation Check : [PASS]

        Cluster Error Status
        Node id 0 and err state 0x00000000 : HSM Return: SUCCESS
```
次に、[getAttribute](key_mgmt_util-getAttribute.md) コマンドまたは [findKey](key_mgmt_util-findKey.md) コマンドを使用し、新しくインポートされたキーの属性を検証できます。次のコマンドでは、**findKey** を使用して、キー 37 のタイプ、ラベル、および ID がコマンドで指定されたとおりであること、さらにセッションキーであることを検証します。出力の 5 行目が示すように、**findKey** は、すべての属性に一致するキーがキー 37 のみであることを示しています。  

```
Command:  findKey -t 21 -l temp -id test01 -sess 1
Total number of keys present 1

 number of keys matched from start index 0::0
37

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

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

## パラメータ
<a name="imSymKey-params"></a>

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

**-f**  
インポートするキーが含まれているファイルを指定します。  
ファイルには、指定された長さの AES キーまたは Triple DES キーのプレーンテキストコピーが含まれている必要があります。RC4 キーと DES キーは FIPS モードの HSM では無効です。  
+ **AES**: 16、24、または 32 バイト
+ **Triple DES (3 DES)**: 24 バイト
必須: はい

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-id**  
キーのユーザー定義識別子を指定します。クラスター内で一意の文字列を入力します。デフォルトは空の文字列です。  
デフォルト: ID 値なし。  
必須: いいえ

**-I**  
キーのユーザー定義ラベルを指定します。文字列を入力します。  
キーを識別するのに役立つ任意のフレーズを使用できます。ラベルは一意である必要がないため、このラベルを使用してキーをグループ化および分類できます。  
必須: はい

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-t**  
対称キーのタイプを指定します。キーのタイプを表す定数を入力します。たとえば、AES キーを作成するには「`-t 31`」と入力します。  
有効な値:   
+ 21: [Triple DES (3DES)](https://en.wikipedia.org/wiki/Triple_DES)。
+ 31: [AES](https://en.wikipedia.org/wiki/Advanced_Encryption_Standard)
必須: はい

**-u**  
指定したユーザーとインポートするキーを共有します。このパラメータは、別の HSM Crypto User (CU) に、暗号化オペレーションでこのキーを使用するアクセス許可を付与します。  
1 つの ID または HSM ユーザー ID のカンマ区切りリスト (`5,6` など) を入力します。現在のユーザーの HSM ユーザー ID を含めないでください。ID を確認するには、cloudhsm\$1mgmt\$1util コマンドラインツールの [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/cloudhsm_mgmt_util-listUsers.html) コマンドまたは key\$1mgmt\$1util コマンドラインツールの [listUsers](https://docs.aws.amazon.com/cloudhsm/latest/userguide/key_mgmt_util-listUsers.html) コマンドを使用できます。  
必須: いいえ

**-w**  
ラップキーのキーハンドルを指定します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
*ラップキー*は、インポートプロセスでキーの暗号化 (ラップ) と復号 (ラップ解除) に使用する HSM のキーです。ラップキーとして使用できるのは AES キーのみです。  
任意の AES キー (任意のサイズ) をラップキーとして使用できます。ラップキーは、ターゲットキーをラップし、直後にラップ解除するため、セッション専用の AES キーをラップキーとして使用できます。キーをラップキーとして使用できるかどうかを確認するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用して `OBJ_ATTR_WRAP` 属性 (262) の値を取得します。ラップキーを作成するには、[genSymKey](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を作成します。  
`-wk` パラメータを使用して外部のラップキーを指定した場合、インポートしたキーは `-w` ラップキーでラップ解除することはできますが、ラップすることはできません。  
キー 4 は、サポートされていない内部キーです。AES キーをラップキーとして作成および管理することをお勧めします。
必須: はい

**-wk**  
指定されたファイルの AES キーを使用して、インポートするキーをラップします。プレーンテキストの AES キーが含まれているファイルのパスと名前を入力します。  
このパラメータを含めると、**imSymKey** は、`-wk` ファイルのキーを使用してインポートされたキーをラップし、`-w` パラメータで指定された HSM のキーを使用してラップ解除します。`-w` パラメータと `-wk` パラメータの値は同じプレーンテキストのキーに解決される必要があります。  
デフォルト: HSM のラップキーを使用してラップ解除します。  
必須: いいえ

## 関連トピック
<a name="imSymKey-seealso"></a>
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)
+ [exportPrivateKey](key_mgmt_util-exportPrivateKey.md)
+ [exportPubKey](key_mgmt_util-exportPubKey.md)

# KMU AWS CloudHSM を使用してマスクされたオブジェクトを挿入する
<a name="key_mgmt_util-insertMaskedObject"></a>

 AWS CloudHSM key\$1mgmt\$1util の **insertMaskedObject** コマンドを使用して、マスクされたオブジェクトをファイルから指定されたハードウェアセキュリティモジュール (HSM) に挿入します。マスクされたオブジェクトとは、*クローンされた*オブジェクトで、[**extractMaskedObject**](key_mgmt_util-extractMaskedObject.md) コマンドを使用して HSM から抽出されたものです。マスクされたオブジェクトは、再び元のクラスターに挿入して初めて使用可能になります。マスクされたオブジェクトは、生成元であるクラスター、またはそのクラスターのクローンにしか挿入できません。これには、[リージョン間でのバックアップのコピー](copy-backup-to-region.md)によって生成されたクラスターのクローンバージョンや、[そのバックアップを使って新しいクラスターを作成することで](create-cluster-from-backup.md)生成された元のクラスターのクローンバージョンが含まれます。

マスクされたオブジェクトは、抽出不可能なキー ([`OBJ_ATTR_EXTRACTABLE`](key-attribute-table.md) 値が `0` であるキー) を含め、キーを効率的にオフロードおよび同期する手段です。これにより、 AWS CloudHSM [設定ファイル](configure-tool.md)を更新することなく、異なるリージョンの関連するクラスター間でキーを安全に同期できます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="insertMaskedObject-syntax"></a>

```
insertMaskedObject -h

insertMaskedObject -f <filename>
                   [-min_srv <minimum-number-of-servers>]
                   [-timeout <number-of-seconds>]
```

## 例
<a name="insertMaskedObject-examples"></a>

この例では、**insertMaskedObject** を使ってマスクされたオブジェクトを HSM に挿入する方法を示します。

**Example : マスクされたオブジェクトを挿入する**  
このコマンドは、`maskedObj` というファイルにあるマスクされたオブジェクトを HSM に挿入します。**insertMaskedObject** コマンドは、成功すると、マスクされたオブジェクトから複合されたキーのキーハンドルと成功メッセージを返します。  

```
Command: insertMaskedObject -f maskedObj

Cfm3InsertMaskedObject returned: 0x00 : HSM Return: SUCCESS
        New Key Handle: 262433

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

## パラメータ
<a name="insertMaskedObject-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-f`**  
マスクされたオブジェクトの挿入先とするファイル名を指定します。  
必須: はい

**`-min_srv`**  
`-timeout` パラメータの値が期限切れになる前に、挿入したマスクされたオブジェクトが最小いくつの HSM で同期されるかを指定します。オブジェクトが割り当てられた時間内に指定の数のサーバーに同期されなかった場合、そのオブジェクトは挿入されません。  
デフォルト: 1  
必須: いいえ

**`-timeout`**  
`min-serv` パラメータが含まれている場合に、すべてのサーバーでキーが同期されるまで待機する秒数を指定します。数値が指定されていない場合、ポーリングが永遠に続きます。  
デフォルト: 無制限  
必須: いいえ

## 関連トピック
<a name="insertMaskedObject-seealso"></a>
+ [extractMaskedObject](key_mgmt_util-extractMaskedObject.md)
+ [syncKey](cloudhsm_mgmt_util-syncKey.md)
+ [リージョン間のバックアップのコピー](copy-backup-to-region.md)
+ [以前のバックアップからの AWS CloudHSM クラスターの作成](create-cluster-from-backup.md)

# KMU AWS CloudHSM を使用してキーファイルを検証する
<a name="key_mgmt_util-IsValidKeyHandlefile"></a>

 AWS CloudHSM key\$1mgmt\$1util の **IsValidKeyHandlefile** コマンドを使用して、キーファイルに実際のプライベートキーまたはフェイク RSA PEM キーが含まれているかどうかを確認します。フェイク PEM ファイルは、実際のプライベートキーマテリアルを含まず、HSM のプライベートキーを参照します。このようなファイルは、ウェブサーバーから AWS CloudHSMへの SSL/TLS オフロードを確立するために使います。詳細については、「[Tomcat を使用した Linux での SSL/TLS オフロード](third-offload-linux-jsse.md)」または「[NGINX または Apache を使用した Linux での SSL/TLS オフロード](third-offload-linux-openssl.md)」を参照してください。

**注記**  
**IsValidKeyHandlefile** は RSA キーにのみ機能します。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="IsValidKeyHandlefile-syntax"></a>

```
IsValidKeyHandlefile -h

IsValidKeyHandlefile -f <rsa-private-key-file>
```

## 例
<a name="IsValidKeyHandlefile-examples"></a>

以下の例では、**IsValidKeyHandlefile** を使って、あるキーファイルに含まれるのが実際のキーマテリアルなのか、フェイク PEM キーマテリアルなのかを特定する方法を示します。

**Example : 実際のプライベートキーを検証する**  
次のコマンドは、`privateKey.pem` というファイルに実際のキーマテリアルが含まれていることを確認します。  

```
Command: IsValidKeyHandlefile -f privateKey.pem

Input key file has real private key
```

**Example : フェイク PEM キーを無効化する**  
次のコマンドは、`caviumKey.pem` というファイルにキーハンドル `15` から生成されたフェイク PEM キーが含まれていることを確認します。  

```
Command: IsValidKeyHandlefile -f caviumKey.pem
            
Input file has invalid key handle: 15
```

## パラメータ
<a name="IsValidKeyHandlefile-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-h`**  
コマンドのコマンドラインヘルプを表示します  
必須: はい

**`-f`**  
有効なキーマテリアルの存在を確認する RSA プライベートキーファイルを指定します。  
必須: はい

## 関連トピック
<a name="IsValidKeyHandlefile-seealso"></a>
+ [getCaviumPrivKey](key_mgmt_util-getCaviumPrivKey.md)
+ [Tomcat を使用した Linux での SSL/TLS オフロード](third-offload-linux-jsse.md) 
+ [NGINX または Apache を使用した Linux での SSL/TLS オフロード](third-offload-linux-openssl.md)

# KMU を使用して AWS CloudHSM キーの属性を一覧表示する
<a name="key_mgmt_util-listAttributes"></a>

 AWS CloudHSM key\$1mgmt\$1util の **listAttributes** コマンドを使用して、 AWS CloudHSM キーの属性とそれを表す定数を一覧表示します。これらの定数は、[getAttribute](key_mgmt_util-getAttribute.md) コマンドおよび [setAttribute](key_mgmt_util-setAttribute.md) コマンドの属性を特定するのに使用します。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="listAttributes-syntax"></a>

このコマンドにはパラメータはありません。

```
listAttributes
```

## 例
<a name="listAttributes-examples"></a>

このコマンドは、key\$1mgmt\$1utilで取得および変更できるキー属性と、それらを表す定数を一覧表示します。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。

key\$1mgmt\$1util の [getAttribute](key_mgmt_util-getAttribute.md) コマンドですべての属性を表すには、`512` を使用します。

```
Command: listAttributes

Following are the possible attribute values for getAttributes:

      OBJ_ATTR_CLASS                  = 0
      OBJ_ATTR_TOKEN                  = 1
      OBJ_ATTR_PRIVATE                = 2
      OBJ_ATTR_LABEL                  = 3
      OBJ_ATTR_KEY_TYPE               = 256
      OBJ_ATTR_ENCRYPT                = 260
      OBJ_ATTR_DECRYPT                = 261
      OBJ_ATTR_WRAP                   = 262
      OBJ_ATTR_UNWRAP                 = 263
      OBJ_ATTR_SIGN                   = 264
      OBJ_ATTR_VERIFY                 = 266
      OBJ_ATTR_LOCAL                  = 355
      OBJ_ATTR_MODULUS                = 288
      OBJ_ATTR_MODULUS_BITS           = 289
      OBJ_ATTR_PUBLIC_EXPONENT        = 290
      OBJ_ATTR_VALUE_LEN              = 353
      OBJ_ATTR_EXTRACTABLE            = 354
      OBJ_ATTR_KCV                    = 371
```

## 関連トピック
<a name="listAttributes-seealso"></a>
+ cloudhsm\$1mgmt\$1util の [setAttribute](cloudhsm_mgmt_util-listAttributes.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [setAttribute](key_mgmt_util-setAttribute.md)
+ [キー属性リファレンス](key-attribute-table.md)

# KMU を使用するすべての AWS CloudHSM ユーザーを一覧表示する
<a name="key_mgmt_util-listUsers"></a>

 AWS CloudHSM key\$1mgmt\$1util の **listUsers** コマンドを使用して、ハードウェアセキュリティモジュール (HSM) のユーザーとそのユーザータイプおよびその他の属性を取得します。

key\$1mgmt\$1util で、listUsers は、一貫性がない場合でも、クラスターのすべての HSM を表す出力を返します。各 HSM のユーザーに関する情報を取得するには、[cloudhsm\$1mgmt\$1util](#key_mgmt_util-listUsers) の listUsers コマンドを使用します。

key\$1mgmt\$1util **listUsers** および [getKeyInfo](key_mgmt_util-getKeyInfo.md) のユーザーコマンドは、Crypto User (CU) が実行する権限を持つ読み取り専用コマンドです。残りのユーザー管理コマンドは cloudhsm\$1mgmt\$1util の一部です。それらは、ユーザー管理アクセス権限を持つ Crypto Officer (CO) によって実行されます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="listUsers-syntax"></a>

```
listUsers 

listUsers -h
```

## 例
<a name="listUsers-examples"></a>

このコマンドは、クラスターの HSM のユーザーとその属性を一覧表示します。`User ID` 属性を使用して、[findKey](key_mgmt_util-findKey.md)、[getAttribute](key_mgmt_util-getAttribute.md)、および [getKeyInfo](key_mgmt_util-getKeyInfo.md) などの他のコマンドでユーザーを特定できます。

```
Command:  listUsers

        Number Of Users found 4

        Index       User ID     User Type       User Name           MofnPubKey    LoginFailureCnt         2FA
        1                1      PCO             admin                     NO               0               NO
        2                2      AU              app_user                  NO               0               NO
        3                3      CU              alice                     YES              0               NO
        4                4      CU              bob                       NO               0               NO
        5                5      CU              trent                     YES              0               NO

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

この出力が示すユーザー属性は以下のとおりです。
+ **ユーザー ID**: key\$1mgmt\$1util および [cloudhsm\$1mgmt\$1util](cloudhsm_mgmt_util.md) のコマンドでユーザーを識別します。
+ [User type](understanding-users-cmu.md): HSM でユーザーが実行できるオペレーションを決定します。
+ **User Name**: ユーザー定義のわかりやすいユーザー名を表示します。
+ **MofnPubKey**: ユーザーが[クォーラム認証トークン](quorum-authentication.md)に署名するためのキーペアを登録済みであるかどうかを示します。
+ **LoginFailureCnt**: ユーザーがログインに失敗した回数を示します。
+ **2FA**: ユーザーが多要素認証を有効にしていることを示します。

## パラメータ
<a name="listUsers-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

## 関連トピック
<a name="listUsers-seealso"></a>
+ cloudhsm\$1mgmt\$1util の [listUsers](#key_mgmt_util-listUsers)
+ [findKey](key_mgmt_util-findKey.md)
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [getKeyInfo](key_mgmt_util-getKeyInfo.md)

# KMU を使用して HSM AWS CloudHSM にログインおよびログアウトする
<a name="key_mgmt_util-loginHSM"></a>

 AWS CloudHSM key\$1mgmt\$1util の **loginHSM** および **logoutHSM** コマンドを使用して、クラスター内のハードウェアセキュリティモジュール (HSM) にログインおよびログアウトします。HSM にログインすると、key\$1mgmt\$1util を使用して、公開キーとプライベートキーの生成、同期、ラッピングなど、さまざまなキー管理オペレーションを実行できます。

どの key\$1mgmt\$1util コマンドを実行する場合でも、事前に [key\$1mgmt\$1util を起動](key_mgmt_util-setup.md#key_mgmt_util-start)する必要があります。key\$1mgmt\$1util を使用してキーを管理するには、[Crypto User (CU)](understanding-users-cmu.md#crypto-user-cmu) として HSM にログインする必要があります。

**注記**  
ログイン試行回数が 5 回を超えると、アカウントがロックアウトされます。2018 年 2 月より前にクラスターを作成した場合、ロックアウトされるまでのログイン試行回数は 20 回です。アカウントのロックを解除するには、暗号化オフィサー (CO) が cloudhsm\$1mgmt\$1util で [changePswd](cloudhsm_mgmt_util-changePswd.md) コマンドを使用してパスワードをリセットする必要があります。  
クラスター内に複数の HSM がある場合は、アカウントがロックアウトされるまでのログイン試行回数の上限が増える可能性があります。これは、CloudHSM クライアントがさまざまな HSM 間で負荷を分散するためです。したがって、ログイン試行は毎回同じ HSM で開始されない場合があります。この機能をテストしている場合は、アクティブな HSM が1つだけのクラスターでテストすることをお勧めします。

## Syntax
<a name="loginHSM-syntax"></a>

```
loginHSM -h

loginHSM -u <user type>
         { -p | -hpswd } <password>
         -s <username>
```

## 例
<a name="loginHSM-examples"></a>

この例では、`loginHSM` および `logoutHSM` コマンドを使ってクラスターの HSM でログインおよびログアウトする方法を示します。

**Example : HSM にログインする**  
このコマンドは、`CU` というユーザー名と `example_user` というパスワードを使い、Crypto User (`aws`) として HSM にログインします。出力には、クラスターのすべてのHSMにログインしたことが示されます。  

```
Command:  loginHSM -u CU -s example_user -p aws

Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster 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
```

**Example : 隠しパスワードでログインします。**  
このコマンドは上記の例と同じですが、今回はシステムがパスワードを隠すように指定することを除きます。  

```
Command:  loginHSM -u CU -s example_user -hpswd
```
システムからパスワードの入力を求められます。パスワードを入力すると、システムはパスワードを非表示にし、コマンドが正常に実行されたことと HSM に接続したことが出力 で示されます。  

```
Enter password: 

Cfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster 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

Command:
```

**Example : HSM からログアウトする**  
このコマンドは HSM からログアウトします。出力は、クラスターのすべての HSM からログアウトしたことを示しています。  

```
Command: logoutHSM

Cfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS
    
Cluster 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
```

## パラメータ
<a name="loginHSM-parameters"></a>

**-h**  
このコマンドに関するヘルプを表示します。

**-u**  
ログインユーザーのタイプを指定します。key\$1mgmt\$1util を使用するには、CU としてログインする必要があります。  
必須: はい

**-s**  
ログインユーザー名を指定します。  
必須: はい

**\$1-p \$1-hpswd\$1**  
`-p` でログインパスワードを指定します。パスワードは、入力するとプレーンテキストで表示されます。パスワードを非表示にするには、`-hpswd` の代わりにオプションの `-p` パラメータを使用して、プロンプトに従います。  
必須: はい

## 関連トピック
<a name="loginHSM-seealso"></a>
+ [exit](key_mgmt_util-exit.md)

# KMU を使用して AWS CloudHSM キーの属性を設定する
<a name="key_mgmt_util-setAttribute"></a>

 AWS CloudHSM key\$1mgmt\$1util の **setAttribute** コマンドを使用して、現在のセッションでのみ有効なキーを、削除するまで存在する永続キーに変換します。この変換を行うために、キーのトークン属性 (`OBJ_ATTR_TOKEN`) の値を false (`0`) から true (`1`) に変更します。自分が所有するキーの属性のみ変更できます。

cloudhsm\$1mgmt\$1util の **setAttribute** コマンドを使用して、ラベルの変更、属性のラップ、アンラップ、暗号化、および復号化を行うこともできます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="setAttribute-syntax"></a>

```
setAttribute -h 

setAttribute -o <object handle> 
             -a 1
```

## 例
<a name="setAttribute-examples"></a>

次の例では、セッションキーを永続キーに変換する方法を示します。

最初のコマンドは、[genSymKey](key_mgmt_util-genSymKey.md) の `-sess` パラメーターを使用して、現在のセッションでのみ有効な 192 ビットの AES キーを作成します。出力は、新しいセッションキーのキーハンドルが `262154` であることを示しています。

```
Command: genSymKey -t 31 -s 24 -l tmpAES -sess
      
        Cfm3GenerateSymmetricKey returned: 0x00 : HSM Return: SUCCESS

        Symmetric Key Created.  Key Handle: 262154

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

次のコマンドでは、[findKey](key_mgmt_util-findKey.md) を使用して現在のセッションのセッションキーを確認します。出力は、キー `262154` がセッションキーであることを示しています。

```
Command:  findKey -sess 1

Total number of keys present 1

 number of keys matched from start index 0::0
262154

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

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

次のコマンドでは、**setAttribute** を使用してキー `262154` をセッションキーから永続キーに変換します。そのために、キーのトークン属性 (`OBJ_ATTR_TOKEN`) の値を `0` (false)から `1` (true)に変更します。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。

このコマンドでは、`-o` パラメータを使用してキーハンドル (`262154`) を指定し、`-a` パラメータを使用してトークン属性を表す定数 (`1`) を指定します。コマンドを実行すると、トークン属性の値を指定するよう求められます。唯一の有効な値は `1` (true) です。これは、永続キーの値です。

```
Command: setAttribute -o 262154 -a 1
         This attribute is defined as a boolean value.
          Enter the boolean attribute value (0 or 1):1

        Cfm3SetAttribute returned: 0x00 : HSM Return: SUCCESS

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

次のコマンドでは、`262154` が永続キーになったことを確認するために、**findKey** を使用してセッションキー (`-sess 1`) と永続キー (`-sess 0`) を検索します。今回は、コマンドでセッションキーが検出されず、永続キーのリストで `262154` が返されます。

```
Command: findKey -sess 1

Total number of keys present 0

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

        Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS



Command: findKey -sess 0

Total number of keys present 5

 number of keys matched from start index 0::4
6, 7, 524296, 9, 262154

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

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

## パラメータ
<a name="setAttribute-parameters"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-オ**  
ターゲットキーのキーハンドルを指定します。各コマンドに指定できるキーは 1 つのみです。キーのキーハンドルを取得するには、[findKey](key_mgmt_util-findKey.md) を使用します。  
必須: はい

**-a**  
変更する属性を表す定数を指定します。唯一の有効な値は `1` です。これはトークン属性 `OBJ_ATTR_TOKEN` を表します。  
属性とその整数値を取得するには、[listAttributes](key_mgmt_util-listAttributes.md) を使用します。  
必須: はい

## 関連トピック
<a name="setAttribute-seealso"></a>
+ cloudhsm\$1mgmt\$1util の中で [setAttribute](cloudhsm_mgmt_util-setAttribute.md) です。
+ [getAttribute](key_mgmt_util-getAttribute.md)
+ [listAttributes](key_mgmt_util-listAttributes.md)
+ [キー属性リファレンス](key-attribute-table.md)

# KMU AWS CloudHSM を使用して署名を生成する
<a name="key_mgmt_util-sign"></a>

 AWS CloudHSM key\$1mgmt\$1util の **sign** コマンドを使用して、選択したプライベートキーを使用してファイルの署名を生成します。

**sign** を使用するには、HSM 内にプライベートキーを持っておく必要があります。プライベートキーは、**[genSymKey](key_mgmt_util-genSymKey.md)** コマンド、**[genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)** コマンド、または **[genECCKeyPair](key_mgmt_util-genECCKeyPair.md)** コマンドで生成できます。また、**[importPrivateKey](key_mgmt_util-importPrivateKey.md)** コマンドを使用してインポートすることもできます。詳細については、「[キーの生成](generate-keys.md)」を参照してください。

**sign** コマンドは、ユーザーが指定した (整数で表した) 署名機構を使って、メッセージファイルに署名します。使用できる署名機構のリストについては、「[パラメータ](#sign-parameters)」を参照してください。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="sign-syntax"></a>

```
sign -h

sign -f <file name>
     -k <private key handle>
     -m <signature mechanism>
     -out <signed file name>
```

## 例
<a name="sign-examples"></a>

この例では、**sign** を使ってファイルに署名する方法を示します。

**Example : ファイルに署名する**  
次のコマンドは、ハンドル `266309` を持つプライベートキーを使って `messageFile` という名前のファイルに署名します。このコマンドは、`SHA256_RSA_PKCS` (`1`) 署名機構を使い、署名したファイルを `signedFile` として保存します。  

```
Command: sign -f messageFile -k 266309 -m 1 -out signedFile

Cfm3Sign returned: 0x00 : HSM Return: SUCCESS

signature is written to file signedFile

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
```

## パラメータ
<a name="sign-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-f`**  
署名するファイルの名前。  
必須: はい

**`-k`**  
署名に使用するプライベートキーのハンドル。  
必須: はい

**`-m`**  
署名に使用する署名機構を表す整数。使用可能な署名機構は、次のような整数に対応します。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-sign.html)
必須: はい

**`-out`**  
署名したファイルの保存先とするファイルの名前。  
必須: はい

## 関連トピック
<a name="sign-seealso"></a>
+ [verify](key_mgmt_util-verify.md)
+ [importPrivateKey](key_mgmt_util-importPrivateKey.md)
+ [genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md)
+ [genECCKeyPair](key_mgmt_util-genECCKeyPair.md)
+ [genSymKey](key_mgmt_util-genSymKey.md)
+ [キーの生成](generate-keys.md)

# KMU を使用して AWS CloudHSM キーをラップ解除する
<a name="key_mgmt_util-unwrapKey"></a>

 AWS CloudHSM key\$1mgmt\$1util ツールの **unWrapKey** コマンドを使用して、ラップされた (暗号化された) 対称キーまたはプライベートキーをファイルから HSM にインポートします。key\$1mgmt\$1util の [wrapKey](key_mgmt_util-wrapKey.md) コマンドでラップされた暗号化されたキーをインポートするように設計されていますが、他のツールでラップされたキーをアンラップするためにも使用できます。ただし、このような場合は、[PKCS\$111](pkcs11-library.md) または [JCE](java-library.md) ソフトウェアライブラリを使用して、キーをラップ解除することをお勧めします。

インポートされたキーは、 によって生成されたキーのように機能します AWS CloudHSM。ただし、[OBJ\$1ATTR\$1LOCAL 属性](key-attribute-table.md)の値は 0 であり、ローカルに生成されたものでないことを示しています。

キーをインポートしたら、必ずキーファイルをマークまたは削除してください。このコマンドでは、同じキーマテリアルを複数回インポートすることが禁止されません。その結果、異なるキーハンドルと同じキーマテリアルを持つ複数のキーにより、キーマテリアルの使用を追跡し、暗号化の制限を超えないようにすることが困難になります。

key\$1mgmt\$1util コマンドを実行する前に、[ key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="unwrapKey-syntax"></a>

```
unWrapKey -h

unWrapKey -f <key-file-name> 
          -w <wrapping-key-handle> 
          [-sess]
          [-min_srv <minimum-number-of-HSMs>]          
          [-timeout <number-of-seconds>]
          [-aad <additional authenticated data filename>]
          [-tag_size <tag size>]
          [-iv_file <IV file>]
          [-attest]
          [-m <wrapping-mechanism>]
          [-t <hash-type>]
          [-nex]
          [-u <user id list>]
          [-m_value <number of users needed for approval>]
          [-noheader]
          [-l <key-label>]
          [-id <key-id>]
          [-kt <key-type>]
          [-kc <key-class>]
          [-i <unwrapping-IV>]
```

## 例
<a name="unwrapKey-examples"></a>

これらの例では、**unWrapKey** を使用して、ラップされたキーをファイルから HSM にインポートする方法を示します。最初の例では、**[wrapKey](key_mgmt_util-wrapKey.md)** key\$1mgmt\$1util コマンドでラップされたキーをアンラップしているため、ヘッダーがあります。2 番目の例では、key\$1mgmt\$1util の外部でラップされたため、ヘッダーがないキーをアンラップします。

**Example : キーのラップ解除 (ヘッダー付き)**  
このコマンドでは、3DES 対称キーのラップされたコピーを HSM にインポートします。キーはラベル `6` が付いた AES キーでラップ解除されます。このキーは、3 DES キーのラップに使用されたキーと暗号的に同一です。この出力は、ファイルのキーがラップ解除されてインポ​​ートされたことと、インポートされたキーのハンドルが `29` であることを示しています。  

```
        Command:  unWrapKey -f 3DES.key -w 6 -m 4

        Cfm3UnWrapKey returned: 0x00 : HSM Return: SUCCESS

        Key Unwrapped.  Key Handle: 29

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

**Example : キーのラップ解除 (ヘッダーなし)**  
このコマンドでは、3DES 対称キーのラップされたコピーを HSM にインポートします。キーはラベル `6` が付いた AES キーでラップ解除されます。このキーは、3 DES キーのラップに使用されたキーと暗号的に同一です。この 3DES キーは key\$1mgmt\$1util でラップされていないため、`noheader` パラメータは、キー・ラベル (`unwrapped3DES`)、キー・クラス (`4`)、キー・タイプ (`21`) など必要な付随パラメータとともに指定されます。この出力は、ファイルのキーがラップ解除されてインポ​​ートされたことと、インポートされたキーのハンドルが `8` であることを示しています。  

```
Command: unWrapKey -f 3DES.key -w 6 -noheader -l unwrapped3DES -kc 4 -kt 21 -m 4
      
      Cfm3CreateUnwrapTemplate2 returned: 0x00 : HSM Return: SUCCESS
       Cfm2UnWrapWithTemplate3 returned: 0x00 : HSM Return: SUCCESS

       Key Unwrapped. Key Handle: 8

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

## パラメータ
<a name="unwrapKey-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-f**  
ラップされたキーが含まれているファイルのパスと名前を指定します。  
必須: はい

**-w**  
ラップキーを指定します。HSM の AES キーまたは RSA キーのキーハンドルを入力します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
ラッピングキーを作成するには、[genSymKey](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を生成するか、[ genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) を使用して RSA キーペア (タイプ 0) を生成します。RSA キーペアを使用している場合は、必ず一方のキーでキーをラップし、もう一方のキーでアンラップしてください。キーをラッピングキーとして使用できることを確認するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用して、定数 `OBJ_ATTR_WRAP` で表される `262` 属性の値を取得します。  
必須: はい

**-sess**  
現在のセッションにのみ存在するキーを作成します。セッション終了後、キーをリカバリすることはできません。  
このパラメータは、別のキーを暗号化してからすばやく復号化するラッピングキーなど、キーが短時間だけ必要な場合に使用します。セッション終了後に復号する必要がある可能性のあるデータを暗号化するためにセッションキーを使用しないでください。  
セッションキーを永続(トークン)キーに変更するには、[setAttribute](key_mgmt_util-setAttribute.md) を使用します。  
デフォルト: キーは永続的です。  
必須: いいえ

**-min\$1srv**  
`-timeout` パラメーターの値が期限切れになる前に、キーが同期される HSM の最小数を指定します。キーが割り当てられた時間内に指定された数のサーバーに同期されない場合は、作成されません。  
AWS CloudHSM は、すべてのキーをクラスター内のすべての HSM に自動的に同期します。プロセスを高速化するため、`min_srv` の値をクラスターの HSM の数より少なく設定し、低いタイムアウト値を設定します。ただし、一部のリクエストでキーが生成されない場合があることに注意してください。  
デフォルト: 1  
必須: いいえ

**-timeout**  
キーが `min_srv` パラメータで指定された HSM の数に同期されるのをコマンドが待機する時間 (秒単位) を指定します。  
このパラメータは、`min_srv` パラメータがコマンドでも使用されている場合にのみ有効です。  
デフォルト: タイムアウトなし。このコマンドは無期限に待機し、キーが最小数のサーバーと同期されている場合にのみ戻ります。  
必須: いいえ

**-attest**  
クラスターを実行するファームウェアが改ざんされていないことを確認する整合性チェックを実行します。  
デフォルト: 認証チェックなし。  
必須: いいえ

**-nex**  
キーを抽出できなくなります。生成されたキーは [HSM からエクスポートできません](export-keys.md)。  
デフォルト: キーは抽出可能です。  
必須: いいえ

**-m**  
ラップメカニズムを表す値。CloudHSM は、次のメカニズムをサポートしています。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-unwrapKey.html)
必須: はい  
`RSA_OAEP` ラップメカニズムを使用する場合、ラップ可能な最大キーサイズは、次のように、RSA キーのモジュールと、指定したハッシュの長さによって決まります: 最大キーサイズ = modulusLengthInBytes-(2\$1hashLengthInBytes)-2。  
RSA\$1PKCS ラップメカニズムを使用する場合、ラップ可能な最大キーサイズは、RSA キーのモジュールによって次のように決まります: 最大キーサイズ = (modulusLengthInBytes -11)。

**-t**      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-unwrapKey.html)
必須: いいえ

**-noheader**  
key\$1mgmt\$1util の外部でラップされたキーをラップ解除する場合は、このパラメータと他のすべての関連パラメータを指定する必要があります。  
必須: いいえ  
このパラメータを指定する場合は、`-noheader` パラメータも指定する **必要があります**。
+ **-I**

  ラップ解除されたキーに追加するラベルを指定します。

  必須: はい
+ **-kc**

  ラップ解除するキーのクラスを指定します。使用できる値は以下のとおりです。

  3 = パブリックキーとプライベートキーのペアのプライベートキー

  4: シークレット (対称) キー

  必須: はい
+ **-kt**

  ラップ解除するキーのタイプを指定します。使用できる値は以下のとおりです。

  0 = `RSA`

  1 = `DSA`

  3 = `ECC`

  16 = `GENERIC_SECRET`

  21 = `DES3`

  31 = `AES`

  必須: はい
**オプション**で次の `-noheader` パラメータを指定することもできます。  
+ **-id**

  ラップ解除されたキーに追加する ID。

  必須: いいえ
+ **-i**

  使用するラップ解除対象の初期ベクトル (IV)。

  必須: いいえ

[1] NIST ガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。

## 関連トピック
<a name="unwrapKey-seealso"></a>
+ [wrapKey](key_mgmt_util-wrapKey.md)
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)

# KMU AWS CloudHSMを使用してファイルの署名を検証する
<a name="key_mgmt_util-verify"></a>

 AWS CloudHSM key\$1mgmt\$1util の **verify** コマンドを使用して、ファイルが特定のキーによって署名されているかどうかを確認します。その際、**verify** コマンドは、署名されたファイルをソースファイルと比較し、両ファイルが特定のパブリックキーと署名機構に基づいて暗号的に関連するかどうかを分析します。ファイルは **[sign](key_mgmt_util-sign.md)**オペレーション AWS CloudHSM でサインインできます。

署名機構は、「[パラメータ](#verify-parameters)」セクションにリストされている整数によって表されます。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="verify-syntax"></a>

```
verify -h

verify -f <message-file>
       -s <signature-file>
       -k <public-key-handle>
       -m <signature-mechanism>
```

## 例
<a name="verify-examples"></a>

これらの例は、**verify** を使って、特定のファイルの署名に特定のパブリックキーが使用されたかどうかを確認する方法を示します。

**Example : ファイル署名の認証**  
このコマンドは、`hardwarCert.crt` というファイルがパブリックキー `262276` と署名機構 `SHA256_RSA_PKCS` を使って署名され、`hardwareCertSigned` という署名ファイルが作成されたかどうかの検証を試みます。指定のパラメータが真の署名関係を表すため、コマンドは、成功メッセージを返します。  

```
Command: verify -f hardwareCert.crt -s hardwareCertSigned -k 262276 -m 1

Signature verification successful

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

**Example : 偽の署名関係を証明する**  
このコマンドは、`hardwareCert.crt` というファイルがパブリックキー `262276` と署名機構 `SHA256_RSA_PKCS` を使って署名され、`userCertSigned` という署名ファイルが作成されたことを検証します。指定のパラメータが真の署名関係を構成していないため、コマンドは、エラーメッセージを返します。  

```
Command: verify -f hardwarecert.crt -s usercertsigned -k 262276 -m 1
Cfm3Verify returned: 0x1b

CSP Error: ERR_BAD_PKCS_DATA
```

## パラメータ
<a name="verify-parameters"></a>

このコマンドでは、以下のパラメータを使用します。

**`-f`**  
元のメッセージファイルの名前。  
必須: はい

**`-s`**  
署名したファイルの名前。  
必須: はい

**`-k`**  
ファイルの署名に使用されたと考えられるパブリックキーのハンドル。  
必須: はい

**`-m`**  
ファイルの署名に使用するよう提案された署名機構を表す整数。使用可能な署名機構は、次のような整数に対応します。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-verify.html)
必須: はい

## 関連トピック
<a name="verify-seealso"></a>
+ [sign](key_mgmt_util-sign.md)
+ [getCert](key_mgmt_util-genECCKeyPair.md)
+ [キーの生成](generate-keys.md)

# KMU を使用して AWS CloudHSM キーをエクスポートする
<a name="key_mgmt_util-wrapKey"></a>

 AWS CloudHSM key\$1mgmt\$1util の **wrapKey** コマンドを使用して、対称キーまたはプライベートキーの暗号化されたコピーをハードウェアセキュリティモジュール (HSM) からファイルにエクスポートします。**wrapKey** を実行するときに、エクスポートするキー、エクスポートするキーを暗号化 (ラップ) するための HSM 上のキー、出力ファイルを指定します。

`wrapKey` コマンドは、暗号化されたキーを指定したファイルに書き込みますが、キーを HSM から削除したり、暗号化オペレーションでのキーの使用を禁止したりすることはありません。同じキーを複数回エクスポートできます。

キーは、キーの所有者 (キーを作成した Crypto User (CU)) のみエクスポートできます。キーを共有するユーザーは、キーを暗号化オペレーションで使用することはできますが、エクスポートすることはできません。

暗号化されたキーを HSM に再度インポートするには、[unWrapKey](key_mgmt_util-unwrapKey.md) を使用します。HSM からプレーンテキストキーをエクスポートするには、必要に応じて [exSymKey](key_mgmt_util-exSymKey.md) または [exportPrivateKey](key_mgmt_util-exportPrivateKey.md) を使用します。[aesWrapUnwrap](key_mgmt_util-aesWrapUnwrap.md) コマンドは、**wrapKey** で暗号化したキーを復号 (ラップ解除) することはできません。

key\$1mgmt\$1util コマンドを実行する前に、[key\$1mgmt\$1util を起動し](key_mgmt_util-setup.md#key_mgmt_util-start)、Crypto User (CU) として HSM に [ログインする](key_mgmt_util-log-in.md) 必要があります。

## Syntax
<a name="wrapKey-syntax"></a>

```
wrapKey -h

wrapKey -k <exported-key-handle>
        -w <wrapping-key-handle>
        -out <output-file>
        [-m <wrapping-mechanism>]
        [-aad <additional authenticated data filename>]
        [-t <hash-type>]
        [-noheader]
        [-i <wrapping IV>]  
        [-iv_file <IV file>]
        [-tag_size <num_tag_bytes>>]
```

## 例
<a name="wrapKey-examples"></a>

**Example**  
次のコマンドでは、192 ビット Triple DES (3DES) 対称キー (キーハンドル `7`) をエクスポートします。HSM で 256 ビット AES キー (キーハンドル `14`) を使用してキー `7` をラップします。次に、暗号化された 3DES キーを `3DES-encrypted.key` ファイルに書き込みます。  
次の出力は、キー `7` (3DES キー) が正常にラップされて指定したファイルに書き込まれたことを示しています。暗号化されたキーの長さは 307 バイトです。  

```
        Command:  wrapKey -k 7 -w 14 -out 3DES-encrypted.key -m 4

        Key Wrapped.

        Wrapped Key written to file "3DES-encrypted.key length 307

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

## パラメータ
<a name="wrapKey-params"></a>

**-h**  
コマンドに関するヘルプを表示します。  
必須: はい

**-k**  
エクスポートするキーのキーハンドル。所有する対称キーまたはプライベートキーのキーハンドルを入力します。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
キーがエクスポート可能であることを検証するには、[getAttribute](key_mgmt_util-getAttribute.md) コマンドを使用して、`OBJ_ATTR_EXTRACTABLE` 属性の値を取得します。この属性は定数 `354` で表されます。キー属性の解釈については、[AWS CloudHSM KMU のキー属性リファレンス](key-attribute-table.md) を参照してください。  
ユーザーが所有するキーのみをエクスポートすることができます。キーの所有者を確認するには、[getKeyInfo](key_mgmt_util-getKeyInfo.md) コマンドを使用します。  
必須: はい

**-w**  
ラップキーを指定します。HSM の AES キーまたは RSA キーのキーハンドルを入力します。このパラメータは必須です。キーハンドルを見つけるには、[findKey](key_mgmt_util-findKey.md) コマンドを使用します。  
ラッピングキーを作成するには、[genSymKey](key_mgmt_util-genSymKey.md) を使用して AES キー (タイプ 31) を生成するか、[ genRSAKeyPair](key_mgmt_util-genRSAKeyPair.md) を使用して RSA キーペア (タイプ 0) を生成します。RSA キーペアを使用している場合は、必ず一方のキーでキーをラップし、もう一方のキーでアンラップしてください。キーをラッピングキーとして使用できることを確認するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用して、定数 `OBJ_ATTR_WRAP` で表される `262` 属性の値を取得します。  
必須: はい

**-out**  
出力ファイルのパスと名前。コマンドが成功すると、このファイルに、エクスポートされたキーの暗号化されたコピーが格納されます。既存のファイルがある場合は、警告なしに上書きされます。  
必須: はい

**-m**  
ラップメカニズムを表す値。CloudHSM は、次のメカニズムをサポートしています。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-wrapKey.html)
必須: はい  
`RSA_OAEP` ラップメカニズムを使用する場合、ラップ可能な最大キーサイズは、次のように、RSA キーのモジュールと、指定したハッシュの長さによって決まります: 最大キーサイズ = (modulusLengthInBytes-2\$1hashLengthInBytes-2)。  
RSA\$1PKCS ラップメカニズムを使用する場合、ラップ可能な最大キーサイズは、RSA キーのモジュールによって次のように決まります: 最大キーサイズ = (modulusLengthInBytes -11)。

**-t**  
ハッシュアルゴリズムを表す値。CloudHSM は、次のアルゴリズムをサポートしています。      
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/cloudhsm/latest/userguide/key_mgmt_util-wrapKey.html)
必須: いいえ

**-aad**  
`AAD` を含むファイル名。  
`AES_GCM` および `CLOUDHSM_AES_GCM` メカニズムに対してのみ有効です。
必須: いいえ

**-noheader**  
CloudHSM 固有の [キー属性](key_mgmt_util-reference.md)を指定するヘッダーを除外します。このパラメータは、key\$1mgmt\$1util 以外のツールでキーをアンラップする場合に *のみ* 使用してください。  
必須: いいえ

**-i**  
初期化ベクトル (IV) (16 進値)。  
`CLOUDHSM_AES_KEY_WRAP` と `NIST_AES_WRAP` メカニズムの `-noheader` パラメータで渡された場合にのみ有効です。
必須: いいえ

**-iv\$1file**  
応答で取得した IV 値を書き込むファイル。  
`AES_GCM` メカニズムの `-noheader` パラメータで渡された場合にのみ有効です。
必須: いいえ

**-tag\$1size**  
ラップされた blob とともに保存されるタグのサイズ。  
`AES_GCM` と `CLOUDHSM_AES_GCM` メカニズムの `-noheader` パラメータで渡された場合にのみ有効です。タグの最小サイズは 8 です。
必須: いいえ

[1] NIST ガイダンスに従い、2023 年以降の FIPS モードのクラスターでは、これは許可されません。FIPS 以外のモードのクラスターでは、2023 年以降も許可されます。詳細については、「[FIPS 140 コンプライアンス: 2024 年 メカニズムの非推奨](compliance-dep-notif.md#compliance-dep-notif-1)」を参照してください。

## 関連トピック
<a name="wrapKey-seealso"></a>
+ [exSymKey](key_mgmt_util-exSymKey.md)
+ [imSymKey](key_mgmt_util-imSymKey.md)
+ [unWrapKey](key_mgmt_util-unwrapKey.md)

# AWS CloudHSM KMU のキー属性リファレンス
<a name="key-attribute-table"></a>

 AWS CloudHSM key\$1mgmt\$1util コマンドは定数を使用して、ハードウェアセキュリティモジュール (HSM) 内のキーの属性を表します。このトピックは、属性の識別、コマンドでその属性を表す定数の検索、およびその値の理解に役立ちます。

キーの作成時に、キー属性を設定します。キーが永続的であるかセッションにのみ存在するかを示すトークン属性を変更するには、key\$1mgmt\$1utilの [setAttribute](key_mgmt_util-setAttribute.md) コマンドを使用します。ラベルを変更、属性をラップ、アンラップ、暗号化、または復号化するには、cloudhsm\$1mgmt\$1util の `setAttribute`コマンドを使用します。

属性とその定数のリストを取得するには、[listAttributes](key_mgmt_util-listAttributes.md) を使用します。キーの属性値を取得するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。

次の表に、キーの属性、その定数、および有効な値を示します。


| 属性 | 定数 | 値 | 
| --- | --- | --- | 
|  OBJ\$1ATTR\$1ALL  |  512  |  すべての属性を表します。  | 
|  OBJ\$1ATTR\$1ALWAYS\$1SENSITIVE  |  357  |  **0**: False。 **1**: True。  | 
|  OBJ\$1ATTR\$1CLASS  |  0  | **2** : 公開 - プライベートキーのキーペアの公開キー。3 : 公開 - プライベートキーのキーペアの公開キー。**4**: シークレット (対称) キー。 | 
|  OBJ\$1ATTR\$1DECRYPT  |  261  |  **0**: False。 **1**: True。キーはデータの復号に使用できます。  | 
|  OBJ\$1ATTR\$1DERIVE  |  268  |  **0**: False。 **1**: True。この関数は、キーを派生させます。  | 
|  OBJ\$1ATTR\$1DESTROYABLE  |  370  |  **0**: False。 **1**: True。  | 
|  OBJ\$1ATTR\$1ENCRYPT  |  260  |  **0**: False。 **1**: True。キーはデータの暗号化に使用できます。  | 
|  OBJ\$1ATTR\$1EXTRACTABLE  |  354  |  **0**: False。 **1**: True。キーは HSM からエクスポートできます。  | 
|  OBJ\$1ATTR\$1ID  | 258 |  ユーザー定義の文字列。クラスター内で一意である必要があります。デフォルトは空の文字列です。 | 
|  OBJ\$1ATTR\$1KCV  |  371  |  キーのキーチェック値。詳細については、「[その他の詳細](#key-attribute-table-details)」を参照してください。  | 
|  OBJ\$1ATTR\$1KEY\$1TYPE  | 256 |  **0**: RSA。**1**: DSA。**3**: EC。 **16**: 汎用秘密。 **18**: RC4。 **21**: Triple DES (3DES)。 **31**: AES。 | 
|  OBJ\$1ATTR\$1LABEL  |  3  | ユーザー定義の文字列。クラスター内で一意である必要はありません。 | 
|  OBJ\$1ATTR\$1LOCAL  |  355  |  **0**. False。キーは HSM にインポートされました。 **1**: True。  | 
|  OBJ\$1ATTR\$1MODULUS  |  288  |  RSA キーペアを生成するために使用されたモジュラス。EC キーの場合、この値は ANSI X9.62 ECPoint 値「Q」の DER エンコーディングを 16 進数形式で表します。 他のキータイプの場合、この属性は存在しません。  | 
|  OBJ\$1ATTR\$1MODULUS\$1BITS  |  289  |  RSA キーペアを生成するために使用されたモジュラスの長さ。EC キーの場合、これはキーの生成に使用された楕円曲線の ID を表します。 他のキータイプの場合、この属性は存在しません。  | 
|  OBJ\$1ATTR\$1NEVER\$1EXTRACTABLE  |  356  |  **0**: False。 **1**: True。このキーは HSM からエクスポートできません。  | 
|  OBJ\$1ATTR\$1PUBLIC\$1EXPONENT  |  290  |  RSA キーペアを生成するために使用された公開指数。 他のキータイプの場合、この属性は存在しません。  | 
|  OBJ\$1ATTR\$1PRIVATE  |  2  |  **0**: False。 **1**: True。この属性は、認証されていないユーザーがキーの属性を表示できるかどうかを示します。CloudHSM PKCS\$111 プロバイダーでは、現在パブリックセッションはサポートされていないため、すべてのキー (パブリックキーとプライベートキーのペアのパブリックキーを含む) のこの属性は 1 に設定されています。  | 
|  OBJ\$1ATTR\$1SENSITIVE  |  259  |  **0**: False。公開 - プライベートキーのキーペアの公開キー。 **1**: True。  | 
|  OBJ\$1ATTR\$1SIGN  |  264  |  **0**: False。 **1**: True。キーは署名 (プライベートキー) に使用できます。  | 
|  OBJ\$1ATTR\$1TOKEN  |  1  |  **0**: False。セッションキー。 **1**: True。永続キー。  | 
|  OBJ\$1ATTR\$1TRUSTED  |  134  |  **0**: False。 **1**: True。  | 
|  OBJ\$1ATTR\$1UNWRAP  |  263  |  **0**: False。 **1**: True。キーはキーの復号に使用できます。  | 
|  OBJ\$1ATTR\$1UNWRAP\$1TEMPLATE  |  1073742354  |  値は、このラッピングキーを使用してラップ解除されたキーに適用される属性テンプレートを使用する必要があります。  | 
|  OBJ\$1ATTR\$1VALUE\$1LEN  |  353  |  キーの長さ (バイト単位)  | 
|  OBJ\$1ATTR\$1VERIFY  |  266  |  **0**: False。 **1**: True。キーは検証 (パブリックキー) に使用できます。  | 
|  OBJ\$1ATTR\$1WRAP  |  262  |  **0**: False。 **1**: True。キーはキーの暗号化に使用できます。  | 
|  OBJ\$1ATTR\$1WRAP\$1TEMPLATE  |  1073742353  |  値は、属性テンプレートを使用し、このラッピングキーでラップされたキーと一致させる必要があります。  | 
|  OBJ\$1ATTR\$1WRAP\$1WITH\$1TRUSTED  |  528  |  **0**: False。 **1**: True。  | 

## その他の詳細
<a name="key-attribute-table-details"></a>

**キーチェック値 (KCV)。**  
*キーチェック値* (KCV) は、HSM がキーをインポートまたは生成するときに生成されるキーの 3 バイトのハッシュまたはチェックサムです。キーをエクスポートした後など、HSM の外部で KCV を計算することもできます。次に、KCV 値を比較して、キーのアイデンティティと整合性を確認できます。キーの KCV を取得するには、[getAttribute](key_mgmt_util-getAttribute.md) を使用します。  
AWS CloudHSM は、次の標準メソッドを使用してキーチェック値を生成します。  
+ **対称キー**: ゼロブロックをキーで暗号化した結果の最初の 3 バイト。
+ **非対称キーペア**: 公開キーの SHA-1 ハッシュの最初の 3 バイト。
+ **HMAC キー**: 現時点では HMAC キーの KCV はサポートされていません。