快速入門:使用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,並符合每年五百萬美元(合 500 萬美元)或更高整體認可的 Azure 營收的貨幣需求。

若要詢問服務、啟動資格程式,並在上架前準備必要條件,請要求您的 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 以及如何將其與您的應用程式整合,請繼續閱讀下列文章。