快速入门:使用 ARM 模板创建托管 HSM
本快速入门介绍如何使用 Azure 资源管理器模板(ARM 模板)创建 Azure Key Vault 托管 HSM。 托管 HSM 是一项完全托管、高度可用、单租户、符合标准的云服务,通过该服务,你可以使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。
Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。
如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。
先决条件
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
如需在本地运行 CLI 参考命令,请安装 Azure CLI。 如果在 Windows 或 macOS 上运行,请考虑在 Docker 容器中运行 Azure CLI。 有关详细信息,请参阅如何在 Docker 容器中运行 Azure CLI。
如果使用的是本地安装,请使用 az login 命令登录 Azure CLI。 若要完成身份验证过程,请遵循终端中显示的步骤。 有关其他登录选项,请参阅使用 Azure CLI 登录。
出现提示时,请在首次使用时安装 Azure CLI 扩展。 有关扩展详细信息,请参阅使用 Azure CLI 的扩展。
运行 az version 以查找安装的版本和依赖库。 若要升级到最新版本,请运行 az upgrade。
查看模板
本快速入门中使用的模板来自 Azure 快速入门模板:
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"metadata": {
"_generator": {
"name": "bicep",
"version": "0.5.6.12127",
"templateHash": "9933229425431379390"
}
},
"parameters": {
"managedHSMName": {
"type": "string",
"metadata": {
"description": "String specifying the name of the managed HSM."
}
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]",
"metadata": {
"description": "String specifying the Azure location where the managed HSM should be created."
}
},
"initialAdminObjectIds": {
"type": "array",
"metadata": {
"description": "Array specifying the objectIDs associated with a list of initial administrators."
}
},
"tenantId": {
"type": "string",
"defaultValue": "[subscription().tenantId]",
"metadata": {
"description": "String specifying the Azure Active Directory tenant ID that should be used for authenticating requests to the managed HSM."
}
},
"softRetentionInDays": {
"type": "int",
"defaultValue": 7,
"maxValue": 90,
"minValue": 7,
"metadata": {
"description": "Specifies the number of days that managed Key Vault will be kept recoverable if deleted. If you do not want to have soft delete enabled, set value to 0."
}
}
},
"resources": [
{
"type": "Microsoft.KeyVault/managedHSMs",
"apiVersion": "2021-04-01-preview",
"name": "[parameters('managedHSMName')]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_B1",
"family": "B"
},
"properties": {
"enableSoftDelete": "[greater(parameters('softRetentionInDays'), 0)]",
"softDeleteRetentionInDays": "[if(equals(parameters('softRetentionInDays'), 0), null(), parameters('softRetentionInDays'))]",
"enablePurgeProtection": false,
"tenantId": "[parameters('tenantId')]",
"initialAdminObjectIds": "[parameters('initialAdminObjectIds')]",
"publicNetworkAccess": "Enabled",
"networkAcls": {
"bypass": "None",
"defaultAction": "Allow"
}
}
}
]
}
模板中定义的 Azure 资源:
- Microsoft.KeyVault/managedHSMs:创建 Azure Key Vault 托管 HSM。
部署模板
模板需要与你的帐户关联的对象 ID。 若要找到它,请使用 Azure CLI az ad user show 命令,将电子邮件地址传递给 --id
参数。 可以使用 --query
参数将输出限制为仅对象 ID。
az ad user show --id <your-email-address> --query "objectId"
可能还需要租户 ID。 若要找到它,请使用 Azure CLI az ad user show 命令。 可以使用 --query
参数将输出限制为仅租户 ID。
az account show --query "tenantId"
现在可部署 ARM 模板:
选择下图登录到 Azure 并打开一个模板。 该模板创建托管的 HSM。
选择或输入以下值。 除非另有指定,否则请使用默认值创建托管 HSM。
- 订阅:选择 Azure 订阅。
- 资源组:选择“新建”,输入“myResourceGroup”作为名称,然后选择“确定”。
- 位置:选择一个位置。 例如,“中国东部 2”。
- managedHSMName: 输入托管 HSM 的名称。
- 租户 ID:模板函数会自动检索租户 ID;请勿更改默认值。 如果没有值,请输入之前检索到的租户 ID。
- initialAdminObjectIds:输入之前检索到的对象 ID。
选择“购买”。 托管 HSM 部署成功后,会收到一条通知:
使用 Azure 门户部署模板。 除了 Azure 门户,还可以使用 Azure PowerShell、Azure CLI 和 REST API。 若要了解其他部署方法,请参阅部署模板。
验证部署
可以验证托管 HSM 是否通过 Azure CLI az keyvault list 命令创建。 如果将结果格式化为表,你会发现输出更易于阅读:
az keyvault list -o table
你应该会看到新创建的托管 HSM 的名称。
清理资源
本系列中的其他快速入门和教程是在本快速入门的基础上制作的。 如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。
如果不再需要资源组和所有相关的资源,可以使用 Azure CLI az group delete 命令将其删除:
az group delete --name "myResourceGroup"
警告
删除资源组会将托管 HSM 置于软删除状态。 托管 HSM 将继续计费,直到被清除。 请参阅托管 HSM 软删除和清除保护
后续步骤
在本快速入门中,创建了托管 HSM。 此托管 HSM 在激活后才能完全正常工作。 请参阅激活托管 HSM,了解如何激活 HSM。
- 请参阅托管 HSM 概述
- 了解如何管理托管 HSM 中的密钥
- 查看托管 HSM 最佳做法