你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

快速入门:使用 ARM 模板创建 Azure 付款 HSM

Azure 付款 HSM 是通过 Thales payShield 10K 支付硬件安全模块 (HSM) 交付的一个“裸机”服务,它为 Azure 云中的实时关键支付交易提供加密密钥操作。 Azure 付款 HSM 专为帮助服务提供商和私人金融机构加速其支付系统的数字化转型策略并采用公有云而设计。 有关详细信息,请参阅 Azure 付款 HSM:概述

本快速入门介绍如何在同一虚拟网络中创建具有主机和管理端口的付款 HSM。 可以改为:

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

先决条件

重要

Azure 付款 HSM 是一项专业服务。 客户必须拥有指定的 Microsoft 客户经理,有 CSA,并满足 Azure 总承诺收入至少每年达 500 万美元这一货币要求,才有资格加入和使用 Azure 付款 HSM。

若要查询服务、启动资格流程并在加入前准备先决条件,请让 Microsoft 客户经理和 CSA 通过电子邮件发送请求。

  • 必须注册“Microsoft.HardwareSecurityModules”和“Microsoft.Network”资源提供程序,以及 Azure 付款 HSM 功能。 注册 Azure 付款 HSM 资源提供程序和资源提供程序功能中提供了执行此操作的步骤。

    警告

    必须将“FastPathEnabled”功能标志应用于每个订阅 ID,并将“fastpathenabled”标记添加到每个虚拟网络。 有关详细信息,请参阅 Fastpathenabled

    若要快速确定资源提供程序和功能是否已注册,请使用 Azure CLI az provider show 命令。 (以表格格式显示此命令的输出时,其可读性更好。)

    az provider show --namespace "Microsoft.HardwareSecurityModules" -o table
    
    az provider show --namespace "Microsoft.Network" -o table
    
    az feature registration show -n "FastPathEnabled"  --provider-namespace "Microsoft.Network" -o table
    
    az feature registration show -n "AzureDedicatedHsm"  --provider-namespace "Microsoft.HardwareSecurityModules" -o table
    

    如果所有这四个命令均返回“已注册”,则可以继续学习本快速入门。

  • 必须拥有 Azure 订阅。 如果没有帐户,可以创建一个免费帐户

查看模板

本快速入门中使用的模板为 azuredeploy.json:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "resourceName": {
      "type": "String",
      "metadata": {
        "description": "Azure Payment HSM resource name"
      }
    },
    "stampId": {
      "type": "string",
      "defaultValue": "stamp1",
      "metadata": {
        "description": "stamp id"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "skuName": {
      "type": "string",
      "defaultValue": "payShield10K_LMK1_CPS60",
      "metadata": {
        "description": "PayShield SKU name. It must be one of the following: payShield10K_LMK1_CPS60, payShield10K_LMK1_CPS250, payShield10K_LMK1_CPS2500, payShield10K_LMK2_CPS60, payShield10K_LMK2_CPS250, payShield10K_LMK2_CPS2500"
      }
    },
    "vnetName": {
      "type": "string",
      "metadata": {
        "description": "Virtual network name"
      }
    },
    "vnetAddressPrefix": {
      "type": "string",
      "metadata": {
        "description": "Virtual network address prefix"
      }
    },
    "hsmSubnetName": {
      "type": "String",
      "metadata": {
        "description": "Subnet name"
      }
    },
    "hsmSubnetPrefix": {
      "type": "string",
      "metadata": {
        "description": "Subnet prefix"
      }
    }
  },
  "variables": {},
  "resources": [
   {
     "type": "Microsoft.HardwareSecurityModules/dedicatedHSMs",
     "apiVersion": "2021-11-30",
     "name": "[parameters('resourceName')]",
	   "location": "[parameters('location')]",
     "dependsOn": [
      "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
     ],
     "sku": {
       "name": "[parameters('skuName')]"
     },
     "properties": {
       "networkProfile": {
         "subnet": {
           "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
         }
        },
		"managementNetworkProfile": {
          "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
          }
        },
        "stampId": "[parameters('stampId')]"
     }
   },
    {
      "type": "Microsoft.Network/virtualNetworks",
      "apiVersion": "2020-11-01",
      "name": "[parameters('vnetName')]",
      "location": "[parameters('location')]",
      "tags": {
        "fastpathenabled": "true"
      },
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vnetAddressPrefix')]"
          ]
        },
        "subnets": [
          {
            "name": "[parameters('hsmSubnetName')]",
            "properties": {
              "addressPrefix": "[parameters('hsmSubnetPrefix')]",
              "delegations": [
                {
                  "name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
                  "properties": {
                    "serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
                  }
                }
              ],
              "privateEndpointNetworkPolicies": "Enabled",
              "privateLinkServiceNetworkPolicies": "Enabled"
            }
          }
        ],
        "enableDdosProtection": false
      }
    },
    {
      "type": "Microsoft.Network/virtualNetworks/subnets",
      "apiVersion": "2020-11-01",
      "name": "[concat(parameters('vnetName'), '/', parameters('hsmSubnetName'))]",
      "dependsOn": [
        "[resourceId('Microsoft.Network/virtualNetworks', parameters('vnetName'))]"
      ],
      "properties": {
        "addressPrefix": "[parameters('hsmSubnetPrefix')]",
        "delegations": [
          {
            "name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
            "properties": {
              "serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
            }
          }
        ],
        "privateEndpointNetworkPolicies": "Enabled",
        "privateLinkServiceNetworkPolicies": "Enabled"
      }
    }
  ]
}

模板中定义的 Azure 资源:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs:创建 Azure 付款 HSM。

相应的 azuredeploy.parameters.json 文件为:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "resourceName": {
      "value": "myhsm1"
    },
    "stampId": {
      "value": "stamp1"
    },
    "skuName": {
      "value": "payShield10K_LMK1_CPS60"
    },
    "vnetName": {
      "value": "myHsmVnet"
    },
    "vnetAddressPrefix": {
      "value": "10.0.0.0/16"
    },
    "hsmSubnetName": {
      "value": "myHsmSubnet"
    },
    "hsmSubnetPrefix": {
      "value": "10.0.0.0/24"
    }
  }
}

部署模板

在此示例中,你将使用 Azure CLI 部署 ARM 模板来创建 Azure 付款 HSM。

首先,将“azuredeploy.json”和“azuredeploy.parameters.json”文件保存到本地,以备下一步使用。 这些文件的内容可以在查看模板部分找到。

备注

以下步骤假定“azuredeploy.json”和“azuredeploy.parameters.json”文件位于运行命令的目录中。 如果文件位于另一个目录中,则必须相应地调整文件路径。

接下来,创建 Azure 资源组。

资源组是在其中部署和管理 Azure 资源的逻辑容器。 使用 az group create 命令在 eastus 位置创建一个名为 myResourceGroup 的资源组 。

az group create --name "myResourceGroup" --location "EastUS"

最后,使用 Azure CLI az deployment group create 命令部署 ARM 模板。

az deployment group create --resource-group "MyResourceGroup" --name myPHSMDeployment --template-file "azuredeploy.json"

出现提示时,请为参数提供以下值:

  • resourceName:myPaymentHSM
  • vnetName:myVNet
  • vnetAddressPrefix:10.0.0.0/16
  • hsmSubnetName:mySubnet
  • hsmSubnetPrefix:10.0.0.0/24

验证部署

可以使用 Azure CLI az dedicated-hsm list 命令验证付款 HSM 是否已创建。 如果将结果格式化为表,则输出更易于阅读:

az dedicated-hsm list -o table

你应会看到新创建的付款 HSM 的名称。

清理资源

本系列中的其他快速入门和教程是在本快速入门的基础上制作的。 如果打算继续使用后续的快速入门和教程,则可能需要保留这些资源。

如果不再需要资源组和所有相关的资源,可以使用 Azure CLI az group delete 命令将其删除:

az group delete --name "myResourceGroup"

后续步骤

在本快速入门中,你部署了 Azure 资源管理器模板来创建付款 HSM,验证了部署,并删除了付款 HSM。 若要详细了解 Azure 付款 HSM 以及如何将其与应用程序集成,请继续阅读以下文章。