快速入门:使用 ARM 模板创建托管 HSM

本快速入门介绍如何使用 Azure 资源管理器模板(ARM 模板)创建 Azure Key Vault 托管 HSM。 托管 HSM 是一项完全托管、高度可用、单租户、符合标准的云服务,通过该服务,你可以使用 FIPS 140-2 级别 3 验证的 HSM 保护云应用程序的加密密钥。

Azure 资源管理器模板是定义项目基础结构和配置的 JavaScript 对象表示法 (JSON) 文件。 模板使用声明性语法。 你可以在不编写用于创建部署的编程命令序列的情况下,描述预期部署。

如果你的环境满足先决条件,并且你熟悉如何使用 ARM 模板,请选择“部署到 Azure”按钮。 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 模板:

  1. 选择下图登录到 Azure 并打开一个模板。 该模板创建托管的 HSM。

    用于将资源管理器模板部署到 Azure 的按钮。

  2. 选择或输入以下值。 除非另有指定,否则请使用默认值创建托管 HSM。

    • 订阅:选择 Azure 订阅。
    • 资源组:选择“新建”,输入“myResourceGroup”作为名称,然后选择“确定”。
    • 位置:选择一个位置。 例如,“中国东部 2”。
    • managedHSMName: 输入托管 HSM 的名称。
    • 租户 ID:模板函数会自动检索租户 ID;请勿更改默认值。 如果没有值,请输入之前检索到的租户 ID。
    • initialAdminObjectIds:输入之前检索到的对象 ID。
  3. 选择“购买”。 托管 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。