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

Important

Azure Dedicated HSM は廃止される予定です。 Microsoft は、2028 年 7 月 31 日まで既存の専用 HSM のお客様を完全にサポートします。 新しい顧客のオンボーディングは受け入れられません。 詳細と必要なアクションについては、Azure の 公式更新プログラムを参照してください。

Azure Dedicated HSM ユーザーの場合は、「Azure Dedicated HSM から Managed HSM または Azure Cloud HSM への移行」を参照してください。 Azure Cloud HSM が一般公開され、Azure Dedicated HSM の後継として使用できるようになりました。

新規のお客様は、ワークロードの要件に基づいて、Azure Cloud HSM、Managed HSM、または Azure Key Vault を評価してオンボードする必要があります。 ガイダンスについては、 適切な Azure キー管理ソリューションを選択する方法に関するページを参照してください。

Azure Dedicated HSMは、完全な管理制御と完全な管理責任を備えた、お客様専用の物理デバイスを提供します。 サービスは物理ハードウェアを提供するため、Microsoftはこれらのデバイスの割り当て方法を制御して、効果的な容量管理を保証します。 その結果、Azure サブスクリプション内では、専用 HSM サービスは通常、リソース のプロビジョニングには表示されません。 Dedicated HSM サービスにアクセスするには、Microsoft アカウントエグゼクティブに連絡して、Dedicated HSM サービスの登録を要求する必要があります。 このプロセスが正常に完了した後にのみ、サービスをプロビジョニングできます。

このチュートリアルでは、次の一般的なプロビジョニング プロセスを示します:

  • 顧客が既に仮想ネットワークを持っている
  • 彼らは仮想マシンを持っている
  • その既存の環境に HSM リソースを追加する必要があります。

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

複数リージョンのデプロイ

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

Prerequisites

Azure Dedicated HSM は現在、Azure portal では利用できません。 サービスとのすべてのやり取りは、コマンド ラインまたは PowerShell 経由で行う必要があります。 このチュートリアルでは、Azure Cloud Shellのコマンド ライン (CLI) インターフェイスを使用します。 Azure CLIを初めて使用する場合は、「Azure CLI 2.0 の使用開始」の使用開始手順に従ってください。

想定:

  • Azure Dedicated HSM のオンボーディングと使用の資格を取得するには、Microsoft アカウント マネージャーが割り当てられている必要があります。
  • お客様は Azure Dedicated HSM の登録プロセスを完了し、サービス利用の承認を受けました。 そうでない場合は、Microsoft アカウント担当者にお問い合わせください。
  • これらのリソース用にリソース グループが作成してあり、このチュートリアルでデプロイされる新しいものは、そのグループに加えられる。
  • 図に従って必要な仮想ネットワーク、サブネット、仮想マシンを既に作成しており、2 つの HSM をそのデプロイに統合したいと考えています。

この記事のすべての説明では、Azure ポータルで Cloud Shell を開いているものとします (ポータルの右上にある [>_] を選択します)。

専用 HSM をプロビジョニングする

HSM のプロビジョニングと ExpressRoute ゲートウェイ 経由での既存の仮想ネットワークへの統合は、ssh を使用して検証されます。 この検証は、追加の構成アクティビティに対する HSM デバイスの到達可能性と基本的な可用性を確保するのに役立ちます。

機能の登録の検証

プロビジョニング アクティビティでは、専用 HSM サービスがサブスクリプションに登録されている必要があります。 これを検証するには、Azure ポータル Cloud Shellで次のコマンドを実行します。

az feature show \
   --namespace Microsoft.HardwareSecurityModules \
   --name AzureDedicatedHSM

コマンドは、"Registered" の状態を返す必要があります。 コマンドで "Registered" が返されない場合は、Microsoft アカウント担当者に連絡して、このサービスに登録する必要があります。

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

HSM リソースを作成する

HSM リソースを作成する前に、いくつかの前提条件リソースが必要です。 コンピューティング、HSM、ゲートウェイのサブネット範囲を持つ仮想ネットワークが必要です。 次のコマンドは、このような仮想ネットワークを作成する例として機能します。

az network vnet create \
  --name myHSM-vnet \
  --resource-group myRG \
  --address-prefix 10.2.0.0/16 \
  --subnet-name compute \
  --subnet-prefix 10.2.0.0/24
az network vnet subnet create \
  --vnet-name myHSM-vnet \
  --resource-group myRG \
  --name hsmsubnet \
  --address-prefixes 10.2.1.0/24 \
  --delegations Microsoft.HardwareSecurityModules/dedicatedHSMs
az network vnet subnet create \
  --vnet-name myHSM-vnet \
  --resource-group myRG \
  --name GatewaySubnet \
  --address-prefixes 10.2.255.0/26

Note

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

仮想ネットワークには、ExpressRoute ゲートウェイも必要です。 ゲートウェイがない場合、HSM の作成操作は失敗し、 デバイスを仮想ネットワークに接続するときにエラーが発生します。 az network vnet-gateway create コマンドと ErGwScale SKU を使用してゲートウェイを作成します。 Azure では、ゲートウェイのパブリック IP アドレスが自動的に割り当てられ管理されます。そのため、パブリック IP リソースを作成したり、--public-ip-addresses パラメーターを渡したりしないでください。

az network vnet-gateway create \
  --resource-group myRG \
  --name myergw \
  --vnet myHSM-vnet \
  --gateway-type ExpressRoute \
  --sku ErGwScale \
  --min-scale-unit 1 \
  --max-scale-unit 1

ゲートウェイのデプロイには約 17 分かかります。

ネットワークを構成したら、次の Azure CLI コマンドを使用して HSM をプロビジョニングしてください。

  1. az dedicated-hsm create コマンドを使用して、最初の HSM をプロビジョニングします。 HSM の名前は hsm1 です。 ご自分のサブスクリプションに置き換えます。

    az dedicated-hsm create --location westus --name hsm1 --resource-group myRG \
         --stamp-id stamp1 --sku "SafeNet Luna Network HSM A790" \
         --subnet id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/myHSM-vnet/subnets/hsmsubnet" \
         --network-interfaces private-ip-address=10.2.1.4
    

    HSM の作成操作が完了するまでに約 7 分かかります。

  2. 現在の HSM を表示するには、 az dedicated-hsm show コマンドを実行します。

    az dedicated-hsm show --resource-group myRG --name hsm1
    
  3. 次のコマンドを使用して、2 番目の HSM をプロビジョニングします。

    az dedicated-hsm create --location westus --name hsm2 --resource-group myRG \
         --stamp-id stamp2 --sku "SafeNet Luna Network HSM A790" \
         --subnet id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/myHSM-vnet/subnets/hsmsubnet" \
         --network-interfaces private-ip-address=10.2.1.5
    
  4. az dedicated-hsm list コマンドを実行して、現在の HSM に関する詳細を表示します。

    az dedicated-hsm list --resource-group myRG
    

他にも役に立つコマンドがいくつかあります。 az dedicated-hsm update コマンドを使用して HSM を更新します。

az dedicated-hsm update --resource-group myRG --name hsm1

HSM を削除するには、 az dedicated-hsm delete コマンドを使用します。

az dedicated-hsm delete --resource-group myRG --name hsm1

デプロイメントを確認する

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

subid=$(az account show --query id --output tsv)
az resource show \
   --ids /subscriptions/$subid/resourceGroups/myRG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSM1
az resource show \
   --ids /subscriptions/$subid/resourceGroups/myRG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSM2

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

{
    "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/HSMl",
    "identity": null,
    "kind": null,
    "location": "westus",
    "managedBy": null,
    "name": "HSM1",
    "plan": null,
    "properties": {
        "networkProfile": {
            "networkInterfaces": [
            {
            "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.Network/networkInterfaces/HSMl_HSMnic", "privatelpAddress": "10.0.2.5",
            "resourceGroup": "HSM-RG"
            }
            L
            "subnet": {
                "id": n/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/HSM-RG/providers/Microsoft.Network/virtualNetworks/demo-vnet/subnets/hsmsubnet", "resourceGroup": "HSM-RG"
            }
        },
        "provisioningState": "Succeeded",
        "stampld": "stampl",
        "statusMessage": "The Dedicated HSM device is provisioned successfully and ready to use."
    },
    "resourceGroup": "HSM-RG",
    "sku": {
        "capacity": null,
        "family": null,
        "model": null,
        "name": "SafeNet Luna Network HSM A790",
        "size": null,
        "tier": null
    },
    "tags": {
        "Environment": "prod",
        "resourceType": "Hsm"
    },
    "type": "Microsoft.HardwareSecurityModules/dedicatedHSMs"
}

Azure リソース エクスプローラーを使用してリソースを表示することもできます。 エクスプローラーで [サブスクリプション] を展開し、専用 HSM の特定のサブスクリプションを展開し、[リソース グループ] を展開して、使用したリソース グループを展開して、最後に [リソース] 項目を選択します。

デプロイをテストする

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

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

VM の IP アドレスは、DNS 名の代わりに使用することもできます。 コマンドが成功した場合は、パスワードの入力を求めるメッセージが表示され、それを入力する必要があります。 仮想マシンにログオンしたら、ポータルにある HSM に関連付けられているネットワーク インターフェイス リソースのプライベート IP アドレスを使用して HSM にサインインできます。

コンポーネントの一覧

Note

[Show hidden types]\(非表示の型を表示する\) チェックボックスに注目してください。このチェック ボックスをオンにすると、HSM リソースが表示されます。

スクリーンショットで、[HSM1_HSMnic] または [HSM2_HSMnic] をクリックすると、適切なプライベート IP アドレスが表示されます。 それ以外の場合、 az resource show コマンドは適切な IP アドレスを識別する方法です。

正しい IP アドレスがある場合は、そのアドレスに置き換えて次のコマンドを実行します。

ssh tenantadmin@10.0.2.4

成功した場合は、パスワードの入力を求められます。 既定のパスワードは PASSWORD で、HSM は最初にパスワードの変更を求めるので、強力なパスワードを設定し、組織で推奨されている方法でパスワードを保管し、紛失を防いでください。

Important

このパスワードを紛失した場合は、HSM をリセットする必要があります。つまり、キーが失われます。

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

hsm show

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

PowerShell ウィンドウの出力を示すスクリーンショット。

この時点で、高可用性の 2 台の HSM 構成に必要なすべてのリソースを割り当て、アクセスと運用状態を検証しました。 それ以上の構成やテストには、HSM デバイス自体での追加作業が必要です。 このためには、Thales Luna 7 HSM 管理ガイドの第 7 章の手順に従って HSM を初期化し、パーティションを作成する必要があります。 Thales カスタマー サポート ポータル に登録し、顧客 ID を持っている場合、すべてのドキュメントとソフトウェアを Thales から直接ダウンロードできます。 すべての必須コンポーネントを入手するには、クライアント ソフトウェア バージョン 7.2 をダウンロードします。

リソースを削除またはクリーンアップする

HSM デバイスのみでの使用を終えた場合は、それをリソースとして削除して、空きプールに戻すことができます。 これを行うときの明らかな懸念は、デバイス上にある機密の顧客データです。 デバイスを"ゼロ化"する最善の方法は、HSM管理者パスワードを3回間違って入力することです。 (アプライアンス管理者ではなく、実際の HSM 管理者)。 キー マテリアルを保護するための安全対策として、デバイスがゼロ化された状態になるまで、デバイスをAzure リソースとして削除することはできません。

Note

いずれかの Thales デバイスの構成に問題がある場合は、Thales カスタマー サポートにお問い合わせください。

リソース グループ内のすべてのリソースの使用を終えたら、次のコマンドを使用してそれらを削除できます。

az group delete \
   --resource-group myRG \
   --name HSMdeploy \
   --verbose

次のステップ

チュートリアルの手順を完了すると、専用 HSM リソースがプロビジョニングされ、必要な HSM を含む仮想ネットワークと、HSM との通信を可能にするその他のネットワーク コンポーネントが用意されます。 これで、好みのデプロイ アーキテクチャに必要なリソースを追加して、このデプロイを補完できるようになりました。 デプロイ計画の立案に役立つ情報の詳細については、Concepts ドキュメントを参照してください。 プライマリ リージョンに 2 つの HSM がラック レベルの可用性を確保し、セカンダリ リージョンの 2 つの HSM がリージョン レベルの可用性を確保する設計が推奨されます。