Guia de início rápido: criar um HSM de pagamento do Azure usando um modelo ARM

O Azure Payment HSM é um serviço "BareMetal" fornecido usando os módulos de segurança de hardware de pagamento (HSM) Thales payShield 10K para fornecer operações de chave criptográfica para transações de pagamento críticas em tempo real na nuvem do Azure. O Azure Payment HSM foi projetado especificamente para ajudar um provedor de serviços e uma instituição financeira individual a acelerar a estratégia de transformação digital de seus sistemas de pagamento e adotar a nuvem pública. Para obter mais informações, consulte Azure Payment HSM: Visão geral.

Este guia de início rápido descreve como criar um HSM de pagamento com o host e a porta de gerenciamento na mesma rede virtual. Em vez disso, pode:

Um modelo do Azure Resource Manager é um arquivo JSON (JavaScript Object Notation) que define a infraestrutura e a configuração do seu projeto. O modelo utiliza sintaxe declarativa. Você descreve a implantação pretendida sem escrever a sequência de comandos de programação para criar a implantação.

Pré-requisitos

Importante

O Azure Payment HSM é um serviço especializado. Para se qualificar para integração e uso do Azure Payment HSM, os clientes devem ter um Gerente de Conta da Microsoft atribuído e ter um Arquiteto de Serviços de Nuvem (CSA).

Para saber mais sobre o serviço, iniciar o processo de qualificação e preparar os pré-requisitos antes da integração, peça ao seu gerente de conta da Microsoft e ao CSA para enviar uma solicitação por email.

  • Você deve registrar os provedores de recursos "Microsoft.HardwareSecurityModules" e "Microsoft.Network", bem como os recursos do Azure Payment HSM. As etapas para fazer isso estão em Registrar o provedor de recursos do HSM de pagamento do Azure e os recursos do provedor de recursos.

    Aviso

    Você deve aplicar o sinalizador de recurso "FastPathEnabled" a cada ID de assinatura e adicionar a tag "fastpathenabled" a cada rede virtual. Para obter mais informações, consulte Fastpathenabled.

    Para verificar rapidamente se os provedores de recursos e recursos já estão registrados, use o comando Azure CLI az provider show . (A saída deste comando é mais legível se você exibi-lo em formato de tabela.)

    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
    

    Você pode continuar com este início rápido se todos esses quatro comandos retornarem "Registrado".

  • Precisa de uma subscrição do Azure. Você pode criar uma conta gratuita se não tiver uma.

  • Use o ambiente Bash no Azure Cloud Shell. Para obter mais informações, consulte Guia de início rápido para Bash no Azure Cloud Shell.

  • Se preferir executar comandos de referência da CLI localmente, instale a CLI do Azure. Se estiver a utilizar o Windows ou macOS, considere executar a CLI do Azure num contentor Docker. Para obter mais informações, consulte Como executar a CLI do Azure em um contêiner do Docker.

    • Se estiver a utilizar uma instalação local, inicie sessão no CLI do Azure ao utilizar o comando az login. Para concluir o processo de autenticação, siga os passos apresentados no seu terminal. Para outras opções de entrada, consulte Entrar com a CLI do Azure.

    • Quando solicitado, instale a extensão da CLI do Azure na primeira utilização. Para obter mais informações sobre as extensões, veja Utilizar extensões com o CLI do Azure.

    • Execute o comando az version para localizar a versão e as bibliotecas dependentes instaladas. Para atualizar para a versão mais recente, execute o comando az upgrade.

Rever o modelo

O modelo usado neste início rápido é 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"
      }
    }
  ]
}

O recurso do Azure definido no modelo é:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs: crie um HSM de pagamento do Azure.

O ficheiro azuredeploy.parameters.json correspondente é:

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

Implementar o modelo

Neste exemplo, você usa a CLI do Azure para implantar um modelo ARM para criar um HSM de pagamento do Azure.

Primeiro, salve os arquivos "azuredeploy.json" e "azuredeploy.parameters.json" localmente, para uso na próxima etapa. O conteúdo desses arquivos pode ser encontrado na seção Revisar o modelo .

Nota

As etapas abaixo assumem que os arquivos "azuredeploy.json" e "azuredeploy.parameters.json" estão no diretório a partir do qual você está executando os comandos. Se os arquivos estiverem em outro diretório, você deverá ajustar os caminhos de arquivo de acordo.

Em seguida, crie um grupo de recursos do Azure.

Um grupo de recursos é um contentor lógico no qual os recursos do Azure são implementados e geridos. Use o comando az group create para criar um grupo de recursos chamado myResourceGroup no local eastus .

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

Por fim, use o comando Azure CLI az deployment group create para implantar seu modelo ARM.

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

Quando solicitado, forneça os seguintes valores para os parâmetros:

  • resourceName: myPaymentHSM
  • vnetName: myVNet
  • vnetAddressPrefix: 10.0.0.0/16
  • hsmSubnetName: minhaSub-rede
  • hsmSubnetPrefix: 10.0.0.0/24

Validar a implementação

Você pode verificar se o HSM de pagamento foi criado com o comando Azure CLI az dedicated-hsm list. A saída é mais fácil de ler se você formatar os resultados como uma tabela:

az dedicated-hsm list -o table

Você deve ver o nome do seu HSM de pagamento recém-criado.

Clean up resources (Limpar recursos)

Outros inícios rápidos e tutoriais desta coleção têm por base este início rápido. Se quiser continuar a trabalhar com os inícios rápidos e tutoriais subsequentes, pode manter estes recursos.

Quando não for mais necessário, você pode usar o comando azur CLI az group delete para remover o grupo de recursos e todos os recursos relacionados:

az group delete --name "myResourceGroup"

Próximos passos

Neste início rápido, você implantou um modelo do Azure Resource Manager para criar um HSM de pagamento, verificou a implantação e excluiu o HSM de pagamento. Para saber mais sobre o Azure Payment HSM e como integrá-lo aos seus aplicativos, continue nos artigos abaixo.