Azure Payment HSM v2 是一款高度可得的單租戶支付硬體安全模組(HSM)服務,用於支付處理、憑證核發、PIN 碼處理、金鑰管理及認證資料保護。 Azure Payment HSM v2 協助服務提供商與金融機構現代化其支付系統並採用公有雲。 欲了解更多資訊,請參閱《什麼是 Azure Payment HSM v2?》
這份快速入門說明如何在您的私人虛擬網路中導入並部署 Azure Payment HSM v2 叢集。
先決條件
準備您的作業環境
- 用 Azure Cloud Shell 或安裝 Azure PowerShell。 如果你本地使用 Azure PowerShell,請登入 Azure。
- 安裝 OpenSSL 來建立憑證。
- 使用具有建立資源群組、虛擬網路、私人端點、私人網域名稱系統 (DNS) 區域及 Payment HSM v2 資源權限的身分。 該身份也需要註冊 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)應用程式、C3 金鑰載入裝置(KLD)、智慧卡及相關入門資料。 在繼續入職活動前,請確認所有包裹內容物的收到。
顧客行動
- 確認收到入職歡迎包及所有附帶資料。
- 確認SCA申請、C3 KLD、智慧卡及相關文件的送達情況。
- 在進入下一個入職步驟前,請同時向 Microsoft 和 Utimaco 寄送包裹收據確認。
建立客戶信任
為了在您的環境與 Azure Payment HSM v2 之間建立互信,請為管理介面與應用介面設定可信憑證(CA)憑證。 使用這些憑證進行客戶端認證,並建立安全且相互驗證的 Azure Payment HSM v2 連線。 建立自我簽署的根 CA 憑證,並確認每張憑證都使用美國國家標準與技術研究院(NIST)P-256 曲線上的橢圓曲線(EC)公開金鑰。 請使用以下範例來產生憑證。
關於這些憑證背後的信任模型,包括獨立的管理與應用程式信任錨點,以及為何服務僅支援自簽的 P-256 根憑證卡,請參見 Azure Payment HSM v2 的認證與存取控制。
建立 CA 認證憑證
使用以下 OpenSSL 指令產生橢圓曲線金鑰對並建立自簽 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 Payment 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
Deploy Azure Payment HSM v2
建立一個支付 HSM v2 實例
以下範例建立資源群組及 Payment HSM v2 實例。 從包含 management-trusted-ca.pem 和 application-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
Note
將您的 Payment HSM v2 資源部署在與相關客戶虛擬網路及虛擬機(VM)資源分開的資源群組中。 獨立的資源群組提供更好的管理與安全隔離。
建立客戶端虛擬網路與私人 DNS 區域
將你的客戶端虛擬網路和虛擬機部署在與 HSM 資源相同的區域。 更新資源群組和虛擬網路名稱以符合你的環境。 以下範例建立資源群組、擁有獨立 管理 與 應用 子網的虛擬網路,以及私人 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 公開兩個私人連結群組 ID:management 使用 7005 埠,application 使用 2200 埠。 透過 「建立客戶端虛擬網路和私人 DNS 區域」中的對應子網路,為每個群組 ID 建立獨立的私人端點。 建立兩個端點以提供完整的管理及支付應用存取。 若僅需管理權限,例如Utimaco金鑰載入裝置(KLD),則僅建立管理端點。
首先,建立兩個私有端點:
# 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 虛擬機使用點對站 VPN 或安全殼(SSH)埠轉發。
Utimaco 入口網站中的 LS2 APM 操作說明 文件提供詳細的安裝、設定、驗證及故障排除程序。 存取該文件需啟用 Utimaco 入口網站帳號並註冊。
這很重要
若要從 Azure 虛擬網路外部進入管理介面,請透過核准的 VPN 或 SSH 隧道連線。 提供來自授權管理工作站及支付應用程式到管理埠(7005)及應用程式埠(2200)的網路連線。
顧客行動
- 在 Azure 虛擬網路中部署或使用現有的 Azure 虛擬機,以存取 Azure Payment HSM v2 環境。
- 可透過 Utimaco 安全配置助理(SCA)工具、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 虛擬機,部署執行 Ubuntu Server 22.04 LTS 的 Azure 虛擬機。 在網路設定時,選擇你之前建立的客戶端虛擬網路和管理子網。
設定 VPN 或 SSH 埠轉發以連接你的 Payment HSM v2
請使用以下核准方法之一連接您的 Azure Payment HSM v2 管理介面。
站對站 VPN連線至裝載管理端點的 Azure 虛擬網路:
連線到裝載管理端點之 Azure 虛擬網路的點對站 VPN:
透過部署在您的 Azure 虛擬網路中的 Azure 虛擬機(跳板盒)進行 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