Creare un modulo di protezione hardware di pagamento con porta host e gestione in reti virtuali diverse usando il modello di Resource Manager
Il modulo di protezione hardware di pagamento di Azure è un servizio "BareMetal" fornito tramite moduli di protezione hardware di pagamento Thales payShield 10K (HSM) per fornire operazioni di chiave crittografica per transazioni di pagamento critiche in tempo reale nel cloud di Azure. Il modulo di protezione hardware di pagamento di Azure è progettato specificamente 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 Modulo di protezione hardware di pagamento di Azure: Panoramica.
Questa esercitazione descrive come creare un modulo di protezione hardware di pagamento con sottoreti di gestione e host statici nella stessa rete virtuale usando un modello di Resource Manager. È invece possibile:
- Creare un modulo di protezione hardware di pagamento con l'host e la porta di gestione nella stessa rete virtuale usando l'interfaccia della riga di comando di Azure o PowerShell
- Creare un modulo di protezione hardware di pagamento con l'host e la porta di gestione nella stessa rete virtuale usando un modello di Resource Manager
- Creare un modulo di protezione hardware di pagamento con l'host e la porta di gestione in reti virtuali diverse usando l'interfaccia della riga di comando di Azure o PowerShell
- Creare una risorsa HSM con host e porta di gestione con indirizzi IP in reti virtuali diverse usando il modello di Resource Manager
Un modello di Azure Resource Manager è un file JSON (JavaScript Object Notation) che definisce l'infrastruttura e la configurazione del progetto. Il modello utilizza la 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 designato da Microsoft assegnato e un Cloud Service Architect (CSA).
Per richiedere informazioni sul servizio, avviare il processo di qualificazione e preparare i prerequisiti prima dell'onboarding, chiedere all’Account Manager designato da 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.
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".
È necessaria una sottoscrizione di Azure. Se non si ha un account, è possibile crearne uno gratuito.
Usare l'ambiente Bash in Azure Cloud Shell. Per altre informazioni, vedere Avvio rapido su Bash in Azure Cloud Shell.
Se si preferisce eseguire i comandi di riferimento dell'interfaccia della riga di comando in locale, installare l'interfaccia della riga di comando di Azure. Per l'esecuzione in Windows o macOS, è consigliabile eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker. Per altre informazioni, vedere Come eseguire l'interfaccia della riga di comando di Azure in un contenitore Docker.
Se si usa un'installazione locale, accedere all'interfaccia della riga di comando di Azure con il comando az login. Per completare il processo di autenticazione, seguire la procedura visualizzata nel terminale. Per altre opzioni di accesso, vedere Accedere tramite l'interfaccia della riga di comando di Azure.
Quando richiesto, al primo utilizzo installare l'estensione dell'interfaccia della riga di comando di Azure. Per altre informazioni sulle estensioni, vedere Usare le estensioni con l'interfaccia della riga di comando di Azure.
Eseguire az version per trovare la versione e le librerie dipendenti installate. Per eseguire l'aggiornamento alla versione più recente, eseguire az upgrade.
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"
}
},
"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"
}
}
]
}
La risorsa di Azure definita nel modello è:
- Microsoft.HardwareSecurityModules.dedicatedHSMs: creare un modulo di protezione hardware di pagamento di Azure.
Il file di azuredeploy.parameters.json corrispondente è:
{
"$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"
}
}
}
Distribuire il modello
In questo esempio si userà l'interfaccia della riga di comando di Azure per implementare 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, per usarli nel passaggio successivo. Il contenuto di questi file è disponibile nella sezione Esaminare il modello.
Nota
I passaggi seguenti presuppongono che il file "azuredeploy.json" e "azuredeploy.parameters.json" si trovino nella directory da cui si eseguono i comandi. Se i file si trovano in un'altra directory, è necessario modificare di conseguenza i percorsi dei file.
Creare quindi un gruppo di risorse di Azure.
Un gruppo di risorse è un contenitore logico in cui vengono distribuite e gestite le risorse di Azure. Usare il comando az group create per creare un gruppo di risorse denominato myResourceGroup nell'area 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
- managementVnetName: MGMTVNet
- managementVnetAddressPrefix: 10.1.0.0/16
- managementHsmSubnetName: MGMTSubnet
- managementHsmSubnetPrefix: 10.1.0.0/24
Passaggi successivi
Passare all'articolo successivo per informazioni su come visualizzare il modulo di protezione hardware di pagamento.
Altre risorse:
- Leggere una Panoramica del modulo di protezione hardware di pagamento
- Informazioni su come iniziare a usare l’HSM di pagamento di Azure
- Vedere alcuni scenari di distribuzione comuni
- Informazioni su Certificazione e conformità
- Leggere le Domande Frequenti