Tworzenie modułu HSM płatności z portem hosta i zarządzania w różnych sieciach wirtualnych przy użyciu szablonu usługi ARM
Moduł HSM płatności platformy Azure to usługa "BareMetal" dostarczana przy użyciu sprzętowych modułów zabezpieczeń (HSM) payShield 10K firmy Thales w celu zapewnienia operacji kluczy kryptograficznych na potrzeby transakcji płatności w czasie rzeczywistym w chmurze platformy Azure. Moduł HSM płatności platformy Azure został zaprojektowany specjalnie, aby pomóc dostawcy usług i indywidualnej instytucji finansowej przyspieszyć strategię transformacji cyfrowej systemu płatności i wdrożyć chmurę publiczną. Aby uzyskać więcej informacji, zobacz Moduł HSM płatności platformy Azure: omówienie.
W tym samouczku opisano sposób tworzenia modułu HSM płatności ze statycznymi podsieciami hosta i zarządzania w tej samej sieci wirtualnej przy użyciu szablonu usługi ARM. Zamiast tego możesz:
- Tworzenie modułu HSM płatności przy użyciu hosta i portu zarządzania w tej samej sieci wirtualnej przy użyciu interfejsu wiersza polecenia platformy Azure lub programu PowerShell
- Tworzenie modułu HSM płatności przy użyciu hosta i portu zarządzania w tej samej sieci wirtualnej przy użyciu szablonu usługi ARM
- Tworzenie modułu HSM płatności przy użyciu hosta i portu zarządzania w różnych sieciach wirtualnych przy użyciu interfejsu wiersza polecenia platformy Azure lub programu PowerShell
- Tworzenie zasobu HSM z hostem i portem zarządzania przy użyciu adresów IP w różnych sieciach wirtualnych przy użyciu szablonu usługi ARM
Szablon usługi Azure Resource Manager to plik JavaScript Object Notation (JSON), który definiuje infrastrukturę i konfigurację projektu. W szablonie używana jest składnia deklaratywna. Możesz opisać zamierzone wdrożenie bez konieczności pisania sekwencji poleceń programowania w celu utworzenia wdrożenia.
Wymagania wstępne
Ważne
Moduł HSM płatności platformy Azure to wyspecjalizowana usługa. Aby kwalifikować się do dołączania i korzystania z modułu HSM płatności platformy Azure, klienci muszą mieć przypisanego menedżera kont Microsoft i mieć architekta usług w chmurze (CSA).
Aby dowiedzieć się więcej o usłudze, uruchom proces kwalifikacji i przygotuj wymagania wstępne przed rozpoczęciem dołączania, poproś menedżera konta Microsoft i CSA o wysłanie żądania pocztą e-mail.
Należy zarejestrować dostawców zasobów "Microsoft.HardwareSecurityModules" i "Microsoft.Network", a także funkcje modułu HSM płatności platformy Azure. Kroki w tym celu znajdują się w temacie Rejestrowanie dostawcy zasobów modułu HSM usługi Azure Payment i funkcji dostawcy zasobów.
Aby szybko sprawdzić, czy dostawcy zasobów i funkcje są już zarejestrowane, użyj polecenia az provider show interfejsu wiersza polecenia platformy Azure. (Dane wyjściowe tego polecenia będą bardziej czytelne, jeśli zostaną wyświetlone w formacie tabeli).
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
Możesz kontynuować pracę z tym przewodnikiem Szybki start, jeśli wszystkie cztery z tych poleceń zwracają wartość "Zarejestrowano".
Wymagana jest subskrypcja platformy Azure. Jeśli go nie masz, możesz utworzyć bezpłatne konto .
Użyj środowiska powłoki Bash w usłudze Azure Cloud Shell. Aby uzyskać więcej informacji, zobacz Szybki start dotyczący powłoki Bash w usłudze Azure Cloud Shell.
Jeśli wolisz uruchamiać polecenia referencyjne interfejsu wiersza polecenia lokalnie, zainstaluj interfejs wiersza polecenia platformy Azure. Jeśli korzystasz z systemu Windows lub macOS, rozważ uruchomienie interfejsu wiersza polecenia platformy Azure w kontenerze Docker. Aby uzyskać więcej informacji, zobacz Jak uruchomić interfejs wiersza polecenia platformy Azure w kontenerze platformy Docker.
Jeśli korzystasz z instalacji lokalnej, zaloguj się do interfejsu wiersza polecenia platformy Azure za pomocą polecenia az login. Aby ukończyć proces uwierzytelniania, wykonaj kroki wyświetlane w terminalu. Aby uzyskać inne opcje logowania, zobacz Logowanie się przy użyciu interfejsu wiersza polecenia platformy Azure.
Po wyświetleniu monitu zainstaluj rozszerzenie interfejsu wiersza polecenia platformy Azure podczas pierwszego użycia. Aby uzyskać więcej informacji na temat rozszerzeń, zobacz Korzystanie z rozszerzeń w interfejsie wiersza polecenia platformy Azure.
Uruchom polecenie az version, aby znaleźć zainstalowane wersje i biblioteki zależne. Aby uaktualnić do najnowszej wersji, uruchom polecenie az upgrade.
Przegląd szablonu
Szablon używany w tym przewodniku Szybki start jest 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"
}
},
"host1PrivateIPAddress": {
"type": "string"
},
"host2PrivateIPAddress": {
"type": "string"
},
"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"
}
},
"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"
}
}
},
"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('host1PrivateIPAddress')]"
},
{
"privateIpAddress": "[parameters('host2PrivateIPAddress')]"
}
]
},
"managementNetworkProfile": {
"subnet": {
"id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('managementVnetName'), parameters('managementHsmSubnetName'))]"
}
},
"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"
}
}
]
}
Zasób platformy Azure zdefiniowany w szablonie to:
- Microsoft.HardwareSecurityModules.dedicatedHSMs: tworzenie modułu HSM płatności platformy Azure.
Odpowiedni plik azuredeploy.parameters.json to:
{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"resourceName": {
"value": "myPHSM"
},
"stampId": {
"value": "stamp1"
},
"skuName": {
"value": "payShield10K_LMK1_CPS60"
},
"vnetName": {
"value": "myVNet"
},
"vnetAddressPrefix": {
"value": "10.0.0.0/16"
},
"hsmSubnetName": {
"value": "mySubnet"
},
"hsmSubnetPrefix": {
"value": "10.0.0.0/24"
},
"host1PrivateIPAddress": {
"value": "10.0.0.5"
},
"host2PrivateIPAddress": {
"value": "10.0.0.6"
},
"managementVnetName": {
"value": "MGMTVNet"
},
"managementVnetAddressPrefix": {
"value": "10.1.0.0/16"
},
"managementHsmSubnetName": {
"value": "MGMTSubnet"
},
"managementHsmSubnetPrefix": {
"value": "10.1.0.0/24"
}
}
}
Wdrażanie szablonu
W tym przykładzie użyjesz interfejsu wiersza polecenia platformy Azure do wdrożenia szablonu usługi ARM w celu utworzenia modułu HSM płatności platformy Azure.
Najpierw zapisz lokalnie pliki "azuredeploy.json" i "azuredeploy.parameters.json" do użycia w następnym kroku. Zawartość tych plików można znaleźć w sekcji Przeglądanie szablonu .
Uwaga
W poniższych krokach przyjęto założenie, że plik "azuredeploy.json" i "azuredeploy.parameters.json" znajdują się w katalogu, w którym są uruchamiane polecenia. Jeśli pliki znajdują się w innym katalogu, należy odpowiednio dostosować ścieżki plików.
Następnie utwórz grupę zasobów platformy Azure.
Grupa zasobów to logiczny kontener przeznaczony do wdrażania zasobów platformy Azure i zarządzania nimi. Użyj polecenia az group create, aby utworzyć grupę zasobów o nazwie myResourceGroup w lokalizacji eastus.
az group create --name "myResourceGroup" --location "EastUS"
Na koniec użyj polecenia az deployment group create interfejsu wiersza polecenia platformy Azure, aby wdrożyć szablon usługi ARM.
az deployment group create --resource-group "MyResourceGroup" --name myPHSMDeployment --template-file "azuredeploy.json"
Po wyświetleniu monitu podaj następujące wartości dla parametrów:
- resourceName: myPaymentHSM
- vnetName: myVNet
- vnetAddressPrefix: 10.0.0.0/16
- hsmSubnetName: mySubnet
- hsmSubnetPrefix: 10.0.0.0/24
- managementVnetName: MGMTVNet
- managementVnetAddressPrefix: 10.1.0.0/16
- managementHsmSubnetName: MGMTSubnet
- managementHsmSubnetPrefix: 10.1.0.0/24
Następne kroki
Przejdź do następnego artykułu, aby dowiedzieć się, jak wyświetlić moduł HSM płatności.
Więcej zasobów:
- Przeczytaj omówienie modułu HSM płatności
- Dowiedz się, jak rozpocząć pracę z modułem HSM płatności platformy Azure
- Zobacz niektóre typowe scenariusze wdrażania
- Dowiedz się więcej o certyfikacji i zgodności
- Przeczytaj często zadawane pytania