チュートリアル: PowerShell を使用して既存の仮想ネットワークに HSM をデプロイする

Azure Dedicated HSM サービスでは、完全な管理制御と完全な管理責任が備わった、お客様専用の物理デバイスが提供されます。 物理ハードウェアを提供するので、Microsoft は確実に容量が効果的に管理されるよう、これらのデバイスの割り当て方法を制御する必要があります。 そのため、通常、Azure サブスクリプションでのリソースのプロビジョニングには、Dedicated HSM サービスは可視化されません。 Dedicated HSM サービスへのアクセスを必要とする Azure のお客様は、まず、Microsoft アカウント担当者に連絡して Dedicated HSM サービスへの登録を申請する必要があります。 このプロセスが正常に完了した場合にのみ、プロビジョニングが可能になります。

このチュートリアルの目的は、次の場合の一般的なプロビジョニング プロセスを示すことです。

  • お客様の元に既に仮想ネットワークがある
  • 仮想マシンがある
  • その既存の環境に HSM リソースを追加する必要がある。

高可用性の複数リージョン デプロイの一般的なアーキテクチャは、次のようになります。

複数リージョンのデプロイを示す図。

このチュートリアルでは、既存の仮想ネットワーク (上の VNET 1 を参照) に対する、HSM のペアと必須の ExpressRoute ゲートウェイ (上の Subnet 1 を参照) の統合を中心に説明しています。 他のすべてのリソースは、標準の Azure リソースです。 同じ統合プロセスを、上の VNET 3 における Subnet 4 の HSM に使用できます。

注意

Azure を操作するには、Azure Az PowerShell モジュールを使用することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「AzureRM から Az への Azure PowerShell の移行」を参照してください。

前提条件

Azure Dedicated HSM は、現時点では Azure portal で使用できません。そのため、サービスに対するすべての操作は、コマンドラインまたは PowerShell を使用して行います。 このチュートリアルでは、Azure Cloud Shell で PowerShell を使用します。 PowerShell を使用するのが初めての場合は、こちらの Azure PowerShell の開始に関するページの開始手順に従ってください。

想定:

  • Microsoft アカウント マネージャーが割り当てられていて、Azure Dedicated HSM のオンボードと使用の資格を得るための年額要件、500 万 ($5M) USD 以上の Azure 確定総収益を満たしている。
  • Azure Dedicated HSM の登録プロセスを完了し、サービスの使用が承認されていること。 そうでない場合は、お客様の Microsoft アカウント担当者に詳細をお問い合わせください。
  • これらのリソースと、このチュートリアルでデプロイする新しいリソース用のリソース グループを作成済みであること。
  • 必要な仮想ネットワーク、サブネット、仮想マシンを作成済みで、そのデプロイに 2 つの HSM を統合しようとしているっこと。

次のすべての手順では、お客様が既に Azure portal に移動して Cloud Shell を開いている (ポータルの右上の ">_" を選択する) ことが想定されています。

専用 HSM のプロビジョニング

HSM のプロビジョニングと、ExpressRoute ゲートウェイを介した既存の仮想ネットワークへの統合を、追加の構成アクティビティに備えて HSM デバイスの到達可能性と基本的な可用性を確認するために、SSH コマンドライン ツールを使用して検証します。 以下のコマンドでは、HSM リソースと関連ネットワーク リソースを作成するために Resource Manager テンプレートを使用します。

機能登録の検証

これまでに述べたように、プロビジョニング アクティビティでは、Dedicated HSM サービスがお客様のサブスクリプションに登録されている必要があります。 それを検証するには、Azure portal の Cloud Shell で次の PowerShell コマンドを実行します。

Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm

このコマンドで "Registered" の状態が返されてから先に進む必要があります。 このサービスの登録が行われていない場合は、Microsoft のアカウント担当者にお問い合わせください。

サブスクリプションの状態。

HSM リソースの作成

HSM デバイスは、お客様の仮想ネットワークにプロビジョニングされます。これには、サブネットが必要です。 仮想ネットワークと物理デバイスの間の通信を可能にするうえで、HSM は ExpressRoute ゲートウェイに依存しています。最後に、Thales クライアント ソフトウェアを使用して HSM デバイスにアクセスするために、仮想マシンが必要です。

次の例に基づいて、ARM テンプレートを使用して Dedicated HSM リソースを作成できます。 "value":"" を含む行を優先リソース名に置き換えて、パラメーターを更新する必要があります。

  • namingInfix HSM リソースの名前のプレフィックス
  • ExistingVirtualNetworkName HSM のために使用される仮想ネットワークの名前
  • DedicatedHsmResourceName1 データセンター スタンプ 1 内の HSM リソースの名前
  • DedicatedHsmResourceName2 データセンター スタンプ 2 内の HSM リソースの名前
  • hsmSubnetRange HSM のサブネット IP アドレス範囲
  • ERSubnetRange VNET ゲートウェイのサブネット IP アドレス範囲

これらの変更の例は、次のとおりです。

{
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "namingInfix": {
      "value": "MyHSM"
    },
    "ExistingVirtualNetworkName": {
      "value": "MyHSM-vnet"
    },
    "DedicatedHsmResourceName1": {
      "value": "HSM1"
    },
    "DedicatedHsmResourceName2": {
      "value": "HSM2"
    },
    "hsmSubnetRange": {
      "value": "10.0.2.0/24"
    },
    "ERSubnetRange": {
      "value": "10.0.255.0/26"
    },
  }
}

関連する Resource Manager テンプレート ファイルにより、この情報を使用して 6 つのリソースが作成されます。

  • 指定された VNET 内の HSM のサブネット
  • 仮想ネットワーク ゲートウェイのサブネット
  • VNET を HSM デバイスに接続する仮想ネットワーク ゲートウェイ
  • ゲートウェイのパブリック IP アドレス
  • スタンプ 1 内の HSM
  • スタンプ 2 内の HSM

ファイルは、パラメーター値の設定後、使用するために Azure portal の Cloud Shell ファイル共有にアップロードする必要があります。 Azure portal で、右上の Cloud Shell シンボル ">_" を選択すると、画面の下部がコマンド環境になります。 [BASH] と [PowerShell] のオプションがあり、まだ設定されていない場合は [BASH] を選択する必要があります。

ツールバーのアップロード/ダウンロード オプションを選択して、テンプレートとパラメーター ファイルをファイル共有にアップロードします。

ファイル共有。

ファイルがアップロードされたら、リソースを作成する準備ができています。

新しい HSM リソースを作成する前に必要な前提条件リソースがいくつかあります。 コンピューティング、HSM、およびゲートウェイのためのサブネット範囲が含まれた仮想ネットワークが必要です。 以下のコマンドは、このような仮想ネットワークを作成するコマンドの例です。

$compute = New-AzVirtualNetworkSubnetConfig `
  -Name compute `
  -AddressPrefix 10.2.0.0/24
$delegation = New-AzDelegation `
  -Name "myDelegation" `
  -ServiceName "Microsoft.HardwareSecurityModules/dedicatedHSMs"

$hsmsubnet = New-AzVirtualNetworkSubnetConfig ` 
  -Name hsmsubnet ` 
  -AddressPrefix 10.2.1.0/24 ` 
  -Delegation $delegation 


$gwsubnet= New-AzVirtualNetworkSubnetConfig `
  -Name GatewaySubnet `
  -AddressPrefix 10.2.255.0/26


New-AzVirtualNetwork `
  -Name myHSM-vnet `
  -ResourceGroupName myRG `
  -Location westus `
  -AddressPrefix 10.2.0.0/16 `
  -Subnet $compute, $hsmsubnet, $gwsubnet

Note

仮想ネットワークで注意する必要がある最も重要な構成は、HSM デバイス用のサブネットで委任を "Microsoft.HardwareSecurityModules/dedicatedHSMs" に設定することです。 HSM のプロビジョニングは、これがないと機能しません。

すべての前提条件を満たし、Resource Manager テンプレートを一意の名前 (少なくともリソース グループ名) で更新したら、次のコマンドを実行します。


New-AzResourceGroupDeployment -ResourceGroupName myRG `
     -TemplateFile .\Deploy-2HSM-toVNET-Template.json `
     -TemplateParameterFile .\Deploy-2HSM-toVNET-Params.json `
     -Name HSMdeploy -Verbose

このコマンドは、完了までに約 20 分かかるはずです。 "-verbose" オプションを使用すれば、状態が継続的に表示されます。

Dedicated HSM をデプロイします。

"provisioningState": "Succeeded" と表示されて正常に完了したら、お客様の既存の仮想マシンにサインインし、SSH を使用すると HSM デバイスの可用性を確認できます。

デプロイの確認

デバイスがプロビジョニングされたことを確認し、デバイスの属性を表示するには、次のコマンド セットを実行します。 リソース グループが適切に設定され、リソース名がパラメーター ファイル内のものとまったく同じであることを確認します。


$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSM1"  
Get-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName

プロビジョニングの状態。

また、Azure Resource Explorer を使ってリソースを表示できるようになります。 エクスプローラーで、左側の [サブスクリプション]、Dedicated HSM 用の特定のサブスクリプション、[リソース グループ]、お客様が使用したリソース グループの順に展開し、最後に [リソース] 項目を選択します。

デプロイのテスト

デプロイのテストでは、HSM にアクセスできる仮想マシンに接続してから、HSM デバイスに直接接続します。 これらの操作によって、HSM に到達可能であることを確認します。 仮想マシンへの接続には SSH ツールが使用されます。 コマンドは次のようになりますが、管理者名と DNS 名はお客様がパラメーターで指定したものになります。

ssh adminuser@hsmlinuxvm.westus.cloudapp.azure.com

使用するパスワードは、パラメーター ファイルにあるものです。 Linux VM にログオンすると、ポータルでリソース <prefix>hsm_vnic に表示されるプライベート IP アドレスを使用して、HSM にサインインできます。


(Get-AzResource -ResourceGroupName myRG -Name HSMdeploy -ExpandProperties).Properties.networkProfile.networkInterfaces.privateIpAddress

IP アドレスを取得したら、次のコマンドを実行します。

ssh tenantadmin@<ip address of HSM>

成功した場合、パスワードの入力を求められます。 既定のパスワードは PASSWORD です。 お客様のパスワードの変更を求めるメッセージが HSM によって表示されるので、強力なパスワードを設定し、お客様の組織にとって望ましい何らかのメカニズムを使用してパスワードを保存し、紛失を防ぎます。

重要

このパスワードを紛失した場合、HSM のリセットが必要になり、お客様のキーが失われることになります。

SSH を使用して HSM デバイスに接続されている場合、HSM が動作していることを確認するには、次のコマンドを実行します。

hsm show

出力は次の画像のようになります。

HSM の show コマンドの出力を示すスクリーンショット。

この時点で、2 つの HSM の高可用性デプロイにリソースをすべて割り当て、アクセスと動作状態を検証しました。 以降の構成やテストでは、HSM デバイス自体の操作が多くなります。 そのため、Thales Luna 7 HSM の管理ガイド第 7 章の指示に従って、HSM を初期化し、パーティションを作成する必要があります。 Thales のカスタマー サポート ポータルで登録し、利用者 ID を取得すると、すべてのドキュメントとソフトウェアを Thales から直接ダウンロードして入手できます。 すべての必須コンポーネントを入手するには、クライアント ソフトウェア バージョン 7.2 をダウンロードします。

リソースの削除またはクリーンアップ

HSM デバイスだけでの作業を完了したら、それをリソースとして削除し、空きプールに戻すことができます。 これを行う際の明らかな問題は、デバイス上にあるお客様の機密データです。 デバイスを "ゼロにする" 最善の方法は、HSM 管理者パスワードを 3 回間違えることです (注: これはアプライアンス管理者ではなく、実際の HSM 管理者です)。 キー マテリアルを保護するための安全対策として、デバイスがゼロの状態になるまでは、Azure リソースとして削除できません。

Note

Thales デバイスの構成に問題がある場合は、Thales カスタマー サポートに問い合わせる必要があります。

Azure 内で HSM リソースを削除する場合は、次のコマンドを使用できます。"$" 変数はそれぞれ一意のパラメーターで置き換えてください。


$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG" 
$resourceName = "HSMdeploy"  
Remove-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName 

次のステップ

チュートリアルの手順を完了した後、Dedicated HSM リソースはお客様の仮想ネットワークにプロビジョニングされ、利用可能になります。 これで、好みのデプロイ アーキテクチャに必要なリソースを追加して、このデプロイを補完できるようになりました。 お客様のデプロイの計画に役立つ詳細情報については、概念に関する各ドキュメントを参照してください。 プライマリ リージョンの 2 つの HSM によってラック レベルの可用性に対処し、セカンダリ リージョンの 2 つの HSM によってリージョンの可用性に対処する設計をお勧めします。 このチュートリアルで使用されたテンプレート ファイルは、2 つの HSM のデプロイに土台として簡単に使用できますが、お客様の要件に合わせてパラメーターを変更する必要があります。