快速入门:使用 ARM 模板创建托管 HSM
本快速入门介绍如何使用 Azure 资源管理器模板(ARM 模板)创建 Azure Key Vault 托管 HSM。 托管 HSM 是一项完全托管、高度可用、单租户、符合标准的云服务,通过该服务,你可以使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。
Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。
如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 Azure 门户中会打开模板。
先决条件
如果没有 Azure 订阅,请在开始前创建一个试用版订阅。
[!INCLUDE Azure CLI 准备环境 ]
查看模板
本快速入门中使用的模板来自 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 最佳做法