Compartir a través de


Inicio rápido: Creación de un HSM de pago de Azure mediante una plantilla de ARM

Azure Payment HSM es un servicio "BareMetal" entregado mediante los módulos de seguridad de hardware de pago de Thales payShield 10K (HSM) para proporcionar operaciones de clave criptográfica para transacciones de pago críticas en tiempo real en la nube de Azure. Azure Payment HSM está diseñado específicamente para ayudar a un proveedor de servicios y a una entidad financiera individual a acelerar la estrategia de transformación digital de su sistema de pago y adoptar la nube pública. Para más información, consulte Azure Payment HSM: Overview.

En este inicio rápido se describe cómo crear un HSM de pago con el host y el puerto de administración en la misma red virtual. En su lugar, puede:

Una plantilla de Azure Resource Manager es un archivo de notación de objetos JavaScript (JSON) que define tanto la infraestructura como la configuración de un proyecto. La plantilla usa sintaxis declarativa. Describes tu implementación deseada sin escribir la secuencia de comandos de programación para crearla.

Prerrequisitos

Importante

Azure Payment HSM es un servicio especializado. Para calificar para la incorporación y el uso de Azure Payment HSM, los clientes deben tener asignado un administrador de cuentas de Microsoft y tener un arquitecto de servicios en la nube (CSA).

Para consultar el servicio, inicie el proceso de calificación y prepare los requisitos previos antes de incorporarse, pida a su administrador de cuentas de Microsoft y CSA que envíe una solicitud por correo electrónico.

  • Debe registrar los proveedores de recursos Microsoft.HardwareSecurityModules y Microsoft.Network, así como las funcionalidades de Azure Payment HSM. Los pasos para hacerlo se encuentran en Registro del proveedor de recursos de Azure Payment HSM y las características del proveedor de recursos.

    Advertencia

    Debe aplicar la marca característica FastPathEnabled a cada id. de suscripción y agregar la etiqueta fastpathenabled a cada red virtual. Para obtener más información, consulte Fastpathenabled.

    Para determinar rápidamente si los proveedores de recursos y las características ya están registrados, use el comando az provider show de la CLI de Azure. (La salida de este comando resultará más legible si la muestra en formato de tabla).

    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
    

    Puede continuar con este inicio rápido si los cuatro comandos devuelven "Registrado".

  • Debes tener una suscripción a Azure. Puede crear una cuenta gratuita si no tiene una.

Revisión de la plantilla

La plantilla que se usa en este inicio rápido es 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"
      }
    }
  ]
}

El recurso de Azure definido en esta plantilla es:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs: cree un HSM de pago de Azure.

El archivo azuredeploy.parameters.json correspondiente es:

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

Implementación de la plantilla

En este ejemplo, se usa la CLI de Azure para implementar una plantilla de ARM a fin de crear una instancia de HSM de pago de Azure.

En primer lugar, guarde localmente los archivos "azuredeploy.json" y "azuredeploy.parameters.json" para usarlos en el paso siguiente. El contenido de estos archivos se puede encontrar en la sección Revisar la plantilla .

Nota:

En los pasos siguientes se asume que los archivos "azuredeploy.json" y "azuredeploy.parameters.json" están en el directorio desde el que se ejecutan los comandos. Si los archivos están en otro directorio, debe ajustar las rutas de acceso de archivo según corresponda.

A continuación, cree un grupo de recursos de Azure.

Un grupo de recursos es un contenedor lógico en el que se implementan y se administran los recursos de Azure. Utilice el comando az group create para crear un grupo de recursos denominado myResourceGroup en la ubicación eastus.

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

Por último, use el comando az deployment group create de la CLI de Azure para implementar la plantilla de ARM.

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

Cuando se le solicite, proporcione los siguientes valores para los parámetros:

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

Validación de la implementación

Puede comprobar que el HSM de pago se creó con el comando az dedicated-hsm list de la CLI de Azure. La salida es más fácil de leer si da formato a los resultados como una tabla:

az dedicated-hsm list -o table

Debería ver el nombre del HSM de pago recién creado.

Limpieza de recursos

Otras guías de inicio rápido y tutoriales de esta colección se basan en este inicio rápido. Si tiene pensado seguir trabajando en otros inicios rápido y tutoriales, considere la posibilidad de dejar estos recursos activos.

Cuando ya no se necesiten, puede usar el comando az group delete de la CLI de Azure para quitar el grupo de recursos y todos los recursos relacionados.

az group delete --name "myResourceGroup"

Pasos siguientes

En este inicio rápido, ha implementado una plantilla de Azure Resource Manager para crear un HSM de pago, comprobar la implementación y eliminar el HSM de pago. Para más información sobre Azure Payment HSM y cómo integrarlo con las aplicaciones, continúe con los artículos siguientes.