共用方式為


快速入門:使用 ARM 範本建立 Azure 付款 HSM

Azure 付款 HSM 是使用 Thales payShield 10K 付款硬體安全性模組 (HSM) 提供的 "BareMetal" 服務,可為 Azure 雲端的即時重大付款交易提供密碼編譯金鑰作業。 Azure 付款 HSM 專為服務提供者和個別金融機構所設計,協助加速其付款系統的數位轉型策略,以及採用公用雲端。 如需詳細資訊,請參閱 Azure 付款 HSM:概觀

本快速入門描述如何在相同的虛擬網路中使用主機和管理連接埠建立付款 HSM。 您可以改為:

Azure Resource Manager 範本是一個 JavaScript 物件標記法 (JSON) 檔案,會定義專案的基礎結構和設定。 範本使用宣告式語法。 您可以描述預期的部署,而不需要撰寫程式設計命令順序來建立部署。

必要條件

重要

Azure 付款 HSM 是特殊化服務。 若要符合上線和使用 Azure 付款 HSM 的資格,客戶必須具有一個指派的 Microsoft 客戶經理,以及具有一個雲端服務架構師 (CSA)。

若要查詢服務、開始資格審查程序,以及備妥上線前的必要條件,請要求 Microsoft 帳戶管理員和 CSA 透過電子郵件傳送要求。

  • 您必須註冊 "Microsoft.HardwareSecurityModules" 和 "Microsoft.Network" 資源提供者,以及 Azure 付款 HSM 功能。 這樣做的步驟位於註冊 Azure 付款 HSM 資源提供者和資源提供者功能

    警告

    您必須將 "FastPathEnabled" 功能旗標套用至每個訂用帳戶識別碼,並將 "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
    

    如果上述四個命令都傳回 "Registered",您就可以繼續進行本快速入門。

  • 您必須擁有 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 Resource Manager 範本來建立付款 HSM、已驗證部署,並已刪除付款 HSM。 若要深入了解 Azure 付款 HSM,以及如何將其與應用程式整合,請繼續閱讀下列文章。