Delen via


Een betalings-HSM maken met host- en beheerpoort in verschillende virtuele netwerken met behulp van een ARM-sjabloon

Azure Payment HSM is een 'BareMetal'-service die wordt geleverd met Thales payShield 10K payment hardware security modules (HSM) om cryptografische sleutelbewerkingen te bieden voor realtime, kritieke betalingstransacties in de Azure-cloud. Azure Payment HSM is speciaal ontworpen om een serviceprovider en een afzonderlijke financiële instelling te helpen de digitale transformatiestrategie van hun betalingssysteem te versnellen en de openbare cloud te gebruiken. Zie Azure Payment HSM: Overzicht voor meer informatie.

In deze zelfstudie wordt beschreven hoe u een betalings-HSM maakt met statische host- en beheersubnetten in hetzelfde virtuele netwerk, met behulp van een ARM-sjabloon. U kunt in plaats daarvan:

Een Azure Resource Manager-sjabloon is een JSON-bestand (JavaScript Object Notation) dat de infrastructuur en configuratie voor uw project definieert. Voor de sjabloon is declaratieve syntaxis vereist. U beschrijft de beoogde implementatie zonder de reeks programmeeropdrachten te schrijven om de implementatie te maken.

Vereisten

Belangrijk

Azure Payment HSM is een gespecialiseerde service. Om in aanmerking te komen voor onboarding en het gebruik van Azure Payment HSM, moeten klanten beschikken over een toegewezen Microsoft Account Manager en beschikken over een Cloud Service Architect (CSA).

Als u informatie wilt over de service, start u het kwalificatieproces en bereidt u de vereisten voordat u aan boord gaat, vraagt u uw Microsoft-accountmanager en CSA om een aanvraag via e-mail te verzenden.

  • U moet de resourceproviders Microsoft.HardwareSecurityModules en Microsoft.Network registreren, evenals de Azure Payment HSM-functies. De stappen hiervoor bevinden zich in De functies van de Azure Payment HSM-resourceprovider en resourceprovider registreren.

    Als u snel wilt controleren of de resourceproviders en -functies al zijn geregistreerd, gebruikt u de opdracht Azure CLI az provider show . (U vindt de uitvoer van deze opdracht beter leesbaar als u deze in tabelindeling weergeeft.)

    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
    

    U kunt doorgaan met deze quickstart als alle vier deze opdrachten 'Geregistreerd' retourneren.

  • U hebt een abonnement op Azure nodig. Als u nog geen account hebt, kunt u een gratis account maken.

De sjabloon controleren

De sjabloon die in deze quickstart wordt gebruikt, is 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"
      }
    }
  ]
}

De Azure-resource die in de sjabloon is gedefinieerd, is:

  • Microsoft.HardwareSecurityModules.dedicatedHSM's: Maak een Azure-betalings-HSM.

Het bijbehorende bestand azuredeploy.parameters.json is:

{
  "$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"
    }
  }
}

De sjabloon implementeren

In dit voorbeeld gebruikt u de Azure CLI om een ARM-sjabloon te implementeren om een Azure-betalings-HSM te maken.

Sla eerst de bestanden 'azuredeploy.json' en 'azuredeploy.parameters.json' lokaal op voor gebruik in de volgende stap. De inhoud van deze bestanden vindt u in de sectie De sjabloon controleren.

Notitie

In de onderstaande stappen wordt ervan uitgegaan dat het bestand 'azuredeploy.json' en 'azuredeploy.parameters.json' zich in de map bevinden waaruit u de opdrachten uitvoert. Als de bestanden zich in een andere map bevinden, moet u de bestandspaden dienovereenkomstig aanpassen.

Maak vervolgens een Azure-resourcegroep.

Een resourcegroep is een logische container waarin Azure-resources worden geïmplementeerd en beheerd. Gebruik de opdracht az group create om een resourcegroep met de naam myResourceGroup te maken op de locatie eastus.

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

Gebruik ten slotte de opdracht Azure CLI az deployment group create om uw ARM-sjabloon te implementeren.

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

Wanneer u hierom wordt gevraagd, geeft u de volgende waarden op voor de parameters:

  • 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

Volgende stappen

Ga naar het volgende artikel voor meer informatie over het weergeven van uw betalings-HSM.

Meer resources: