Share via


クイックスタート: ARM テンプレートを使って Azure 決済用 HSM を作成する

Azure Payment HSM は、Thales payShield 10K 支払いハードウェア セキュリティ モジュール (HSM) を使って提供される「ベアメタル」サービスであり、Azure クラウドでのリアルタイムの重要な支払いトランザクションに暗号化キー操作を提供します。 Azure Payment HSM は、サービス プロバイダーと個々の金融機関が、支払いシステムのデジタル トランスフォーメーション戦略を促進し、パブリック クラウドを採用するのに特に役立つように設計されています。 詳細については、Azure Payment HSM の概要に関する記事を参照してください。

このクイックスタートでは、同じ仮想ネットワーク内のホストと管理ポートで決済用 HSM を作成する方法について説明します。 代わりに、以下を行うことができます。

Azure Resource Manager テンプレートは JavaScript Object Notation (JSON) ファイルであり、プロジェクトのインフラストラクチャと構成が定義されています。 このテンプレートでは、宣言型の構文が使用されています。 デプロイしようとしているものを、デプロイを作成する一連のプログラミング コマンドを記述しなくても記述できます。

前提条件

重要

Azure Payment HSM は、専門化されたサービスです。 Azure Payment HSM のオンボードと使用の資格を得るには、顧客に Microsoft アカウント マネージャーが割り当てられ、CSA を持ち、年間で確約された Azure 収益全体で 500 万 ($5M) 米国ドル以上の年額要件を満たしている必要があります。

サービスについての問い合わせ、認定プロセスの開始、オンボード前に前提条件の準備を行うには、Microsoft アカウント マネージャーと CSA にメールで要求を送信するように依頼してください。

  • "Microsoft.HardwareSecurityModules" と "Microsoft.Network" リソース プロバイダー、および Azure Payment HSM 機能を登録する必要があります。 これを行う手順については、「Azure Payment HSM リソース プロバイダーとリソース プロバイダーの機能を登録する」を参照してください。

    警告

    すべてのサブスクリプション ID に "FastPathEnabled" 機能フラグを適用し、すべての仮想ネットワークに "fastpathenabled" タグを追加する必要があります。 詳細については、Fastpathenabled に関するページを参照してください。

    リソース プロバイダーと機能が既に登録されているかどうかを迅速に確認するには、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
    

    これらの 4 つのコマンドすべてが "Registered" を返す場合は、このクイック スタートを続行できます。

  • Azure サブスクリプションが必要です。 アカウントがない場合は、無料アカウントを作成することができます。

  • Azure Cloud Shell で Bash 環境を使用します。 詳細については、「Azure Cloud Shell の Bash のクイックスタート」を参照してください。

  • CLI リファレンス コマンドをローカルで実行する場合、Azure CLI をインストールします。 Windows または macOS で実行している場合は、Docker コンテナーで Azure CLI を実行することを検討してください。 詳細については、「Docker コンテナーで Azure CLI を実行する方法」を参照してください。

    • ローカル インストールを使用する場合は、az login コマンドを使用して Azure CLI にサインインします。 認証プロセスを完了するには、ターミナルに表示される手順に従います。 その他のサインイン オプションについては、Azure CLI でのサインインに関するページを参照してください。

    • 初回使用時にインストールを求められたら、Azure CLI 拡張機能をインストールします。 拡張機能の詳細については、Azure CLI で拡張機能を使用する方法に関するページを参照してください。

    • az version を実行し、インストールされているバージョンおよび依存ライブラリを検索します。 最新バージョンにアップグレードするには、az upgrade を実行します。

テンプレートを確認する

このクイックスタートで使用されるテンプレートは 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"
      }
    },
    "location": {
      "type": "string",
      "defaultValue": "[resourceGroup().location]",
      "metadata": {
        "description": "Location for all resources."
      }
    },
    "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": "Virtual network name"
      }
    },
    "vnetAddressPrefix": {
      "type": "string",
      "metadata": {
        "description": "Virtual network address prefix"
      }
    },
    "hsmSubnetName": {
      "type": "String",
      "metadata": {
        "description": "Subnet name"
      }
    },
    "hsmSubnetPrefix": {
      "type": "string",
      "metadata": {
        "description": "Subnet prefix"
      }
    }
  },
  "variables": {},
  "resources": [
   {
     "type": "Microsoft.HardwareSecurityModules/dedicatedHSMs",
     "apiVersion": "2021-11-30",
     "name": "[parameters('resourceName')]",
	   "location": "[parameters('location')]",
     "dependsOn": [
      "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
     ],
     "sku": {
       "name": "[parameters('skuName')]"
     },
     "properties": {
       "networkProfile": {
         "subnet": {
           "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
         }
        },
		"managementNetworkProfile": {
          "subnet": {
            "id": "[resourceId('Microsoft.Network/virtualNetworks/subnets', parameters('vnetName'), parameters('hsmSubnetName'))]"
          }
        },
        "stampId": "[parameters('stampId')]"
     }
   },
    {
      "type": "Microsoft.Network/virtualNetworks",
      "apiVersion": "2020-11-01",
      "name": "[parameters('vnetName')]",
      "location": "[parameters('location')]",
      "tags": {
        "fastpathenabled": "true"
      },
      "properties": {
        "addressSpace": {
          "addressPrefixes": [
            "[parameters('vnetAddressPrefix')]"
          ]
        },
        "subnets": [
          {
            "name": "[parameters('hsmSubnetName')]",
            "properties": {
              "addressPrefix": "[parameters('hsmSubnetPrefix')]",
              "delegations": [
                {
                  "name": "Microsoft.HardwareSecurityModules.dedicatedHSMs",
                  "properties": {
                    "serviceName": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
                  }
                }
              ],
              "privateEndpointNetworkPolicies": "Enabled",
              "privateLinkServiceNetworkPolicies": "Enabled"
            }
          }
        ],
        "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')]",
        "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": "myHsmVnet"
    },
    "vnetAddressPrefix": {
      "value": "10.0.0.0/16"
    },
    "hsmSubnetName": {
      "value": "myHsmSubnet"
    },
    "hsmSubnetPrefix": {
      "value": "10.0.0.0/24"
    }
  }
}

テンプレートのデプロイ

この例では、Azure CLI を使って ARM テンプレートをデプロイし、Azure 決済用 HSM を作成します。

まず、次の手順で使用するために、"azuredeploy.json" ファイルと "azuredeploy.parameters.json" ファイルをローカルに保存します。 これらのファイルの内容については、「テンプレートを確認する」セクションを参照してください。

Note

以下の手順では、コマンドを実行しているディレクトリに "azuredeploy.json" ファイルと "azuredeploy.parameters.json" ファイルがあることを前提としています。 ファイルが別のディレクトリにある場合は、それに応じてファイル パスを調整する必要があります。

次に、Azure リソース グループを作成します。

リソース グループとは、Azure リソースのデプロイと管理に使用する論理コンテナーです。 az group create コマンドを使用して、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

デプロイの検証

Azure CLI の az dedicated-hsm list コマンドを使って、決済用 HSM が作成されたことを確認できます。 結果を表として書式設定すると、出力が読みやすくなります。

az dedicated-hsm list -o table

新しく作成した決済用 HSM の名前が表示されます。

リソースをクリーンアップする

このコレクションの他のクイックスタートとチュートリアルは、このクイックスタートに基づいています。 後続のクイック スタートおよびチュートリアルを引き続き実行する場合は、これらのリソースをそのまま残しておくことをお勧めします。

必要がなくなったら、Azure CLI の az group delete コマンドを使用して、リソース グループおよびすべての関連リソースを削除できます。

az group delete --name "myResourceGroup"

次のステップ

このクイックスタートでは、Azure Resource Manager テンプレートをデプロイして決済用 HSM を作成し、デプロイを確認し、決済用 HSM を削除しました。 Azure Payment HSM の詳細と、アプリケーションとの統合方法については、引き続き以下の記事を参照してください。