

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用 AWS CloudHSM KMU 导入私钥
<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) 并以加密用户（CU）身份[登录](key_mgmt_util-log-in.md)到 HSM。

## 语法
<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` 的文件导入私有密钥，标签为 `rsa2048-imported`，包含句柄为 `524299` 的包装密钥。如果命令成功，**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`**  
指定 HSMs 在`-timeout`参数值到期之前同步导入密钥的最小数量。如果密钥在分配的时间内未同步到指定数量的服务器，则不会创建它。  
AWS CloudHSM 自动将每个密钥同步到集群中的每个 HSM。要加快处理速度，请将的值设置`min_srv`为小于群集 HSMs 中的数量，并设置一个较低的超时值。但请注意，一些请求可能无法生成密钥。  
默认：1  
必需：否

**`-timeout`**  
指定包含`min-serv`参数 HSMs时等待密钥同步的秒数。如果没有指定数字，轮询永远继续。  
默认值：无限制  
必需：否

**`-u`**  
指定要与之共享导入的私有密钥的用户列表。此参数允许其他 HSM 加密用户 (CUs) 在加密操作中使用导入的密钥。  
输入以逗号分隔的 HSM 用户列表 IDs，例如。`-u 5,6`请勿包括当前用户的 HSM 用户 ID。[要在 HSM CUs 上查找 HSM 用户 IDs，请使用 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)