مشاركة عبر


إنشاء HSM دفع مع المضيف ومنفذ الإدارة مع عناوين IP في شبكات ظاهرية مختلفة باستخدام قالب ARM

Azure Payment HSM هي خدمة "BareMetal" يتم تسليمها باستخدام وحدات أمان أجهزة الدفع Thales payShield 10K (HSM) لتوفير عمليات مفتاح التشفير لمعاملات الدفع الهامة في الوقت الفعلي في سحابة Azure. تم تصميم Azure Payment HSM خصيصا لمساعدة موفر الخدمة ومؤسسة مالية فردية على تسريع استراتيجية التحول الرقمي لنظام الدفع الخاصة بهم واعتماد السحابة العامة. لمزيد من المعلومات، راجع Azure Payment HSM: نظرة عامة.

يصف هذا البرنامج التعليمي كيفية استخدام قالب Azure Resource Manager (قالب ARM) لإنشاء Azure Payment HSM مع منفذ المضيف والإدارة مع عناوين IP في شبكات ظاهرية مختلفة. يمكنك بدلا من ذلك:

قالب Azure Resource Manager هو ملف JavaScript Object Notation (JSON) الذي يحدد البنية الأساسية والتكوين لمشروعك. يستخدم القالب عبارات توضيحية. يمكنك وصف النشر المقصود دون كتابة تسلسل أوامر البرمجة لإنشاء النشر.

المتطلبات الأساسية

هام

Azure Payment HSM هي خدمة متخصصة. للتأهل لإلحاق Azure Payment HSM واستخدامه، يجب أن يكون لدى العملاء مدير حساب Microsoft معين وأن يكون لديهم مهندس خدمة سحابية (CSA).

للاستفسار عن الخدمة، ابدأ عملية التأهيل، وإعداد المتطلبات الأساسية قبل الالتحاق، اطلب من مدير حساب Microsoft وCSA إرسال طلب عبر البريد الإلكتروني.

  • يجب عليك تسجيل موفري الموارد "Microsoft.HardwareSecurityModules" و"Microsoft.Network"، بالإضافة إلى ميزات Azure Payment HSM. توجد خطوات القيام بذلك في تسجيل موفر موارد Azure Payment HSM وميزات موفر الموارد.

    للتأكد بسرعة مما إذا كان موفرو الموارد والميزات مسجلين بالفعل، استخدم الأمر Azure CLI az provider show . (ستجد إخراج هذا الأمر أكثر قابلية للقراءة إذا قمت بعرضه بتنسيق الجدول.)

    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
    

    يمكنك متابعة هذه البداية السريعة إذا كانت جميع هذه الأوامر الأربعة ترجع "مسجل".

  • لديك اشتراك Azure. يمكن create a free account في حال عدم امتلاك اشتراك.

مراجعة القالب

القالب المستخدم في هذا التشغيل السريع 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"
      }
    },
    "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"
      }
    },
    "hostPrivateIpAddress": {
      "type": "string"
    },
    "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"
      }
    },
    "managementPrivateIpAddress": {
      "type": "string"
    }
  },
  "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('hostPrivateIpAddress')]"
            }
          ]
        },
        "managementNetworkProfile": {
          "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('managementVnetName'), parameters('managementHsmSubnetName'))]"
          },
          "NetworkInterfaces": [{
              "privateIpaddress": "[parameters('managementPrivateIpAddress')]"
            }
          ]
        },
        "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"
      }
    }
  ]
}

مورد Azure المحدد في القالب هو:

  • Microsoft.HardwareSecurityModules.dedicatedHSMs: إنشاء Azure payment HSM.

ملف azuredeploy.parameters.json المقابل هو:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "resourceName": {
      "value": "myhsm1"
    },
    "stampId": {
      "value": "stamp1"
    },
    "skuName": {
      "value": "payShield10K_LMK1_CPS60"
    },
    "vnetName": {
      "value": "hsmHostVnet"
    },
    "vnetAddressPrefix": {
      "value": "10.0.0.0/16"
    },
    "hsmSubnetName": {
      "value": "hostSubnet"
    },
    "hsmSubnetPrefix": {
      "value": "10.0.0.0/24"
    },    
    "hostPrivateIpAddress": {
      "value": "10.0.0.5"
    },
    "managementVnetName": {
      "value": "hsmMgmtVNet"
    },
    "managementVnetAddressPrefix": {
      "value": "10.1.0.0/16"
    },
    "managementHsmSubnetName": {
      "value": "mgmtSubnet"
    },
    "managementHsmSubnetPrefix": {
      "value": "10.1.0.0/24"
    },    
    "managementPrivateIpAddress": {
      "value": "10.1.0.6"
    }
  }
}

نشر القالب

في هذا المثال، ستستخدم Azure CLI لنشر قالب ARM لإنشاء Azure payment HSM.

أولا، احفظ ملفات "azuredeploy.json" و"azuredeploy.parameters.json" محليا، لاستخدامها في الخطوة التالية. يمكن العثور على محتويات هذه الملفات في قسم مراجعة القالب .

إشعار

تفترض الخطوات أدناه أن ملف "azuredeploy.json" و"azuredeploy.parameters.json" موجودان في الدليل الذي تقوم بتشغيل الأوامر منه. إذا كانت الملفات موجودة في دليل آخر، يجب ضبط مسارات الملفات وفقا لذلك.

بعد ذلك، قم بإنشاء مجموعة موارد Azure.

وتُعد مجموعة الموارد عبارة عن حاوية منطقية يتم فيها توزيع موارد Azure وإدارتها. استخدم الأمر إنشاء مجموعة az لإنشاء مجموعة موارد باسم myResourceGroup في موقع eastus.

az group create --name "myResourceGroup" --location "EastUS"

وأخيرا، استخدم الأمر Azure CLI az deployment group create لنشر قالب ARM الخاص بك.

az deployment group create --resource-group "MyResourceGroup" --name myPHSMDeployment --template-file "azuredeploy.json"

عند المطالبة، قم بتوفير القيم التالية للمعلمات:

  • resourceName: myPaymentHSM
  • vnetName: myVNet
  • vnetAddressPrefix: 10.0.0.0/16
  • hsmSubnetName: mySubnet
  • hsmSubnetPrefix: 10.0.0.0/24
  • hostPrivateIpAddress: 10.0.0.5
  • managementVnetName: MGMTVNet
  • managementVnetAddressPrefix: 10.1.0.0/16
  • managementHsmSubnetName: MGMTSubnet
  • managementHsmSubnetPrefix: 10.1.0.0/24
  • managementPrivateIpAddress: 10.1.0.6

الخطوات التالية

تقدم إلى المقالة التالية لمعرفة كيفية عرض الدفع HSM.

المزيد من الموارد: