使用 CloudHSM CLI 生成密钥 - AWS CloudHSM

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

使用 CloudHSM CLI 生成密钥

在生成密钥之前,必须启动 CloudHSM CLI 并以加密用户(CU)身份登录。要生成 HSM 上的密钥,请使用与要生成的密钥的类型对应的命令。

生成对称密钥

使用 key generate-symmetric 中列出的命令生成对称密钥。要查看所有可用的选项,请使用 help key generate-symmetric 命令。

生成 AES 密钥

使用 key generate-symmetric aes 命令生成 AES 密钥。要查看所有可用的选项,请使用 help key generate-symmetric aes 命令。

以下示例生成一个 32 字节的 AES 密钥。

aws-cloudhsm > key generate-symmetric aes \ --label aes-example \ --key-length-bytes 32

参数

<LABEL>

为 AES 密钥指定用户定义的标签。

必需:是

<KEY-LENGTH-BYTES>

指定以字节为单位的密钥长度。

有效值:

  • 16、24 和 32

必需:是

<KEY_ATTRIBUTES>

指定一个空格分隔的密钥属性列表,以 KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE(例如 token=true)的形式为生成的 AES 密钥进行设置

有关支持的 AWS CloudHSM 密钥属性的列表,请参阅CloudHSM CLI 的密钥属性

必需:否

<SESSION>

创建仅在当前会话中存在的密钥。会话结束后,密钥无法恢复。如果您只需要一个短暂的密钥,例如用于加密然后快速解密另一个密钥的包装密钥,请使用此参数。对于会话结束后可能需要解密的加密数据,切勿使用会话密钥。

要将会话密钥更改为永久(令牌)密钥,请使用 key set-attribute

默认情况下,生成密钥时,它们是永久密钥/令牌密钥。使用 <SESSION> 更改此设置,确保使用此参数生成的密钥是会话/临时密钥

必需:否

生成通用机密密钥

使用 key generate-symmetric generic-secret 命令生成通用机密密钥。要查看所有可用的选项,请使用 help key generate-symmetric generic-secret 命令。

以下示例生成一个 32 字节的通用机密密钥。

aws-cloudhsm > key generate-symmetric generic-secret \ --label generic-secret-example \ --key-length-bytes 32
参数
<LABEL>

为通用机密密钥指定用户定义的标签。

必需:是

<KEY-LENGTH-BYTES>

指定以字节为单位的密钥长度。

有效值:

  • 1 至 800

必需:是

<KEY_ATTRIBUTES>

指定要为生成的通用机密密钥设置的以空格分隔的密钥属性列表,其形式为 KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE(例如 token=true

有关支持的 AWS CloudHSM 密钥属性的列表,请参阅CloudHSM CLI 的密钥属性

必需:否

<SESSION>

创建仅在当前会话中存在的密钥。会话结束后,密钥无法恢复。如果您只需要一个短暂的密钥,例如用于加密然后快速解密另一个密钥的包装密钥,请使用此参数。对于会话结束后可能需要解密的加密数据,切勿使用会话密钥。

要将会话密钥更改为永久(令牌)密钥,请使用 key set-attribute

默认情况下,生成密钥时,它们是永久密钥/令牌密钥。使用 <SESSION> 更改此设置,确保使用此参数生成的密钥是会话/临时密钥

必需:否

生成非对称密钥

使用 钥匙 generate-asymmetric-pair 中列出的命令生成对称密钥对。

生成 RSA 密钥

使用 key generate-asymmetric-pair rsa 命令生成 RSA 密钥对。要查看所有可用的选项,请使用 help key generate-asymmetric-pair rsa 命令。

以下示例生成 RSA 2048 位密钥对。

aws-cloudhsm > key generate-asymmetric-pair rsa \ --public-exponent 65537 \ --modulus-size-bits 2048 \ --public-label rsa-public-example \ --private-label rsa-private-example

参数

<PUBLIC_LABEL>

为公有密钥指定用户定义的标签。

必需:是

<PRIVATE_LABEL>

为私有密钥指定用户定义的标签。

必需:是

<MODULUS_SIZE_BITS>

指定模数的长度 (以位为单位)。最小值为 2048。

必需:是

<PUBLIC_EXPONENT>

指定公有指数。此值必须为大于或等于 65537 的奇数。

必需:是

<PUBLIC_KEY_ATTRIBUTES>

指定一个以空格分隔的密钥属性列表,以 KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE(例如 token=true)的形式为生成的 RSA 公有密钥进行设置。

有关支持的 AWS CloudHSM 密钥属性的列表,请参阅CloudHSM CLI 的密钥属性

必需:否

<SESSION>

创建仅在当前会话中存在的密钥。会话结束后,密钥无法恢复。如果您只需要一个短暂的密钥,例如用于加密然后快速解密另一个密钥的包装密钥,请使用此参数。对于会话结束后可能需要解密的加密数据,切勿使用会话密钥。

要将会话密钥更改为永久(令牌)密钥,请使用 key set-attribute

默认情况下,生成密钥时,它们是永久密钥/令牌密钥。使用 <SESSION> 更改此设置,确保使用此参数生成的密钥是会话/临时密钥

必需:否

生成 EC (椭圆曲线加密) 密钥对

使用 key generate-asymmetric-pair ec 命令生成 EC 密钥对。要查看所有可用选项(包括受支持的椭圆曲线的列表),请使用 help key generate-asymmetric-pair ec 命令。

以下示例使用 Secp384r1 椭圆曲线生成一个 EC 密钥对。

aws-cloudhsm > key generate-asymmetric-pair ec \ --curve secp384r1 \ --public-label ec-public-example \ --private-label ec-private-example
参数
<PUBLIC_LABEL>

为公有密钥指定用户定义的标签。客户端 SDK 5.11 及更高版本允许的最大大小label为 127 个字符。客户端 SDK 5.10 及更低版本的字符数限制为 126 个。

必需:是

<PRIVATE_LABEL>

为私有密钥指定用户定义的标签。客户端 SDK 5.11 及更高版本允许的最大大小label为 127 个字符。客户端 SDK 5.10 及更低版本的字符数限制为 126 个。

必需:是

<CURVE>

指定椭圆曲线的标识符。

有效值:

  • prime256v1

  • secp256r1

  • secp224r1

  • secp384r1

  • secp256k1

  • secp521r1

必需:是

<PUBLIC_KEY_ATTRIBUTES>

KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE(例如 token=true)的形式指定要为生成的 EC 公有密钥设置的以空格分隔的密钥属性列表。

有关支持的 AWS CloudHSM 密钥属性的列表,请参阅CloudHSM CLI 的密钥属性

必需:否

<PRIVATE_KEY_ATTRIBUTES>

KEY_ATTRIBUTE_NAME=KEY_ATTRIBUTE_VALUE(例如 token=true)的形式指定要为生成的 EC 私有密钥设置的以空格分隔的密钥属性列表。

有关支持的 AWS CloudHSM 密钥属性的列表,请参阅CloudHSM CLI 的密钥属性

必需:否

<SESSION>

创建仅在当前会话中存在的密钥。会话结束后,密钥无法恢复。如果您只需要一个短暂的密钥,例如用于加密然后快速解密另一个密钥的包装密钥,请使用此参数。对于会话结束后可能需要解密的加密数据,切勿使用会话密钥。

要将会话密钥更改为永久(令牌)密钥,请使用 key set-attribute

默认情况下,生成的密钥是永久(令牌)密钥。传入 <SESSION> 会改变这一点,确保使用此参数生成的密钥是会话(临时)密钥。

必需:否

相关 主题