Criar um HSM de pagamento com host e porta de gerenciamento com endereços IP em redes virtuais diferentes usando o modelo do ARM
O HSM de Pagamento do Azure é um serviço "BareMetal" fornecido usando HSMs (módulos de segurança de hardware) de pagamento do Thales PayShield 10K para oferecer operações de chave de criptografia a transações de pagamento críticas e em tempo real na nuvem do Azure. O HSM de Pagamento do Azure 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 do sistema de pagamento e adotar a nuvem pública. Para saber mais, confira HSM de Pagamento do Azure: visão geral.
Este tutorial descreve como usar um modelo do (modelo do Azure Resource Manager (ARM) para criar um HSM de pagamento do Azure com host e porta de gerenciamento com endereços IP em redes virtuais diferentes. Em vez disso, você pode:
- Criar um HSM de pagamento com o host e a porta de gerenciamento na mesma rede virtual usando a CLI do Azure ou o PowerShell
- Criar um HSM de pagamento com o host e a porta de gerenciamento na mesma rede virtual usando um modelo do ARM
- Criar um HSM de pagamento com o host e a porta de gerenciamento na mesma rede virtual usando a CLI do Azure ou o PowerShell
- Criar um HSM de Pagamento com host e porta de gerenciamento em redes virtuais diferentes usando um template do ARM
- Criar um recurso HSM com host e porta de gerenciamento com endereços IP em redes virtuais diferentes usando o modelo do ARM
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 usa a 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 HSM de Pagamento do Azure é um serviço especializado. Para se qualificarem para a integração e o uso do HSM de Pagamento do Azure, os clientes precisam ter um Gerente de Contas Microsoft atribuído e um CSA (Arquiteto de Serviços de Nuvem).
Para saber mais sobre o serviço, inicie o processo de qualificação, prepare os pré-requisitos antes da integração e peça ao gerente de contas da Microsoft e à CSA para enviar uma solicitação por email.
Você precisa registrar os provedores de recursos "Microsoft.HardwareSecurityModules" e "Microsoft.Network", bem como os recursos do HSM de Pagamento do Azure. As etapas para fazer isso estão em Registrar o provedor de recursos do HSM de Pagamento do Azure e as funcionalidades do provedor de recursos.
Para verificar rapidamente se os provedores de recursos e os recursos já estão registrados, use o comando az provider show da CLI do Azure. (A saída desse comando ficará mais legível se você exibi-la 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
Continue com este guia de início rápido se os quatro comandos retornarem "Registrado".
Você precisa ter uma assinatura 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, confira Início Rápido para Bash no Azure Cloud Shell.
Se preferir executar os comandos de referência da CLI localmente, instale a CLI do Azure. Para execuções no Windows ou no macOS, considere executar a CLI do Azure em um contêiner do Docker. Para obter mais informações, confira Como executar a CLI do Azure em um contêiner do Docker.
Se estiver usando uma instalação local, entre com a CLI do Azure usando o comando az login. Para concluir o processo de autenticação, siga as etapas exibidas no terminal. Para ver outras opções de entrada, confira Conectar-se com a CLI do Azure.
Quando solicitado, instale a extensão da CLI do Azure no primeiro uso. Para obter mais informações sobre extensões, confira Usar extensões com a CLI do Azure.
Execute az version para localizar a versão e as bibliotecas dependentes que estão instaladas. Para fazer a atualização para a versão mais recente, execute az upgrade.
Examinar 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"
}
},
"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"
}
},
"hostPrivateIpAddress": {
"type": "string"
},
"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"
}
},
"managementPrivateIpAddress": {
"type": "string"
}
},
"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('hostPrivateIpAddress')]"
}
]
},
"managementNetworkProfile": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('managementVnetName'), parameters('managementHsmSubnetName'))]"
},
"NetworkInterfaces": [{
"privateIpaddress": "[parameters('managementPrivateIpAddress')]"
}
]
},
"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"
}
}
]
}
O recurso do Azure definido neste modelo é:
- Microsoft.HardwareSecurityModules.dedicatedHSMs: crie um HSM de pagamento do Azure.
O arquivo 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": "hsmHostVnet"
},
"vnetAddressPrefix": {
"value": "10.0.0.0/16"
},
"hsmSubnetName": {
"value": "hostSubnet"
},
"hsmSubnetPrefix": {
"value": "10.0.0.0/24"
},
"hostPrivateIpAddress": {
"value": "10.0.0.5"
},
"managementVnetName": {
"value": "hsmMgmtVNet"
},
"managementVnetAddressPrefix": {
"value": "10.1.0.0/16"
},
"managementHsmSubnetName": {
"value": "mgmtSubnet"
},
"managementHsmSubnetPrefix": {
"value": "10.1.0.0/24"
},
"managementPrivateIpAddress": {
"value": "10.1.0.6"
}
}
}
Implantar o modelo
Neste exemplo, você usará a CLI do Azure para implantar um modelo do ARM a fim de 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 se encontra na seção Examinar o modelo.
Observação
As etapas a seguir pressupõem que o arquivo "azuredeploy.json" e "azuredeploy.parameters.json" estejam no diretório do qual você está executando os comandos. Se os arquivos estiverem em outro diretório, você deverá ajustar os caminhos de arquivo adequadamente.
Em seguida, crie um grupo de recursos do Azure.
Um grupo de recursos é um contêiner lógico no qual os recursos do Azure são implantados e gerenciados. Use o comando az group create para criar um grupo de recursos chamado myResourceGroup na localização eastus.
az group create --name "myResourceGroup" --location "EastUS"
Por fim, use o comando az deployment group create da CLI do Azure para implantar o modelo do 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: mySubnet
- hsmSubnetPrefix: 10.0.0.0/24
- hostPrivateIpAddress: 10.0.0.5
- managementVnetName: MGMTVNet
- managementVnetAddressPrefix: 10.1.0.0/16
- managementHsmSubnetName: MGMTSubnet
- managementHsmSubnetPrefix: 10.1.0.0/24
- managementPrivateIpAddress: 10.1.0.6
Próximas etapas
Vá para o próximo artigo para saber como visualizar seu HSM de pagamento.
Mais recursos:
- Leia uma Visão geral do HSM de Pagamento
- Saiba como começar a usar o HSM de Pagamento do Azure
- Veja alguns cenários comuns de implantação
- Saiba mais sobre Certificação e conformidade
- Leia as perguntas frequentes