使用 AWS CloudHSM KMU 导入私有密钥
使用 AWS CloudHSM key_mgmt_util 中的 importPrivateKey 命令将非对称私有密钥从文件导入到硬件安全模块(HSM)。HSM 不允许以明文形式直接导入密钥。该命令使用您指定的 AES 包装密钥对私有密钥进行加密,并在 HSM 中解包密钥。如果您正在尝试将 AWS CloudHSM 密钥与证书关联,请参阅此主题。
注意
您不能使用对称密钥或私有密钥导入受密码保护的 PEM 密钥。
必须指定具有 OBJ_ATTR_UNWRAP
和 OBJ_ATTR_ENCRYPT
属性值 1
的 AES 包装密钥。要查找密钥的属性,请使用 getAttribute 命令。
注意
此命令不提供将导入的密钥标记为不可导出的选项。
在运行任何 key_mgmt_util 命令之前,您必须启动 key_mgmt_util 并以加密用户(CU)身份登录到 HSM。
语法
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]
示例
此示例显示了如何使用 importPrivateKey 将私有密钥导入到 HSM。
例 :导入私有密钥
此命令从名为 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
参数
此命令采用以下参数。
-h
-
显示该命令的命令行帮助。
必需:是
-l
-
指定用户定义的私有密钥标签。
必需:是
-f
-
指定要导入的密钥的文件名。
必需:是
-w
-
指定包装密钥的密钥句柄。此参数为必需参数。要查找密钥句柄,请使用 findKey 命令。
要确定密钥是否可用作包装密钥,请使用 getAttribute 获取
OBJ_ATTR_WRAP
属性 (262) 的值。要创建包装密钥,请使用 genSymKey 创建 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
必需:否
-timout
-
指定在包含
min-serv
参数时,等待密钥在 HSM 间同步的秒数。如果没有指定数字,轮询永远继续。默认值:无限制
必需:否
-u
-
指定要与之共享导入的私有密钥的用户列表。此参数向其他 HSM 加密用户 (CU) 授予在加密操作中使用导入密钥的权限。
输入一个逗号分隔的 HSM 用户 ID 列表,例如
-u 5,6
。请勿包括当前用户的 HSM 用户 ID。要查找 HSM 上的 CU 的 HSM 用户 ID,请使用 listUsers。默认值:只有当前用户可使用导入密钥。
必需:否
-wk
-
指定用于包装正在导入密钥的密钥。输入包含明文 AES 密钥的文件的路径和名称。
当您包含此参数时,importPrivateKey 将使用
-wk
文件中的密钥包装正在导入的密钥。它还使用-w
参数指定的密钥解开包装。默认值:使用
-w
参数中指定的包装密钥包装和解开包装。必需:否
-attest
-
对固件响应执行证明检查,以确保运行集群的固件未受损。
必需:否