CloudHSM CLI を使用して AES-GCM でキーのラッピングを解除する
CloudHSM CLI の key unwrap aes-gcm コマンドを使用して、AES ラッピングキーと AES-GCM
ラップ解除メカニズムを使用してペイロードキーのラップを解除してクラスターに入れます。
ラップ解除されたキーは、AWS CloudHSM によって生成されたキーと同じ方法で使用できます。ローカルで生成されなかったことを示すために、local
属性は false
に設定されます。
key unwrap aes-gcm コマンドを使用するには、AWS CloudHSM クラスターに AES ラッピングキーがあり、その unwrap
属性を true
に設定する必要があります。
ユーザーのタイプ
このコマンドは、次のタイプのユーザーが実行できます。
-
Crypto User (CU)
要件
-
このコマンドを実行するには、CU としてログインする必要があります。
構文
aws-cloudhsm >
help key unwrap aes-gcm
Usage: key unwrap aes-gcm [OPTIONS] --filter [
<FILTER>
...] --tag-length-bits<TAG_LENGTH_BITS>
--key-type-class<KEY_TYPE_CLASS>
--label<LABEL>
--iv<IV>
<--data-path<DATA_PATH>
|--data<DATA>
> Options: --cluster-id<CLUSTER_ID>
Unique Id to choose which of the clusters in the config file to run the operation against. If not provided, will fall back to the value provided when interactive mode was started, or error --filter [<FILTER>
...] Key reference (e.g. key-reference=0xabc) or space separated list of key attributes in the form of attr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE to select a key to unwrap with --data-path<DATA_PATH>
Path to the binary file containing the wrapped key data --data<DATA>
Base64 encoded wrapped key data --attributes [<UNWRAPPED_KEY_ATTRIBUTES>
...] Space separated list of key attributes in the form of KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE for the unwrapped key --aad<AAD>
Aes GCM Additional Authenticated Data (AAD) value, in hex --tag-length-bits<TAG_LENGTH_BITS>
Aes GCM tag length in bits --key-type-class<KEY_TYPE_CLASS>
Key type and class of wrapped key [possible values: aes, des3, ec-private, generic-secret, rsa-private] --label<LABEL>
Label for the unwrapped key --session Creates a session key that exists only in the current session. The key cannot be recovered after the session ends --iv<IV>
Initial value used to wrap the key, in hex -h, --help Print help
例
これらの例は、unwrap
属性値を true
に設定した AES キーを使用して key unwrap aes-gcm コマンドを使用する方法を示しています。
例: Base64 でエンコードされたラッピングされたキーデータからペイロードキーのラッピングを解除する
aws-cloudhsm >
key unwrap aes-gcm --key-type-class aes --label aes-unwrapped --filter attr.label=aes-example --tag-length-bits 64 --aad 0x10 --iv 0xf90613bb8e337ec0339aad21 --data xvslgrtg8kHzrvekny97tLSIeokpPwV8
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e4", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
例: データパスを介して提供されたペイロードキーのラッピングを解除する
aws-cloudhsm >
key unwrap aes-gcm --key-type-class aes --label aes-unwrapped --filter attr.label=aes-example --tag-length-bits 64 --aad 0x10 --iv 0xf90613bb8e337ec0339aad21 --data-path payload-key.pem
{ "error_code": 0, "data": { "key": { "key-reference": "0x00000000001808e4", "key-info": { "key-owners": [ { "username": "cu1", "key-coverage": "full" } ], "shared-users": [], "cluster-coverage": "full" }, "attributes": { "key-type": "aes", "label": "aes-unwrapped", "id": "0x", "check-value": "0x8d9099", "class": "secret-key", "encrypt": false, "decrypt": false, "token": true, "always-sensitive": false, "derive": false, "destroyable": true, "extractable": true, "local": false, "modifiable": true, "never-extractable": false, "private": true, "sensitive": true, "sign": true, "trusted": false, "unwrap": false, "verify": true, "wrap": false, "wrap-with-trusted": false, "key-length-bytes": 16 } } } }
引数
<CLUSTER_ID>
-
このオペレーションを実行するクラスターの ID。
必須: 複数のクラスターが設定されている場合。
<FILTER>
-
キーリファレンス (例:
key-reference=0xabc
) またはattr.KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
形式のキー属性のスペース区切りリストを使用して、ラッピングを解除するキーを選択します。必須: はい
<DATA_PATH>
-
ラッピングされたキーデータを含むバイナリファイルへのパス。
必須: はい (Base64 でエンコードされたデータを通じて提供される場合を除く)
<DATA>
-
Base64 でエンコードされたラッピングされたキーデータ。
必須: はい (データパスを通じて提供される場合を除く)
<ATTRIBUTES>
-
ラッピングされたキーの
KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE
形式のキー属性のスペース区切りリスト。必須:いいえ
<AAD>
-
AES GCM 追加認証データ (AAD) 値 (16 進数)。
必須:いいえ
<TAG_LENGTH_BITS>
-
AES GCM タグの長さ (ビット単位)。
必須: はい
<KEY_TYPE_CLASS>
-
ラッピングされたキーのキータイプとクラス [可能な値:
aes
、des3
、ec-private
、generic-secret
、rsa-private
]。必須: はい
<LABEL>
-
ラッピングされていないキーのラベル。
必須: はい
<SESSION>
-
現在のセッションにのみ存在するセッションキーを作成します。セッション終了後、キーをリカバリすることはできません。
必須:いいえ
<IV>
-
キーを 16 進数でラッピングするために使用される初期値。
必須:いいえ