Udostępnij przez


Tworzenie HSM do płatności z portem dla hosta i zarządzania w różnych sieciach wirtualnych przy użyciu szablonu ARM

Moduł Azure Payment HSM to usługa "BareMetal" oferowana przy użyciu sprzętowych modułów zabezpieczeń płatności Thales payShield 10K (HSM), która zapewnia operacje kluczy kryptograficznych dla krytycznych transakcji płatniczych w czasie rzeczywistym w chmurze Azure. Moduł HSM płatności platformy Azure został zaprojektowany specjalnie, aby pomóc dostawcy usług i indywidualnej instytucji finansowej przyspieszyć strategię transformacji cyfrowej systemu płatności i wdrożyć chmurę publiczną. Aby uzyskać więcej informacji, zobacz Moduł HSM płatności platformy Azure: omówienie.

W tym samouczku opisano, jak utworzyć płatnościowy HSM z hostem i zarządzaniem w statycznych podsieciach w tej samej sieci wirtualnej, przy użyciu szablonu ARM. Zamiast tego możesz:

Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. Szablon używa składni deklaratywnej. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.

Wymagania wstępne

Ważne

Moduł HSM płatności platformy Azure to wyspecjalizowana usługa. Aby uzyskać kwalifikacje do wdrożenia i korzystania z Azure Payment HSM, klienci muszą mieć przypisanego menedżera kont Microsoft oraz architekta usług chmurowych (CSA).

Aby dowiedzieć się więcej o usłudze, uruchom proces kwalifikacji i przygotuj wymagania wstępne przed rozpoczęciem integracji, poproś menedżera konta Microsoft i CSA o wysłanie wiadomości pocztą e-mail.

  • Należy zarejestrować dostawców zasobów "Microsoft.HardwareSecurityModules" i "Microsoft.Network", a także funkcje modułu HSM płatności platformy Azure. Kroki w tym celu znajdują się w temacie Rejestrowanie dostawcy zasobów modułu HSM usługi Azure Payment i funkcji dostawcy zasobów.

    Aby szybko sprawdzić, czy dostawcy zasobów i funkcje są już zarejestrowane, użyj polecenia az provider show interfejsu wiersza polecenia platformy Azure. (Dane wyjściowe tego polecenia są bardziej czytelne, jeśli są wyświetlane w formacie tabeli).

    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
    

    Możesz kontynuować pracę z tym przewodnikiem Szybki start, jeśli wszystkie cztery z tych poleceń zwracają wartość "Zarejestrowano".

  • Wymagana jest subskrypcja platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto .

Przegląd szablonu

Szablon używany w tym przewodniku szybkiego-startu jest 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"
      }
    }
  ]
}

Zasób platformy Azure zdefiniowany w szablonie to:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs: Utwórz HSM płatności platformy Azure.

Plik azuredeploy.parameters.json to odpowiedni plik.

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

Wdrażanie szablonu

W tym przykładzie użyjesz Azure CLI do wdrożenia szablonu ARM w celu utworzenia HSM płatności w Azure.

Najpierw zapisz pliki "azuredeploy.json" i "azuredeploy.parameters.json" lokalnie, aby użyć ich w następnym kroku. Zawartość tych plików można znaleźć w sekcji Przeglądanie szablonu .

Uwaga / Notatka

W tych krokach przyjęto założenie, że plik "azuredeploy.json" i "azuredeploy.parameters.json" znajdują się w katalogu, z którego są uruchamiane polecenia. Jeśli pliki znajdują się w innym katalogu, należy odpowiednio dostosować ścieżki plików.

Następnie utwórz grupę zasobów platformy Azure.

Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Użyj polecenia az group create , aby utworzyć grupę zasobów o nazwie myResourceGroup w lokalizacji eastus .

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

Na koniec użyj polecenia az deployment group create interfejsu wiersza polecenia platformy Azure, aby wdrożyć szablon usługi ARM.

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

Po wyświetleniu monitu podaj następujące wartości dla parametrów:

  • 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

Dalsze kroki

Przejdź do następnego artykułu, aby dowiedzieć się, jak wyświetlić moduł HSM płatności.

Więcej zasobów: