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(키 로드 디바이스), 스마트 카드 및 관련 온보딩 자료가 포함됩니다. 온보딩 작업을 계속하기 전에 모든 패키지 콘텐츠의 수신을 확인합니다.
고객 조치
- 온보딩 환영 패키지 및 포함된 모든 자료의 수신을 확인합니다.
- SCA 애플리케이션, C3 KLD, 스마트 카드 및 지원 설명서의 배달을 확인합니다.
- 다음 온보딩 단계를 계속하기 전에 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)에 대한 네트워크 연결을 제공합니다.
고객 조치
- Azure 가상 네트워크 내에서 기존 Azure VM을 배포하거나 사용하여 Azure Payment HSM v2 환경에 액세스합니다.
- Utimaco SCA(Secure Configuration Assistant) 유틸리티, C3 KLD(키 로드 디바이스) 및 관리자 또는 백업 스마트 카드를 사용하여 HSM 관리 인터페이스에 연결합니다.
- SSH 포트 전달 또는 VPN과 같은 승인된 연결 방법을 통해 HSM 관리 포트에 대한 액세스를 설정합니다.
- HSM 관리 인터페이스에 대한 성공적인 연결을 확인하고 초기 HSM 관리 작업을 완료합니다.
- 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 VPN Gateway 만들기 및 관리
- Azure 지점 및 사이트 간의 VPN 연결 정보
- P2S 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