你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 Azure CLI 预配和激活托管 HSM
本快速入门使用 Azure CLI 创建和激活 Azure Key Vault 托管 HSM(硬件安全模块)。 托管 HSM 是一项完全托管、高度可用、单租户、符合标准的云服务,通过该服务,你可以使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。 若要详细了解托管 HSM,可参阅概述。
先决条件
若要完成本文中的步骤,必须具备:
- Microsoft Azure 订阅。 如果没有该帐户,可以注册免费试用版。
- Azure CLI 版本 2.25.0 或更高版本。 运行
az --version
即可查找版本。 如需进行安装或升级,请参阅安装 Azure CLI。
Azure Cloud Shell
Azure 托管 Azure Cloud Shell(一个可通过浏览器使用的交互式 shell 环境)。 可以将 Bash 或 PowerShell 与 Cloud Shell 配合使用来使用 Azure 服务。 可以使用 Cloud Shell 预安装的命令来运行本文中的代码,而不必在本地环境中安装任何内容。
若要启动 Azure Cloud Shell,请执行以下操作:
选项 | 示例/链接 |
---|---|
选择代码或命令块右上角的“试用”。 选择“试用”不会自动将代码或命令复制到 Cloud Shell。 | |
转到 https://shell.azure.com 或选择“启动 Cloud Shell”按钮可在浏览器中打开 Cloud Shell。 | |
选择 Azure 门户右上角菜单栏上的 Cloud Shell 按钮。 |
若要使用 Azure Cloud Shell,请执行以下操作:
启动 Cloud Shell。
选择代码块(或命令块)上的“复制”按钮以复制代码或命令。
在 Windows 和 Linux 上选择 Ctrl+Shift+V,或在 macOS 上选择 Cmd+Shift+V 将代码或命令粘贴到 Cloud Shell 会话中。
选择“Enter”运行代码或命令。
登录 Azure
若要使用 CLI 登录到 Azure,可以键入:
az login
创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 以下示例在“norwayeast”位置创建了一个名为“ContosoResourceGroup”的资源组。
az group create --name "ContosoResourceGroup" --location norwayeast
创建托管 HSM
创建托管 HSM 的过程分为两步:
- 预配“托管 HSM”资源。
- 下载名为安全域的项目来激活托管 HSM。
预配托管 HSM
使用 az keyvault create
命令创建托管 HSM。 此脚本包含 3 个必需参数:资源组名称、HSM 名称和地理位置。
需提供以下输入才能创建“托管 HSM”资源:
- 要将其放置在订阅中的资源组。
- Azure 位置。
- 初始管理员的列表。
以下示例在资源组 ContosoResourceGroup 中创建了一个名为“ContosoMHSM”的 HSM,该 HSM 位于挪威东部位置,当前已登录用户为唯一管理员,软删除保留期为 7 天。 托管 HSM 将继续计费,直到在软删除期间将其清除。 有关详细信息,请参阅托管 HSM 软删除和清除保护,并阅读有关托管 HSM 软删除的详细信息。
oid=$(az ad signed-in-user show --query id -o tsv)
az keyvault create --hsm-name "ContosoMHSM" --resource-group "ContosoResourceGroup" --location "norwayeast" --administrators $oid --retention-days 7
注意
如果使用托管标识作为托管 HSM 的初始管理员,则应在“--administrators”后面输入托管标识的 OID/PrincipalID,而不是 ClientID。
注意
运行 create 命令可能需要几分钟的时间。 它成功返回输出后,便可激活 HSM。
警告
托管 HSM 实例被视为始终在使用中。 如果选择使用 --enable-purge-protection
标志启用清除保护,则整个保留期都会计费。
此命令的输出会显示创建的托管 HSM 的属性。 两个最重要的属性是:
- 名称:在本示例中,名称为 ContosoMHSM。 将在其他命令中使用此名称。
- hsmUri:在本示例中,URI 为“https://contosohsm.managedhsm.azure.net.” 通过其 REST API 使用 HSM 的应用程序必须使用此 URI。
Azure 帐户现已获得授权,可在此托管 HSM 上执行任何作业。 到目前为止,尚未授权其他任何人。
激活托管 HSM
在激活 HSM 之前,所有数据平面命令都处于禁用状态。 例如,你将无法创建密钥或分配角色。 只有在 create 命令期间分配的指定管理员才能激活 HSM。 必须下载安全域才能激活 HSM。
若要激活 HSM,需执行以下操作:
- 提供至少 3 个(至多 10 个)RSA 密钥对
- 指定解密安全域所需的最小密钥数(称为“仲裁”)
若要激活 HSM,请向 HSM 发送至少 3 个(最多 10 个)RSA 公钥。 HSM 利用这些密钥对安全域进行加密,并将其发回。 一旦成功完成此安全域下载,HSM 便可使用。 还需要指定仲裁,即解密安全域所需的最小私钥数。
下面的示例演示如何使用 openssl
生成 3 个自签名证书。
openssl req -newkey rsa:2048 -nodes -keyout cert_0.key -x509 -days 365 -out cert_0.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_1.key -x509 -days 365 -out cert_1.cer
openssl req -newkey rsa:2048 -nodes -keyout cert_2.key -x509 -days 365 -out cert_2.cer
注意
即使证书已“过期”,它仍可用来还原安全域。
重要
安全地创建并存储在此步骤中生成的 RSA 密钥对和安全域文件。
使用 az keyvault security-domain download
命令下载安全域并激活托管 HSM。 下面的示例使用 3 个 RSA 密钥对(此命令只需要公钥),并将仲裁设置为 2。
az keyvault security-domain download --hsm-name ContosoMHSM --sd-wrapping-keys ./certs/cert_0.cer ./certs/cert_1.cer ./certs/cert_2.cer --sd-quorum 2 --security-domain-file ContosoMHSM-SD.json
请安全地存储安全域文件和 RSA 密钥对。 你需要它们进行灾难恢复,还需要用它们再创建一个共享同一安全域的托管 HSM,这样二者才可共享密钥。
成功下载安全域后,HSM 将处于活动状态并可供使用。
清理资源
本系列中的其他快速入门和教程是在本快速入门的基础上制作的。 如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。
如果不再需要资源组和所有相关的资源,可以使用 az group delete 命令将其删除。 可以删除资源,如下所示:
az group delete --name ContosoResourceGroup
警告
删除资源组会将托管 HSM 置于软删除状态。 托管 HSM 将继续计费,直到被清除。 请参阅托管 HSM 软删除和清除保护
后续步骤
在本快速入门中,你预配并激活了托管 HSM。 若要详细了解托管 HSM 以及如何将其与应用程序集成,请继续阅读以下文章。
- 请参阅托管 HSM 概述
- 了解如何管理托管 HSM 中的密钥
- 了解托管 HSM 的角色管理
- 查看托管 HSM 最佳做法