빠른 시작: Azure Payment HSM v2 만들기

Azure Payment HSM v2는 결제 처리, 자격 증명 발급, PIN 처리, 키 관리 및 인증 데이터 보호를 위해 고가용성 단일 테넌트 HSM(결제 하드웨어 보안 모듈) 서비스입니다. Azure Payment HSM v2는 서비스 공급자와 금융 기관이 결제 시스템을 현대화하고 퍼블릭 클라우드를 채택하는 데 도움이 됩니다. 자세한 내용은 Azure Payment HSM v2란?

이 빠른 시작에서는 프라이빗 가상 네트워크 내에서 Azure Payment HSM v2 클러스터를 온보딩하고 배포하는 방법을 설명합니다.

사전 요구 사항

환경 준비

  • Azure Cloud Shell 사용하거나 Azure PowerShell 설치합니다. 로컬에서 Azure PowerShell을 사용하는 경우 Azure에 로그인합니다.
  • OpenSSL을 설치하여 인증서를 만듭니다.
  • 리소스 그룹, 가상 네트워크, 프라이빗 엔드포인트, DNS(프라이빗 도메인 이름 시스템) 영역 및 결제 HSM v2 리소스를 만들 수 있는 권한이 있는 ID를 사용합니다. 또한 ID에는 Azure 구독 기능을 등록할 수 있는 권한이 필요합니다.
  • 미리 보기 중에는 미국 서부 또는 서유럽 지역에서만 Payment HSM v2를 배포합니다.

Azure 및 Utimaco 계정 설정

Azure Payment HSM v2를 온보딩하기 전에 조직에 활성 Azure 계정 및 구독과 등록된 Utimaco 지원 포털 계정이 있는지 확인합니다. 리소스를 프로비전하고, 소프트웨어 및 설명서에 액세스하고, 온보딩 지원을 받으려면 이러한 계정이 필요합니다.

Azure 계정

Azure Payment HSM v2를 온보딩하기 전에 활성 Azure 계정 및 Azure 구독이 있어야 합니다. Azure 계정이 없는 경우 시작하기 전에 체험 계정을 만듭니다.

Utimaco 계정

Azure Payment HSM v2 온보딩에는 프로비전하기 전에 활성 Utimaco 계정 및 자격이 필요합니다. 공개 미리 보기 중에 Microsoft 온보딩 요청을 승인한 후 Microsoft Utimaco Azure 팀과 연결합니다. 팀은 사용자와 직접 협력하여 온보딩을 완료합니다. 새 Utimaco 계정 요청은 처리하고 활성화하는 데 최대 48시간이 걸릴 수 있습니다. Utimaco 계정이 없는 경우 지침은 Utimaco 포털에서 계정 만들기 를 참조하세요.

온보딩 시작 패키지 받기 및 확인

Utimaco는 Azure Payment HSM v2 온보딩에 필요한 환영 패키지를 제공합니다. 패키지에는 SCA(Secure Configuration Assistant) 애플리케이션, C3 KLD(키 로드 디바이스), 스마트 카드 및 관련 온보딩 자료가 포함됩니다. 온보딩 작업을 계속하기 전에 모든 패키지 콘텐츠의 수신을 확인합니다.

고객 조치

  1. 온보딩 환영 패키지 및 포함된 모든 자료의 수신을 확인합니다.
  2. SCA 애플리케이션, C3 KLD, 스마트 카드 및 지원 설명서의 배달을 확인합니다.
  3. 다음 온보딩 단계를 계속하기 전에 Microsoft 및 Utimaco 모두에 패키지 영수증 승인을 보냅니다.

클라이언트 신뢰 설정

사용자 환경과 Azure Payment HSM v2 간에 상호 신뢰를 설정하려면 관리 인터페이스 및 애플리케이션 인터페이스에 대해 신뢰할 수 있는 CA(인증 기관) 인증서를 구성합니다. 클라이언트 인증에 이러한 인증서를 사용하고 Azure Payment HSM v2에 대한 안전하고 상호 인증된 연결을 설정합니다. 자체 서명된 루트 CA 인증서를 만들고 각 인증서가 NIST(National Institute of Standards and Technology) P-256 곡선에서 EC(타원 곡선) 공개 키를 사용하는지 확인합니다. 다음 예제를 사용하여 인증서를 생성합니다.

별도의 관리 및 애플리케이션 신뢰 앵커 및 서비스에서 자체 서명된 P-256 루트 CA만 지원하는 이유를 포함하여 이러한 인증서 뒤에 있는 신뢰 모델은 Azure Payment HSM v2에 대한 인증 및 액세스 제어를 참조하세요.

CA 인증 인증서 만들기

다음 OpenSSL 명령을 사용하여 타원 곡선 키 쌍을 생성하고 자체 서명된 CA 인증서를 만듭니다.

중요합니다

신뢰할 수 있는 각 발급자 인증서에 대해 자체 서명된 루트 CA 를 사용합니다. 인증서는 NIST P-256(prime256v1) 곡선에서 EC 공개 키를 사용해야 합니다. Azure Payment HSM v2는 다른 암호화 알고리즘 또는 키 형식을 사용하는 중간 CA 인증서 또는 인증서를 지원하지 않습니다.

  • 관리 포트의 신뢰할 CA는 certs-mgmt/에 들어갑니다.
  • 애플리케이션 포트 신뢰 CA는 certs/에 들어갑니다.

CA 키 및 자체 서명된 인증서 생성

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

AllowPrivateEndpoints 기능을 등록합니다.

Azure 결제 HSM v2에는 프라이빗 엔드포인트가 필요합니다. 공개 미리 보기 중에는 Azure 이 기능을 자동으로 등록하지 않습니다. 서비스를 배포하는 각 구독에서 Microsoft.Network 리소스 공급자에 대한 AllowPrivateEndpoints 기능을 등록합니다. 이 기능을 등록하지 않으면 이 빠른 시작의 뒷부분에 나오는 네트워킹 단계가 실패합니다.

중요합니다

Azure Payment HSM v2 팀은 Payment HSM v2 리소스를 등록합니다. 서비스를 배포하는 각 구독에서 AllowPrivateEndpoints 기능을 직접 등록합니다. 등록을 완료하는 데 몇 분 정도 걸릴 수 있습니다. 클라이언트 가상 네트워크 및 프라이빗 DNS 영역을 계속 만들기 전에 기능이 등록된 상태가 표시될 때까지 기다립니다.

구독 컨텍스트를 설정하고, 기능을 등록한 다음, 등록을 확인합니다.

# 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

Azure Payment HSM v2 배포

Payment HSM v2 인스턴스 만들기

다음 예제에서는 리소스 그룹 및 Payment HSM v2 인스턴스를 만듭니다. 포함하는 디렉터리에서 예제를 실행합니다.management-trusted-ca.pemapplication-trusted-ca.pem 구독 컨텍스트를 설정하고 환경과 일치하도록 위치, 리소스 이름 및 리소스 그룹 이름을 업데이트합니다.

중요합니다

고유한 HSM 이름을 선택합니다. 선택한 지역에 이미 있는 HSM 이름을 지정하면 배포가 실패합니다.

# 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

메모

관련 클라이언트 VM(가상 네트워크 및 가상 머신) 리소스와 별도의 리소스 그룹에 Payment HSM v2 리소스를 배포합니다. 별도의 리소스 그룹은 더 나은 관리 및 보안 격리를 제공합니다.

클라이언트 가상 네트워크 및 프라이빗 DNS 영역 만들기

HSM 리소스와 동일한 지역에 클라이언트 가상 네트워크 및 VM을 배포합니다. 사용자 환경과 일치하도록 리소스 그룹 및 가상 네트워크 이름을 업데이트합니다. 다음 예제에서는 리소스 그룹, 별도의 관리 및 애플리케이션 서브넷이 있는 가상 네트워크 및 프라이빗 DNS 영역을 만듭니다. 그런 다음, 영역을 가상 네트워크에 연결하는 예제입니다.

$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

Azure Payment HSM v2에 대한 프라이빗 엔드포인트 만들기

Azure Payment HSM v2는 포트 7005 및 application 포트 2200의 두 개의 프라이빗 링크 그룹 ID management 를 노출합니다. 클라이언트 가상 네트워크 및 프라이빗 DNS 영역 만들기에서 해당 서브넷을 사용하여 각 그룹 ID에 대해 별도의 프라이빗 엔드포인트를 만듭니다. 전체 관리 및 결제 애플리케이션 액세스를 위한 두 엔드포인트를 모두 만듭니다. KLD(Utimaco Key Loading Device)와 같은 관리 액세스만 필요한 경우 관리 엔드포인트만 만듭니다.

먼저 두 프라이빗 엔드포인트를 모두 만듭니다.

# 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

그런 다음 두 엔드포인트를 프라이빗 DNS 영역에 연결하여 해당 호스트 이름이 가상 네트워크에서 확인되도록 합니다.

$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

팁 (조언)

프라이빗 엔드포인트는 가상 네트워크를 Azure Private Link 통해 Azure Payment HSM v2에 연결합니다. 가상 네트워크와 서비스 간의 트래픽은 Microsoft 네트워크에 유지됩니다. 이 프라이빗 연결은 Azure Payment HSM v2에 대한 네트워크 보안에 설명된 대로 공용 인터넷에 대한 노출을 줄입니다.

Azure Payment HSM v2에 연결

Payment HSM v2 인스턴스를 프로비전하고 프라이빗 엔드포인트를 설정한 후 Azure Payment HSM v2 클러스터의 관리 및 애플리케이션 인터페이스에 대한 연결을 설정합니다. Azure Private Link 가상 네트워크에서 연결을 제공합니다. Utimaco KLD(키 로드 디바이스)를 비롯한 온-프레미스 네트워크에서 연결하려면 사이트 간 VPN(가상 사설망) 또는 승인된 다른 하이브리드 연결을 사용합니다. 개별 워크스테이션은 Azure VM을 통해 전달되는 지점 및 사이트 간의 VPN 또는 SSH(Secure Shell) 포트를 사용할 수 있습니다.

Utimaco 포털의 LS2 운영 지침에 대한 APM 문서에서는 자세한 설치, 구성, 유효성 검사 및 문제 해결 절차를 제공합니다. 문서에 액세스하려면 활성 Utimaco 포털 계정 및 등록이 필요합니다.

중요합니다

Azure 가상 네트워크 외부에서 관리 인터페이스에 연결하려면 승인된 VPN 또는 SSH 터널을 통해 연결합니다. 권한 있는 관리 워크스테이션 및 결제 애플리케이션에서 관리 포트(7005) 및 애플리케이션 포트(2200)에 대한 네트워크 연결을 제공합니다.

고객 조치

  1. Azure 가상 네트워크 내에서 기존 Azure VM을 배포하거나 사용하여 Azure Payment HSM v2 환경에 액세스합니다.
  2. Utimaco SCA(Secure Configuration Assistant) 유틸리티, C3 KLD(키 로드 디바이스) 및 관리자 또는 백업 스마트 카드를 사용하여 HSM 관리 인터페이스에 연결합니다.
  3. SSH 포트 전달 또는 VPN과 같은 승인된 연결 방법을 통해 HSM 관리 포트에 대한 액세스를 설정합니다.
  4. HSM 관리 인터페이스에 대한 성공적인 연결을 확인하고 초기 HSM 관리 작업을 완료합니다.
  5. HSM 애플리케이션 인터페이스에 연결하고 기존 결제 애플리케이션 및 테스트 트랜잭션을 사용하여 애플리케이션 연결을 확인합니다.

관리 포트 및 애플리케이션 포트 정보

관리 포트: 7005 - 관리 및 관리 작업.

  • mgmt<node-number>.<pool-name>-<unique-string>.privatelink.phsm.azure.net, 여기서 <node-number>는 1, 2 또는 3입니다

애플리케이션 포트: 2200 - Atalla 명령 및 암호화 작업에 대한 결제 애플리케이션 데이터 평면입니다.

  • app<node-number>.<pool-name>-<unique-string>.privatelink.phsm.azure.net, 여기서 <node-number>는 1, 2 또는 3입니다

Azure 가상 네트워크 내에 Azure 가상 머신 배포

빠른 시작 사용: Azure 포털에서 Linux VM을 만들어 Ubuntu Server 22.04 LTS를 실행하는 Azure VM을 배포합니다. 네트워크 구성 중에 이전에 만든 클라이언트 가상 네트워크 및 관리 서브넷을 선택합니다.

Payment HSM v2에 연결하도록 VPN 또는 SSH 포트 전달 구성

다음 승인된 방법 중 하나를 사용하여 Azure Payment HSM v2 관리 인터페이스에 연결합니다.

관리 엔드포인트를 호스팅하는 Azure 가상 네트워크에 연결된 사이트 간 VPN:

관리 엔드포인트를 호스팅하는 Azure 가상 네트워크에 연결된 지점 및 사이트 간 VPN:

Azure 가상 네트워크 내에 배포된 Azure VM(점프 상자)을 통해 SSH 로컬 포트 전달:

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

다음은 그 예입니다.

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