Guida introduttiva: Creare un modulo di protezione hardware di pagamento di Azure con un modello di Resource Manager

HSM di pagamento di Azure è un servizio "BareMetal" fornito usando i moduli di protezione hardware di pagamento Thales payShield 10K per fornire operazioni di chiave crittografica per le transazioni di pagamento critiche in tempo reale nel cloud di Azure. Il modulo di protezione hardware di pagamento di Azure è progettato in modo specifico per aiutare un provider di servizi e un singolo istituto finanziario ad accelerare la strategia di trasformazione digitale del sistema di pagamento e adottare il cloud pubblico. Per altre informazioni, vedere HSM di pagamento di Azure: Panoramica.

Questa guida introduttiva descrive come creare un modulo di protezione hardware di pagamento con l'host e la porta di gestione nella stessa rete virtuale. È invece possibile:

Un modello di Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione per il progetto. Il modello usa la sintassi dichiarativa. Nella sintassi dichiarativa si descrive la distribuzione prevista senza scrivere la sequenza di comandi di programmazione necessari per creare la distribuzione.

Prerequisiti

Importante

Il modulo di protezione hardware di pagamento di Azure è un servizio specializzato. Per qualificarsi per l'onboarding e l'uso del modulo di protezione hardware di pagamento di Azure, i clienti devono avere un account manager Microsoft assegnato, avere un csa e soddisfare il requisito monetario di cinque milioni ($ 5 milioni) di USD o superiore nei ricavi complessivi di Azure impegnati annualmente.

Per richiedere informazioni sul servizio, avviare il processo di qualificazione e preparare i prerequisiti prima dell'onboarding, chiedere al responsabile dell'account Microsoft e al CSA di inviare una richiesta tramite posta elettronica.

  • È necessario registrare i provider di risorse "Microsoft.HardwareSecurityModules" e "Microsoft.Network", nonché le funzionalità del modulo di protezione hardware di pagamento di Azure. Per eseguire questa operazione, vedere Registrare il provider di risorse del modulo di protezione hardware di Pagamento di Azure e le funzionalità del provider di risorse.

    Avviso

    È necessario applicare il flag di funzionalità "FastPathEnabled" a ogni ID sottoscrizione e aggiungere il tag "fastpathenabled" a ogni rete virtuale. Per altri dettagli, vedere Fastpathenabled.

    Per verificare rapidamente se i provider di risorse e le funzionalità sono già registrati, usare il comando az provider show dell'interfaccia della riga di comando di Azure. L'output di questo comando sarà più leggibile se viene visualizzato in formato tabella.

    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
    

    È possibile continuare con questa guida introduttiva se tutti e quattro questi comandi restituiscono "Registered".

  • È necessario disporre di una sottoscrizione di Azure. Se non si ha un account, è possibile crearne uno gratuito.

Rivedere il modello

Il modello usato in questa guida introduttiva è 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"
      }
    }
  ]
}

La risorsa di Azure definita nel modello è:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs: creare un modulo di protezione hardware di pagamento di Azure.

Il file azuredeploy.parameters.json corrispondente è:

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

Distribuire il modello

In questo esempio si userà l'interfaccia della riga di comando di Azure per distribuire un modello di Resource Manager per creare un modulo di protezione hardware di pagamento di Azure.

Prima di tutto, salvare i file "azuredeploy.json" e "azuredeploy.parameters.json" in locale, da usare nel passaggio successivo. Il contenuto di questi file è disponibile nella sezione Esaminare il modello .

Nota

La procedura seguente presuppone che il file "azuredeploy.json" e "azuredeploy.parameters.json" si trovi nella directory da cui vengono eseguiti i comandi. Se i file si trovano in un'altra directory, è necessario modificare i percorsi dei file di conseguenza.

Creare quindi un gruppo di risorse di Azure.

Un gruppo di risorse è un contenitore logico in cui le risorse di Azure vengono distribuite e gestite. Usare il comando az group create per creare un gruppo di risorse denominato myResourceGroup nella località eastus .

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

Usare infine il comando az deployment group create dell'interfaccia della riga di comando di Azure per distribuire il modello di Resource Manager.

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

Quando richiesto, specificare i valori seguenti per i parametri:

  • resourceName: myPaymentHSM
  • vnetName: myVNet
  • vnetAddressPrefix: 10.0.0.0/16
  • hsmSubnetName: mySubnet
  • hsmSubnetPrefix: 10.0.0.0/24

Convalidare la distribuzione

È possibile verificare che il modulo di protezione hardware di pagamento sia stato creato con il comando az dedicated-hsm list dell'interfaccia della riga di comando di Azure. L'output sarà più facile da leggere se si formattano i risultati come tabella:

az dedicated-hsm list -o table

Verrà visualizzato il nome del modulo di protezione hardware di pagamento appena creato.

Pulire le risorse

Altre guide introduttive ed esercitazioni della raccolta si basano su questa. Se si prevede di usare le guide introduttive e le esercitazioni successive, è consigliabile non cancellare le risorse create.

Quando non sono più necessari, è possibile rimuovere il gruppo di risorse e tutte le risorse correlate tramite il comando az group delete dell'interfaccia della riga di comando di Azure:

az group delete --name "myResourceGroup"

Passaggi successivi

In questa guida introduttiva è stato distribuito un modello di Resource Manager di Azure per creare un modulo di protezione hardware di pagamento, aver verificato la distribuzione ed eliminato il modulo di protezione hardware di pagamento. Per altre informazioni sul modulo di protezione hardware di pagamento di Azure e su come integrarlo con le applicazioni, continuare con gli articoli seguenti.