你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
快速入门:使用 PowerShell 预配和激活托管 HSM
在本快速入门中,将使用 PowerShell 创建并激活 Azure Key Vault 托管 HSM(硬件安全模块)。 托管 HSM 是一项完全托管、高度可用、单租户、符合标准的云服务,通过该服务,你可以使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。 若要详细了解托管 HSM,可参阅概述。
先决条件
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
- 如果选择在本地使用 Azure PowerShell:
- 安装最新版本的 Az PowerShell 模块。
- 使用 Connect-AzAccount cmdlet 连接到 Azure 帐户。
- 如果选择使用 Azure Cloud Shell:
- 有关详细信息,请参阅 Azure Cloud Shell 概述。
创建资源组
资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 Azure PowerShell New-AzResourceGroup cmdlet 在 norwayeast 位置创建一个名为“myResourceGroup”的资源组。
New-AzResourceGroup -Name "myResourceGroup" -Location "norwayeast"
获取主体 ID
要创建托管 HSM,需要 Microsoft Entra 主体 ID。 若要获取 ID,请使用 Azure PowerShell Get-AzADUser cmdlet,将电子邮件地址传递给“UserPrincipalName”参数:
Get-AzADUser -UserPrincipalName "<your@email.address>"
您的主体 ID 将以“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”格式返回。
创建托管 HSM
创建托管 HSM 的过程分为两步:
- 预配“托管 HSM”资源。
- 下载名为安全域的项目来激活托管 HSM。
预配托管 HSM
使用 Azure PowerShell New-AzKeyVaultManagedHsm cmdlet 创建一个新的托管 HSM。 你需要提供某些信息:
托管 HSM 名称:由 3 到 24 个字符构成的字符串,只能包含数字 (0-9)、字母(a-z、A-Z)和连字符 (-)
重要
每个托管 HSM 都必须有唯一名称。 在以下示例中,将 <your-unique-managed-hsm-name> 替换为托管 HSM 的名称。
资源组名称:myResourceGroup。
位置:挪威东部。
你的主体 ID:将在上一部分获得的 Microsoft Entra 主体 ID 传递给“Administrator”参数。
New-AzKeyVaultManagedHsm -Name "your-unique-managed-hsm-name" -ResourceGroupName "myResourceGroup" -Location "norwayeast" -Administrator "your-principal-ID" -SoftDeleteRetentionInDays "# of days to retain the managed hsm after softdelete"
注意
运行 create 命令可能需要几分钟的时间。 它成功返回输出后,便可激活 HSM。
此 cmdlet 的输出会显示新创建的托管 HSM 的属性。 记下以下两个属性:
- 名称:为托管 HSM 提供的名称。
- HsmUri:在示例中,HsmUri 为 https://<your-unique-managed-hsm-name>.managedhsm.azure.net/。 通过其 REST API 使用保管库的应用程序必须使用此 URI。
目前,只有你的 Azure 帐户才有权对这个新 HSM 执行任何操作。
激活托管 HSM
在激活 HSM 之前,所有数据平面命令都处于禁用状态。 你将无法创建密钥或分配角色。 只有在 create 命令期间分配的指定管理员才能激活 HSM。 必须下载安全域才能激活 HSM。
若要激活 HSM,需执行以下操作:
- 提供至少 3 个(至多 10 个)RSA 密钥对
- 指定解密安全域所需的最小密钥数(称为“仲裁”)
若要激活 HSM,请向 HSM 发送至少 3 个(最多 10 个)RSA 公钥。 HSM 利用这些密钥对安全域进行加密,并将其发回。 一旦成功完成此安全域下载,HSM 便可使用。 还需要指定仲裁,即解密安全域所需的最小私钥数。
下面的示例演示如何使用 openssl
(适用于 Windows,详见此文)生成 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 密钥对和安全域文件。
使用 Azure PowerShell Export-AzKeyVaultSecurityDomain cmdlet 下载安全域并激活托管 HSM。 下面的示例使用 3 个 RSA 密钥对(此命令只需要公钥),并将仲裁设置为 2。
Export-AzKeyVaultSecurityDomain -Name "<your-unique-managed-hsm-name>" -Certificates "cert_0.cer", "cert_1.cer", "cert_2.cer" -OutputPath "MHSMsd.ps.json" -Quorum 2
请安全地存储安全域文件和 RSA 密钥对。 你需要它们进行灾难恢复,还需要用它们再创建一个共享同一安全域的托管 HSM,这样二者才可共享密钥。
成功下载安全域后,HSM 将处于活动状态并可供使用。
清理资源
本系列中的其他快速入门和教程是在本快速入门的基础上制作的。 如果打算继续使用其他快速入门和教程,则可能需要保留这些资源。
如果不再需要资源组及所有相关资源,可使用 Azure PowerShell Remove-AzResourceGroup cmdlet 将其删除。
Remove-AzResourceGroup -Name "myResourceGroup"
警告
删除资源组会将托管 HSM 置于软删除状态。 托管 HSM 将继续计费,直到被清除。 请参阅托管 HSM 软删除和清除保护
后续步骤
在本快速入门中,你创建并激活了托管 HSM。 若要详细了解托管 HSM 以及如何将其与应用程序集成,请继续阅读以下文章: