Início rápido: Criar um Azure Payment HSM v2

O Azure Payment HSM v2 é um serviço de módulo de segurança de hardware de pagamento (HSM) altamente disponível e de inquilino único para processamento de pagamentos, emissão de credenciais, processamento de PIN, gestão de chaves e proteção de dados de autenticação. O Azure Payment HSM v2 ajuda os fornecedores de serviços e instituições financeiras a modernizar os seus sistemas de pagamento e a adotar a nuvem pública. Para mais informações, veja O que é o Azure Payment HSM v2?

Este quickstart descreve como integrar e implementar um cluster Azure Payment HSM v2 dentro da sua rede virtual privada.

Pré-requisitos

Prepare seu ambiente

  • Use Azure Cloud Shell ou instale Azure PowerShell. Se usares Azure PowerShell localmente, inicia sessão no Azure.
  • Instale o OpenSSL para criar o certificado.
  • Use uma identidade que tenha permissão para criar grupos de recursos, redes virtuais, endpoints privados, zonas privadas do Sistema de Nomes de Domínio (DNS) e recursos HSM v2 de pagamento. A identidade também precisa de permissão para registar funcionalidades de subscrição do Azure.
  • Durante a pré-visualização, implemente o Payment HSM v2 apenas na região dos EUA Ocidental ou Europa Ocidental.

Estabelecer contas Azure e Utimaco

Antes de integrar o Azure Payment HSM v2, confirme que a sua organização tem uma conta e subscrição Azure ativas, bem como uma conta registada no Portal de Suporte Utimaco. Precisa destas contas para fornecer recursos, aceder a software e documentação, e receber apoio de integração.

Conta do Azure

Deve ter uma conta Azure ativa e uma subscrição Azure antes de integrar o Azure Payment HSM v2. Se não tiver uma conta no Azure, crie uma conta gratuita antes de começar.

Conta Utimaco

A integração do Azure Payment HSM v2 requer uma conta Utimaco ativa e direitos antes do provisionamento. Durante a pré-visualização pública, após a Microsoft aprovar o seu pedido de integração, a Microsoft liga-o à equipa do Utimaco Azure. A equipa trabalha diretamente consigo para concluir a integração. Novos pedidos de conta Utimaco podem demorar até 48 horas a ser processados e ativados. Se não tem uma conta Utimaco, consulte Criar uma conta no portal Utimaco para instruções.

Receba e verifique o pacote de boas-vindas de integração

A Utimaco fornece o pacote de boas-vindas necessário para a integração do Azure Payment HSM v2. O pacote inclui a aplicação Secure Configuration Assistant (SCA), o Dispositivo de Carregamento de Chaves C3 (KLD), cartões inteligentes e materiais de integração relacionados. Verifique a receção de todo o conteúdo da encomenda antes de continuar com as atividades de integração.

Ações do cliente

  1. Confirme a receção do pacote de boas-vindas de integração e de todos os materiais incluídos.
  2. Verifique a entrega da aplicação SCA, do KLD C3, dos cartões inteligentes e da documentação de apoio.
  3. Envie o recibo da encomenda tanto à Microsoft como à Utimaco antes de continuar para a próxima etapa de integração.

Estabelecer a confiança do cliente

Para estabelecer confiança mútua entre o seu ambiente e o Azure Payment HSM v2, configure um certificado de autoridade certificadora (CA) de confiança para a interface de gestão e para a interface da aplicação. Use estes certificados para autenticação do cliente e para estabelecer conectividade segura e mutuamente autenticada ao Azure Payment HSM v2. Crie certificados de CA raiz auto-assinados e confirme que cada certificado utiliza uma chave pública de curva elíptica (EC) na curva P-256 do National Institute of Standards and Technology (NIST). Use o seguinte exemplo para gerar certificados.

Para o modelo de confiança por detrás destes certificados, incluindo as âncoras de gestão e confiança de aplicação separadas, e porque o serviço suporta apenas CAs raiz P-256 auto-assinadas, veja Autenticação e controlo de acesso para Azure Payment HSM v2.

Criar certificados de autenticação da CA

Gerar pares de chaves de curva elíptica e criar certificados de CA auto-assinados usando os seguintes comandos OpenSSL.

Importante

Use uma CA raiz auto-assinada para cada certificado emissor de confiança. O certificado deve usar uma chave pública EC na curva NIST P-256 (prime256v1). O Azure Payment HSM v2 não suporta certificados de CA intermédios nem certificados que utilizem outros algoritmos criptográficos ou tipos de chaves.

  • As ACs fidedignas da porta de gestão ficam em certs-mgmt/.
  • As CAs de confiança da porta de aplicação ficam em certs/.

Gerar chaves CA e certificados auto-assinados

openssl ecparam -list_curves
openssl ecparam -genkey -name prime256v1 -out management-ca.key
openssl req -x509 -new -SHA384 -nodes -key management-ca.key -days 3650 -out management-trusted-ca.pem
openssl ecparam -genkey -name prime256v1 -out application-ca.key
openssl req -x509 -new -SHA384 -nodes -key application-ca.key -days 3650 -out application-trusted-ca.pem

Registe a funcionalidade AllowPrivateEndpoints

O Azure Payment HSM v2 requer um endpoint privado. Durante a pré-visualização pública, o Azure não regista automaticamente esta capacidade. Registe a funcionalidade AllowPrivateEndpoints para o fornecedor de recursos Microsoft.Network em cada subscrição onde implementar o serviço. Se não registares esta funcionalidade, os passos de rede mais tarde neste quickstart falham.

Importante

A equipa do Azure Payment HSM v2 regista o seu recurso Payment HSM v2. Registe você mesmo a funcionalidade AllowPrivateEndpoints em cada subscrição em que implementa o serviço. O registo pode demorar alguns minutos a concluir. Espere até que a funcionalidade mostre um estado Registado antes de continuar a criar uma rede virtual de cliente e uma zona DNS privada.

Define o contexto da subscrição, regista a funcionalidade e depois verifica o registo.

# Set your subscription context
Set-AzContext -Subscription "<subscription-id>"

# Register the AllowPrivateEndpoints feature
Register-AzProviderFeature -FeatureName "AllowPrivateEndpoints" -ProviderNamespace "Microsoft.Network"

# Verify the registration state (wait until it shows "Registered")
Get-AzProviderFeature -FeatureName "AllowPrivateEndpoints" -ProviderNamespace "Microsoft.Network" |
    Select-Object -ExpandProperty RegistrationState

Deploy Azure Payment HSM v2

Criar uma instância de HSM de pagamento v2

O exemplo seguinte cria um grupo de recursos e uma instância Payment HSM v2. Execute o exemplo a partir do diretório que contém management-trusted-ca.pem e application-trusted-ca.pem. Define o contexto da subscrição e atualiza a localização, o nome do recurso e o nome do grupo de recursos para corresponderem ao teu ambiente.

Importante

Escolha um nome HSM único. Se especificar um nome HSM que já existe na região escolhida, a sua implementação falha.

# Convert the PEM certificates to the Base64-encoded values required by the resource provider
$managementCertificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromPem(
    (Get-Content -Raw "management-trusted-ca.pem")
)
$managementTrustedIssuer = [Convert]::ToBase64String($managementCertificate.RawData)

$applicationCertificate = [System.Security.Cryptography.X509Certificates.X509Certificate2]::CreateFromPem(
    (Get-Content -Raw "application-trusted-ca.pem")
)
$applicationTrustedIssuer = [Convert]::ToBase64String($applicationCertificate.RawData)

# Define variables for your Payment HSM v2 deployment
$server = @{
    Location = "<region-name>"
    Sku = @{ Family = "B"; Name = "Payments_v2" }
    ResourceName = "<hsm-name>"
    ResourceType = "Microsoft.HardwareSecurityModules/paymentHsmClusters"
    ResourceGroupName = "<hsm-resource-group-name>"
    ApiVersion = "2025-12-01-preview"
    Properties = @{
        autoGeneratedDomainNameLabelScope = "TenantReuse"
        applicationTrustedIssuer          = $applicationTrustedIssuer
        managementTrustedIssuer           = $managementTrustedIssuer
        publicNetworkAccess               = "Disabled"
    }
    Force = $true
}

# Create the HSM cluster resource group
New-AzResourceGroup -Name $server.ResourceGroupName -Location $server.Location -Force

# Create the HSM cluster and retain its resource ID for the private endpoints
$hsm = New-AzResource @server -Verbose

Note

Implemente os seus recursos Payment HSM v2 num grupo de recursos separado da rede virtual do cliente e dos recursos da máquina virtual (VM) relacionados. Grupos de recursos separados proporcionam melhor gestão e isolamento de segurança.

Crie uma rede virtual de cliente e uma zona DNS privada

Implemente a sua rede virtual e VM do cliente na mesma região do seu recurso HSM. Atualize os nomes do grupo de recursos e das redes virtuais para corresponderem ao seu ambiente. O exemplo seguinte cria um grupo de recursos, uma rede virtual com sub-redes separadas de gestão e aplicação , e uma zona DNS privada. O exemplo liga então a zona à rede virtual.

$client = @{
    Location              = $server.Location
    ResourceGroupName     = "<client-resource-group-name>"
    ZoneName              = "privatelink.phsm.azure.net"
    VirtualNetworkName    = "<virtual-network-name>"
    ManagementSubnetName  = "management"
    ApplicationSubnetName = "application"
}

# Create the client resource group
New-AzResourceGroup -Name $client.ResourceGroupName -Location $client.Location -Force

# Create the virtual network
$vnet = New-AzVirtualNetwork -Name $client.VirtualNetworkName -ResourceGroupName $client.ResourceGroupName -Location $client.Location -AddressPrefix "10.0.0.0/16"

# Add the management subnet
$vnet = Add-AzVirtualNetworkSubnetConfig -Name $client.ManagementSubnetName -VirtualNetwork $vnet -AddressPrefix "10.0.2.0/24"

# Add the application subnet
$vnet = Add-AzVirtualNetworkSubnetConfig -Name $client.ApplicationSubnetName -VirtualNetwork $vnet -AddressPrefix "10.0.3.0/24"

# Commit the subnet configuration
$vnet = Set-AzVirtualNetwork -VirtualNetwork $vnet

# Retrieve the created subnet objects for use when you create the private endpoints later in this quickstart
$vnet = Get-AzVirtualNetwork -Name $client.VirtualNetworkName -ResourceGroupName $client.ResourceGroupName
$managementSubnet = $vnet.Subnets | Where-Object Name -eq $client.ManagementSubnetName
$applicationSubnet = $vnet.Subnets | Where-Object Name -eq $client.ApplicationSubnetName

# Create the private DNS zone and link it to the virtual network
$zone = New-AzPrivateDnsZone -ResourceGroupName $client.ResourceGroupName -Name $client.ZoneName
New-AzPrivateDnsVirtualNetworkLink -ResourceGroupName $client.ResourceGroupName -ZoneName $client.ZoneName -Name "privateDnsLink" -VirtualNetworkId $vnet.Id -EnableRegistration:$false

Criar um endpoint privado para o Azure Payment HSM v2

O Azure Payment HSM v2 expõe dois IDs de grupo de ligação privada: management na porta 7005 e application na porta 2200. Crie um endpoint privado separado para cada ID de grupo usando a sub-rede correspondente de Criar uma rede virtual cliente e uma zona DNS privada. Crie os dois endpoints para acesso administrativo total e acesso à aplicação de pagamentos. Se precisar apenas de acesso administrativo, como no Utimaco Key Loading Device (KLD), crie apenas o endpoint de gestão.

Primeiro, crie ambos os endpoints privados:

# Management endpoint (port 7005) - also used by the Utimaco Key Loading Device (KLD)
$managementConnection = New-AzPrivateLinkServiceConnection `
    -Name "$($server.ResourceName)-management-connection" `
    -PrivateLinkServiceId $hsm.ResourceId `
    -GroupId "management"

$managementEndpoint = New-AzPrivateEndpoint `
    -Name "$($server.ResourceName)-management-pe" `
    -ResourceGroupName $client.ResourceGroupName `
    -Location $client.Location `
    -Subnet $managementSubnet `
    -PrivateLinkServiceConnection $managementConnection

# Application endpoint (port 2200) - payment application data plane
$applicationConnection = New-AzPrivateLinkServiceConnection `
    -Name "$($server.ResourceName)-application-connection" `
    -PrivateLinkServiceId $hsm.ResourceId `
    -GroupId "application"

$applicationEndpoint = New-AzPrivateEndpoint `
    -Name "$($server.ResourceName)-application-pe" `
    -ResourceGroupName $client.ResourceGroupName `
    -Location $client.Location `
    -Subnet $applicationSubnet `
    -PrivateLinkServiceConnection $applicationConnection

Depois, ligue ambos os pontos finais à zona DNS privada para que os nomes dos hosts sejam resolvidos a partir da sua rede virtual:

$zoneConfig = New-AzPrivateDnsZoneConfig `
    -Name "phsmv2-private-dns-config" `
    -PrivateDnsZoneId $zone.ResourceId

New-AzPrivateDnsZoneGroup `
    -ResourceGroupName $client.ResourceGroupName `
    -PrivateEndpointName $managementEndpoint.Name `
    -Name "management-phsmv2-private-dns-zone-group" `
    -PrivateDnsZoneConfig $zoneConfig

New-AzPrivateDnsZoneGroup `
    -ResourceGroupName $client.ResourceGroupName `
    -PrivateEndpointName $applicationEndpoint.Name `
    -Name "application-phsmv2-private-dns-zone-group" `
    -PrivateDnsZoneConfig $zoneConfig

Tip

Os endpoints privados ligam a sua rede virtual ao Azure Payment HSM v2 através do Azure Private Link. O tráfego entre a sua rede virtual e o serviço mantém-se na rede da Microsoft. Esta conectividade privada reduz a exposição à internet pública, conforme descrito em Network Security for Azure Payment HSM v2.

Ligue-se ao Azure Payment HSM v2

Depois de provisionar a sua instância Payment HSM v2 e estabelecer os endpoints privados, configure a conectividade tanto à interface de gestão como à da aplicação do cluster Azure Payment HSM v2. O Azure Private Link fornece conectividade a partir da rede virtual. Para se ligar a partir de uma rede local, incluindo o Utimaco Key Loading Device (KLD), utilize uma rede privada virtual site-to-site (VPN) ou outra ligação híbrida aprovada. As estações de trabalho individuais podem usar uma VPN ponto a site ou encaminhamento de portas por Secure Shell (SSH) através de uma VM do Azure.

O documento de Instruções Operacionais do APM no LS2 no portal Utimaco fornece procedimentos detalhados de instalação, configuração, validação e resolução de problemas. O acesso ao documento requer uma conta ativa no portal Utimaco e registo.

Importante

Para aceder à interface de gestão a partir de fora da rede virtual Azure, ligue-se através de um túnel VPN ou SSH aprovado. Fornecer conectividade de rede à porta de gestão (7005) e à porta de aplicação (2200) a partir de estações de trabalho de gestão autorizadas e aplicações de pagamento.

Ações do cliente

  1. Implemente ou use uma VM Azure existente dentro de uma rede virtual Azure para aceder ao ambiente Azure Payment HSM v2.
  2. Ligue-se à interface de gestão HSM utilizando a ferramenta Utimaco Secure Configuration Assistant (SCA), o Dispositivo de Carregamento de Chaves C3 (KLD) e cartões inteligentes de administrador ou backup.
  3. Estabelecer acesso à porta de gestão HSM através de um método de conectividade aprovado, como encaminhamento de portas SSH ou VPN.
  4. Verifique a conectividade bem-sucedida à interface de gestão do HSM e complete as tarefas iniciais de administração do HSM.
  5. Ligue-se à interface da aplicação HSM e verifique a conectividade da aplicação utilizando aplicações de pagamento existentes e teste transações.

Informação sobre portas de gestão e portas de aplicação

Porto de gestão: 7005 - Operações administrativas e de gestão.

  • mgmt<node-number>.<pool-name>-<unique-string>.privatelink.phsm.azure.net, onde <node-number> é 1, 2, ou 3

Porta de aplicação: 2200 - Plano de dados de aplicação de pagamento para comandos Atalla e operações criptográficas.

  • app<node-number>.<pool-name>-<unique-string>.privatelink.phsm.azure.net, onde <node-number> é 1, 2, ou 3

Implementar uma máquina virtual Azure dentro de uma rede virtual Azure

Use o Quickstart: Crie uma VM Linux no portal Azure para implementar uma VM Azure que corra o Ubuntu Server 22.04 LTS. Durante a configuração da rede, selecione a rede virtual do cliente e a sub-rede de gestão que criou anteriormente.

Configure o reencaminhamento de portas por VPN ou SSH para ligar ao seu Payment HSM v2

Ligue-se à sua interface de gestão do Azure Payment HSM v2 utilizando um dos seguintes métodos aprovados.

VPN site-to-site ligada à rede virtual Azure que aloja o endpoint de gestão:

VPN point-to-site ligada à rede virtual Azure que hospeda o endpoint de gestão:

Encaminhamento de portas local SSH através de uma VM Azure (jump box) implementada dentro da sua rede virtual Azure:

ssh -L "<local-port>:<payment-hsm-management-fqdn>:<management-port>" "<username>@<jump-box-fqdn>"

Por exemplo:

ssh -L 7005:mgmt1.contosophsmv2-e9gudbaag0bdhcbu.privatelink.phsm.azure.net:7005 azureuser@jumpbox.contoso.com