Créer un HSM de paiement avec des ports hôte et de gestion dans différents réseaux virtuels à l’aide d’un modèle ARM
HSM de paiement Azure est un service « nu » fourni en utilisant des modules de sécurité matériels (HSM) de paiement Thales payShield 10K et qui permet d’effectuer des opérations de clé de chiffrement pour les transactions de paiement critiques en temps réel dans le cloud Azure. Le service HSM de paiement Azure est spécifiquement conçu pour aider les fournisseurs de services et les établissements financiers à accélérer la stratégie de transformation numérique de leur système de paiement ainsi qu’à adopter le cloud public. Pour plus d’informations, consultez À propos de HSM de paiement Azure : Vue d’ensemble.
Ce tutoriel explique comment créer un HSM de paiement avec des sous-réseaux de gestion et d’hôtes statiques dans le même réseau virtuel, à l’aide d’un modèle ARM. Vous pouvez à la place :
- Créer un HSM de paiement avec les ports hôte et de gestion dans le même réseau virtuel à l’aide d’Azure CLI ou PowerShell
- Créer un HSM de paiement avec un ports hôte et de gestion dans le même réseau virtuel en utilisant un modèle ARM
- Créer un HSM de paiement avec un port hôte et de gestion dans différents réseaux virtuels en utilisant Azure CLI ou PowerShell
- Créer un HSM de paiement avec des ports hôte et de gestion avec des adresses IP dans différents réseaux virtuels en utilisant un modèle ARM
Un modèle Azure Resource Manager est un fichier JSON (JavaScript Object Notation) qui définit l’infrastructure et la configuration de votre projet. Le modèle utilise la syntaxe déclarative. Vous décrivez votre déploiement prévu sans écrire la séquence de commandes de programmation pour créer le déploiement.
Prérequis
Important
HSM de paiement Azure est un service spécialisé. Pour pouvoir intégrer et utiliser HSM de paiement Azure, les clients doivent se voir attribuer un responsable de compte Microsoft et avoir un architecte de services cloud (CSA).
Pour vous renseigner sur le service, démarrer le processus de qualification et préparer les prérequis avant l’intégration, demandez à votre responsable de compte Microsoft et à CSA d’envoyer une demande par e-mail.
Vous devez inscrire les fournisseurs de ressources « Microsoft.HardwareSecurityModules » et « Microsoft.Network » ainsi que les fonctionnalités du HSM de paiement Azure. Pour ce faire, consultez Inscrire les fonctionnalités du fournisseur de ressources et du fournisseur de ressources du HSM de paiement Azure.
Pour déterminer rapidement si les fournisseurs de ressources et les fonctionnalités sont déjà inscrits, utilisez la commande Azure CLI az provider show. (La sortie de cette commande sera plus lisible si vous l’affichez au format table.)
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
Vous pouvez continuer dans ce guide de démarrage rapide si ces quatre commandes retournent « Inscrit ».
Vous devez avoir un abonnement Azure. Vous pouvez créer un compte gratuit si vous n’en avez pas.
Utilisez l’environnement Bash dans Azure Cloud Shell. Pour plus d’informations, consultez Démarrage rapide pour Bash dans Azure Cloud Shell.
Si vous préférez exécuter les commandes de référence de l’interface de ligne de commande localement, installez l’interface Azure CLI. Si vous exécutez sur Windows ou macOS, envisagez d’exécuter Azure CLI dans un conteneur Docker. Pour plus d’informations, consultez Guide pratique pour exécuter Azure CLI dans un conteneur Docker.
Si vous utilisez une installation locale, connectez-vous à Azure CLI à l’aide de la commande az login. Pour finir le processus d’authentification, suivez les étapes affichées dans votre terminal. Pour connaître les autres options de connexion, consultez Se connecter avec Azure CLI.
Lorsque vous y êtes invité, installez l’extension Azure CLI lors de la première utilisation. Pour plus d’informations sur les extensions, consultez Utiliser des extensions avec Azure CLI.
Exécutez az version pour rechercher la version et les bibliothèques dépendantes installées. Pour effectuer une mise à niveau vers la dernière version, exécutez az upgrade.
Vérifier le modèle
Le modèle utilisé dans ce guide de démarrage rapide est 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"
}
}
]
}
Ressource Azure définie dans le modèle :
- Microsoft.HardwareSecurityModules.dedicatedHSMs : Créez un HSM de paiement Azure.
Le fichier azuredeploy.parameters.json correspondant est :
{
"$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"
}
}
}
Déployer le modèle
Dans cet exemple, vous allez utiliser Azure CLI pour déployer un modèle ARM afin de créer un HSM de paiement Azure.
Tout d’abord, enregistrez les fichiers « azuredeploy.json » et « azuredeploy.parameters.json » localement pour les utiliser à l’étape suivante. Le contenu de ces fichiers se trouve dans la section Passer en revue le modèle.
Notes
Les étapes ci-dessous partent du principe que les fichiers « azuredeploy.json » et « azuredeploy.parameters.json » se trouvent dans le répertoire à partir duquel vous exécutez les commandes. Si les fichiers se trouvent dans un autre répertoire, vous devez ajuster les chemins des fichiers en conséquence.
Ensuite, créez un groupe de ressources Azure.
Un groupe de ressources est un conteneur logique dans lequel les ressources Azure sont déployées et gérées. Utilisez la commande az group create pour créer un groupe de ressources nommé myResourceGroup à l’emplacement eastus.
az group create --name "myResourceGroup" --location "EastUS"
Pour finir, utilisez la commande Azure CLI az deployment group create pour déployer votre modèle ARM.
az deployment group create --resource-group "MyResourceGroup" --name myPHSMDeployment --template-file "azuredeploy.json"
À l’invite, fournissez les valeurs suivantes pour les paramètres :
- 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
Étapes suivantes
Passez à l’article suivant pour découvrir comment afficher un HSM de paiement.
Autres ressources :
- Lisez une Vue d’ensemble du HSM de paiement
- Découvrir comment bien démarrer avec HSM de paiement Azure
- Voir quelques scénarios de déploiement courants
- En savoir plus sur la certification et la conformité
- Consulter la foire aux questions