使用 ARM 範本,在不同的虛擬網路中利用主機和管理連接埠建立付款 HSM
Azure 付款 HSM 是使用 Thales payShield 10K 付款硬體安全性模組 (HSM) 提供的 "BareMetal" 服務,可為 Azure 雲端的即時重大付款交易提供密碼編譯金鑰作業。 Azure 付款 HSM 專為服務提供者和個別金融機構所設計,協助加速其付款系統的數位轉型策略,以及採用公用雲端。 如需詳細資訊,請參閱 Azure 付款 HSM:概觀。
本教學課程說明如何使用 ARM 範本在同一個虛擬網路中建立具有靜態主機和管理子網路的付款 HSM。 您可以改為:
- 使用 Azure CLI 或 PowerShell,在相同的虛擬網路中利用主機和管理連接埠建立付款 HSM
- 使用 ARM 範本,在相同的虛擬網路中利用主機和管理連結埠建立付款 HSM
- 使用 Azure CLI 或 PowerShell,在不同的虛擬網路中利用主機和管理連接埠建立付款 HSM
- 使用 ARM 範本,在不同的虛擬網路中利用主機和管理連接埠搭配 IP 位址建立 HSM 資源
Azure Resource Manager 範本是一個 JavaScript 物件標記法 (JSON) 檔案,會定義專案的基礎結構和設定。 範本使用宣告式語法。 您可以描述預期的部署,而不需要撰寫程式設計命令順序來建立部署。
必要條件
重要
Azure 付款 HSM 是特殊化服務。 若要符合上線和使用 Azure 付款 HSM 的資格,客戶必須具有一個指派的 Microsoft 客戶經理,以及具有一個雲端服務架構師 (CSA)。
若要查詢服務、開始資格審查程序,以及備妥上線前的必要條件,請要求 Microsoft 帳戶管理員和 CSA 透過電子郵件傳送要求。
您必須註冊 "Microsoft.HardwareSecurityModules" 和 "Microsoft.Network" 資源提供者,以及 Azure 付款 HSM 功能。 如需執行此作業的步驟,請參閱註冊 Azure 付款 HSM 資源提供者和資源提供者功能。
若要快速確定是否已註冊資源提供者和功能,請使用 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 訂用帳戶。 您可以建立免費帳戶 (如果沒有的話)。
在 Azure Cloud Shell 中使用 Bash 環境。 如需詳細資訊,請參閱 Azure Cloud Shell 中的 Bash 快速入門。
若要在本地執行 CLI 參考命令,請安裝 Azure CLI。 若您在 Windows 或 macOS 上執行,請考慮在 Docker 容器中執行 Azure CLI。 如需詳細資訊,請參閱〈如何在 Docker 容器中執行 Azure CLI〉。
如果您使用的是本機安裝,請使用 az login 命令,透過 Azure CLI 來登入。 請遵循您終端機上顯示的步驟,完成驗證程序。 如需其他登入選項,請參閱使用 Azure CLI 登入。
出現提示時,請在第一次使用時安裝 Azure CLI 延伸模組。 如需擴充功能詳細資訊,請參閱使用 Azure CLI 擴充功能。
執行 az version 以尋找已安裝的版本和相依程式庫。 若要升級至最新版本,請執行 az upgrade。
檢閱範本
本快速入門中使用的範本是 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"
}
},
"host1PrivateIPAddress": {
"type": "string"
},
"host2PrivateIPAddress": {
"type": "string"
},
"stampId": {
"type": "string",
"defaultValue": "stamp1",
"metadata": {
"description": "stamp id"
}
},
"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": "Host port virtual network name"
}
},
"vnetAddressPrefix": {
"type": "string",
"metadata": {
"description": "Host port virtual network address prefix"
}
},
"hsmSubnetName": {
"type": "String",
"metadata": {
"description": "Host port subnet name"
}
},
"hsmSubnetPrefix": {
"type": "string",
"metadata": {
"description": "Host port subnet prefix"
}
},
"managementVnetName": {
"type": "string",
"metadata": {
"description": "Management port virtual network name"
}
},
"managementVnetAddressPrefix": {
"type": "string",
"metadata": {
"description": "Management port virtual network address prefix"
}
},
"managementHsmSubnetName": {
"type": "String",
"metadata": {
"description": "Management port subnet name"
}
},
"managementHsmSubnetPrefix": {
"type": "string",
"metadata": {
"description": "Management port subnet prefix"
}
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.HardwareSecurityModules/dedicatedHSMs",
"apiVersion": "2021-11-30",
"name": "[parameters('resourceName')]",
"location": "[resourceGroup().location]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]",
"[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('managementVnetName'), parameters('managementHsmSubnetName'))]"
],
"sku": {
"name": "[parameters('skuName')]"
},
"properties": {
"networkProfile": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
},
"NetworkInterfaces": [
{
"privateIpAddress": "[parameters('host1PrivateIPAddress')]"
},
{
"privateIpAddress": "[parameters('host2PrivateIPAddress')]"
}
]
},
"managementNetworkProfile": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('managementVnetName'), parameters('managementHsmSubnetName'))]"
}
},
"stampId": "[parameters('stampId')]"
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-11-01",
"name": "[parameters('vnetName')]",
"location": "[resourceGroup().location]",
"tags": {
"fastpathenabled": "true"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('vnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('hsmSubnetName')]",
"properties": {
"addressPrefix": "[parameters('hsmSubnetPrefix')]",
"serviceEndpoints": [],
"delegations": [
{
"name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
"properties": {
"serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
}
}
],
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
}
],
"virtualNetworkPeerings": [],
"enableDdosProtection": false
}
},
{
"type": "Microsoft.Network/virtualNetworks",
"apiVersion": "2020-11-01",
"name": "[parameters('managementVnetName')]",
"location": "[resourceGroup().location]",
"tags": {
"fastpathenabled": "true"
},
"properties": {
"addressSpace": {
"addressPrefixes": [
"[parameters('managementVnetAddressPrefix')]"
]
},
"subnets": [
{
"name": "[parameters('managementHsmSubnetName')]",
"properties": {
"addressPrefix": "[parameters('managementHsmSubnetPrefix')]",
"serviceEndpoints": [],
"delegations": [
{
"name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
"properties": {
"serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
}
}
],
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
}
],
"virtualNetworkPeerings": [],
"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')]",
"serviceEndpoints": [],
"delegations": [
{
"name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
"properties": {
"serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
}
}
],
"privateEndpointNetworkPolicies": "Enabled",
"privateLinkServiceNetworkPolicies": "Enabled"
}
},
{
"type": "Microsoft.Network/virtualNetworks/subnets",
"apiVersion": "2020-11-01",
"name": "[concat(parameters('managementVnetName'), '/', parameters('managementHsmSubnetName'))]",
"dependsOn": [
"[resourceId('Microsoft.Network/virtualNetworks', parameters('managementVnetName'))]"
],
"properties": {
"addressPrefix": "[parameters('managementHsmSubnetPrefix')]",
"serviceEndpoints": [],
"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": "myPHSM"
},
"stampId": {
"value": "stamp1"
},
"skuName": {
"value": "payShield10K_LMK1_CPS60"
},
"vnetName": {
"value": "myVNet"
},
"vnetAddressPrefix": {
"value": "10.0.0.0/16"
},
"hsmSubnetName": {
"value": "mySubnet"
},
"hsmSubnetPrefix": {
"value": "10.0.0.0/24"
},
"host1PrivateIPAddress": {
"value": "10.0.0.5"
},
"host2PrivateIPAddress": {
"value": "10.0.0.6"
},
"managementVnetName": {
"value": "MGMTVNet"
},
"managementVnetAddressPrefix": {
"value": "10.1.0.0/16"
},
"managementHsmSubnetName": {
"value": "MGMTSubnet"
},
"managementHsmSubnetPrefix": {
"value": "10.1.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
- managementVnetName: MGMTVNet
- managementVnetAddressPrefix: 10.1.0.0/16
- managementHsmSubnetName: MGMTSubnet
- managementHsmSubnetPrefix: 10.1.0.0/24
下一步
請進入下一篇文章,以了解如何檢視付款 HSM。
其他資源:
- 閱讀付款 HSM 的概觀
- 了解如何開始使用 Azure 付款 HSM
- 請參閱一些一般部署案例
- 了解認證與合規性
- 請參閱常見問題集