使用 Azure CLI 管理托管 HSM

注意

Key Vault 支持两种类型的资源:保管库和托管 HSM。 本文介绍托管 HSM。 若要了解如何管理保管库,请参阅 使用 Azure CLI 管理 Key Vault

有关托管 HSM 的概述,请参阅什么是托管 HSM?

先决条件

若要完成本文中的步骤,必须准备好以下项:

登录 Azure

键入以下命令,使用 CLI 登录到 Azure:

az cloud set -n AzureChinaCloud
az login
# az cloud set -n AzureCloud   //means return to Public Azure.

有关通过 CLI 登录选项的详细信息,请参阅 使用 Azure CLI 登录

注意

以下所有命令都显示了两种使用方法。 一个使用 --hsm-name--name (对于密钥名称)参数,另一个使用 --id 参数,可在其中指定整个 URL,包括适当的密钥名称。 如果调用方(用户或应用程序)没有控制平面的读取访问权限,而且只有数据平面的受限访问权限,则后一种方法非常有用。

注意

与密钥材料的某些交互需要特定的本地 RBAC 权限。 有关内置本地 RBAC 角色和权限的完整列表,请参阅托管 HSM 本地 RBAC 内置角色

创建 HSM 密钥

注意

无法导出生成或导入到托管 HSM 中的密钥。 请参阅建议的最佳做法,了解密钥便携性和持续性。

使用 az keyvault key create 命令来创建密钥。

创建 RSA 密钥

此示例演示如何创建仅用于 wrapKey、unwrapKey作(--ops)的 3072 位 RSA 密钥。

az keyvault key create --hsm-name ContosoMHSM --name myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

## OR
# Note the key name (myrsakey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/keys/myrsakey --ops wrapKey unwrapKey --kty RSA-HSM --size 3072

请注意,get 操作仅返回公钥和密钥属性。 它不返回私钥(如果非对称密钥)或密钥材料(如果对称密钥)。

创建 EC 密钥

下面的示例演示如何创建包含 P-256 曲线的 EC 密钥,该密钥将仅用于 sign 和 verify 操作 (--ops),并有两个标记 usage 和 appname 。 标记有助于你将其他元数据添加到密钥,以便进行跟踪和管理。

az keyvault key create --hsm-name ContosoMHSM --name myec256key --ops sign verify  --tags 'usage=signing] appname=myapp' --kty EC-HSM --curve P-256

## OR
# Note the key name (myec256key) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/keys/myec256key --ops sign verify  --tags 'usage=signing] appname=myapp' --kty EC-HSM --curve P-256

创建 256 位对称密钥

此示例演示如何创建仅用于加密和解密作(--ops)的 256 位对称密钥。

az keyvault key create --hsm-name ContosoMHSM --name myaeskey --ops encrypt decrypt  --tags --kty oct-HSM --size 256

## OR
# Note the key name (myaeskey) in the URI

az keyvault key create --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/keys/myaeskey --ops encrypt decrypt  --tags 'usage=signing] appname=myapp' --kty oct-HSM --size 256

查看密钥属性和标记

使用 az keyvault key show 命令查看密钥的属性、版本和标记。

az keyvault key show --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key show --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/keys/myrsakey

列出密钥

使用 az keyvault key list 命令列出托管 HSM 内的所有密钥。

az keyvault key list --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/

删除密钥

使用 az keyvault key delete 命令删除托管 HSM 内的密钥。 软删除始终处于打开状态。 因此,已删除的密钥保持已删除状态,并且可以恢复,直到保留天数过去,此时将清除密钥(永久删除),且无法恢复。

az keyvault key delete --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key delete --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/keys/myrsakey

列出已删除的密钥

使用 az keyvault key list-deleted 命令列出托管 HSM 中处于已删除状态的所有密钥。

az keyvault key list-deleted --hsm-name ContosoHSM

## OR
# use full URI

az keyvault key list-deleted --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/

恢复(撤销删除)已删除的密钥

使用 az keyvault key list-deleted 命令列出托管 HSM 中处于已删除状态的所有密钥。 如果在恢复已删除的密钥时需要使用 --id 参数恢复(撤销删除)某个密钥,必须记下从 recoveryId 命令获取的已删除密钥的 az keyvault key list-deleted 值。

az keyvault key recover --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/deletedKeys/myrsakey

清除(永久删除)密钥

使用 az keyvault key purge 命令清除(永久删除)密钥。

注意

如果托管 HSM 已启用清除保护,则无法执行清除操作。 该密钥在保留期过后自动清除。

az keyvault key purge --hsm-name ContosoHSM --name myrsakey

## OR
# Note the key name (myaeskey) in the URI

az keyvault key purge --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/deletedKeys/myrsakey

创建单个密钥备份

使用 az keyvault key backup 创建密钥备份。 备份文件是一个加密的 blob,以加密方式绑定到源 HSM 的安全域。 它只能在共享同一安全域的 HSM 中还原。 详细了解安全域

az keyvault key backup --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key backup --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/deletedKeys/myrsakey  --file myrsakey.backup

从备份中还原单个密钥

使用 az keyvault key restore 还原单个密钥。 创建备份的源 HSM 必须与要在其中还原密钥的目标 HSM 共享同一安全域。

注意

如果存在处于活动或已删除状态的同名密钥,还原将不会成功。

az keyvault key restore --hsm-name ContosoHSM --name myrsakey --file myrsakey.backup

## OR
# Note the key name (myaeskey) in the URI

az keyvault key restore --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/deletedKeys/myrsakey --file myrsakey.backup

从文件中导入密钥

使用 az keyvault key import 命令从文件中导入密钥(仅限 RSA 和 EC)。 证书文件必须具有私钥,并且必须使用 PEM 编码(如 RFC 1421142214231424 所定义)。

az keyvault key import --hsm-name ContosoHSM --name myrsakey --pem-file mycert.key --pem-password 'mypassword'

## OR
# Note the key name (myaeskey) in the URI

az keyvault key recover --id https://ContosoMHSM.managedhsm.chinacloudapi.cn/deletedKeys/myrsakey --pem-file mycert.key --password 'mypassword'

后续步骤