チュートリアル:Azure CLI を使用して既存の仮想ネットワークに 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 Dedicated HSM は現在、Azure portal では使用できません。 サービスに対するすべての操作は、コマンドラインまたは PowerShell を使用して行います。 このチュートリアルでは、Azure Cloud Shell でコマンドライン インターフェイス (CLI) を使用します。 Azure CLI を初めて使う場合は、こちらの Azure CLI 2.0 の概要に関する記事の使用開始手順に従ってください。
想定:
- Microsoft アカウント マネージャーが割り当てられていて、Azure Dedicated HSM のオンボードと使用の資格を得るための年額要件、500 万 ($5M) USD 以上の Azure 確定総収益を満たしている。
- Azure Dedicated HSM の登録プロセスが完了しており、サービスの使用が承認されている。 そうでない場合は、お客様の Microsoft アカウント担当者に詳細をお問い合わせください。
- これらのリソース用にリソース グループが作成してあり、このチュートリアルでデプロイされる新しいものはそのグループに加えられる。
- 上の図のとおりに、必要な仮想ネットワーク、サブネット、仮想マシンが既に作成してあり、そのデプロイに 2 つの HSM を統合しようとしている。
以下のすべての手順では、お客様が既に Azure portal に移動し、Cloud Shell を開いているものとします (ポータルの右上の [>_] を選びます)。
専用 HSM のプロビジョニング
HSM のプロビジョニングと、ExpressRoute ゲートウェイを介した既存の仮想ネットワークへの統合は、SSH を使用して検証されます。 この検証は、追加の構成アクティビティに備えて、HSM デバイスの到達可能性と基本的な可用性を確保するために役立ちます。
機能登録の検証
前述のように、プロビジョニング アクティビティでは、Dedicated HSM サービスがお客様のサブスクリプションに登録されている必要があります。 それを検証するには、Azure portal の 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 のプロビジョニングは、このオプションが設定されていないと機能しません。
ネットワークを構成したら、次の Azure CLI コマンドを使用して HSM をプロビジョニングします。
az dedicated-hsm create コマンドを使用して、最初の HSM をプロビジョニングします。 HSM には hsm1 という名前が付けられます。 ご自分のサブスクリプションに置き換えます。
az dedicated-hsm create --location westus --name hsm1 --resource-group myRG --network-profile-network-interfaces \ /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/MyHSM-vnet/subnets/MyHSM-vnet
このデプロイには、完了までに 25 - 30 分ほどかかります。その時間の多くは、HSM デバイスに費やされます。
現在の HSM を表示するには、az dedicated-hsm show コマンドを実行します。
az dedicated-hsm show --resource group myRG --name hsm1
次のコマンドを使用して、2 つ目の HSM をプロビジョニングします。
az dedicated-hsm create --location westus --name hsm2 --resource-group myRG --network-profile-network-interfaces \ /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/myRG/providers/Microsoft.Network/virtualNetworks/MyHSM-vnet/subnets/MyHSM-vnet
az dedicated-hsm list コマンドを実行して、現在の HSM に関する詳細を表示します。
az dedicated-hsm list --resource-group myRG
他にも便利なコマンドがいくつかあります。 HSM を更新するには、az dedicated-hsm update コマンドを使用します。
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 Resource Explorer を使ってリソースを表示できるようになります。 エクスプローラーで、左側の [サブスクリプション]、Dedicated HSM 用の特定のサブスクリプション、[リソース グループ]、お客様が使用したリソース グループの順に展開し、最後に [リソース] 項目を選択します。
デプロイのテスト
デプロイのテストでは、HSM にアクセスできる仮想マシンに接続し、その後、HSM デバイスに直接接続します。 これらの操作によって、HSM に到達可能であることを確認します。 仮想マシンへの接続には SSH ツールが使用されます。 コマンドは次のようになりますが、管理者名と DNS 名はお客様がパラメーターで指定したものになります。
ssh adminuser@hsmlinuxvm.westus.cloudapp.azure.com
VM の IP アドレスは、上のコマンドで DNS 名の代わりに使用することもできます。 コマンドが成功した場合は、パスワードの入力を求めるメッセージが表示されるので、入力する必要があります。 仮想マシンへのログオン後、HSM に関連付けられているネットワーク インターフェイス リソースについてポータルに表示されるプライベート IP アドレスを使用して、HSM にサインインできます。
Note
[非表示の型の表示] チェック ボックスに注意してください。これをオンにした場合は、HSM リソースが表示されます。
上のスクリーンショットでは、"HSM1_HSMnic" または "HSM2_HSMnic" をクリックすると、適切なプライベート IP アドレスが表示されます。 その他に、上で使用された az resource show
コマンドを使って、適切な IP アドレスを特定することもできます。
正しい IP アドレスを取得したら、そのアドレスに置換して次のコマンドを実行します。
ssh tenantadmin@10.0.2.4
成功した場合、パスワードの入力を求められます。 既定のパスワードは PASSWORD です。最初に、お客様のパスワードの変更を求めるメッセージが HSM によって表示されるので、強力なパスワードを設定し、お客様の組織にとって望ましい何らかのメカニズムを使用してパスワードを保存し、紛失を防ぎます。
重要
このパスワードを紛失した場合、HSM のリセットが必要になり、お客様のキーが失われることになります。
SSH を使って HSM に接続しているときは、次のコマンドを実行して、HSM が動作していることを確認します。
hsm show
出力は次の画像のようになります。
これで、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
次のステップ
チュートリアルの手順を完了した後、Dedicated HSM リソースがプロビジョニングされ、必要な HSM と、その HSM との通信を可能にするための追加のネットワーク コンポーネントを備えた仮想ネットワークが確立されます。 これで、好みのデプロイ アーキテクチャに必要なリソースを追加して、このデプロイを補完できるようになりました。 お客様のデプロイの計画に役立つ詳細情報については、概念に関する各ドキュメントを参照してください。 プライマリ リージョンの 2 つの HSM によってラック レベルの可用性に対処し、セカンダリ リージョンの 2 つの HSM によってリージョンの可用性に対処する設計をお勧めします。