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 リソースを追加する必要があります。
一般的な高可用性のマルチリージョン デプロイ アーキテクチャは次のとおりです。
このチュートリアルでは、HSM のペアと必要な ExpressRoute ゲートウェイ を既存の仮想ネットワーク (上記の VNET 1 を参照) に統合することに焦点を当てます (上記のサブネット 1 を参照)。 その他のリソースはすべて、標準のAzure リソースです。 上記の VNET 3 のサブネット 4 の HSM にも同じ統合プロセスを使用できます。
Note
Azure Az PowerShell モジュールを使用して Azure と対話することをお勧めします。 作業を始めるには、「Azure PowerShell をインストールする」を参照してください。 Az PowerShell モジュールに移行する方法については、「 Azure PowerShell を AzureRM から Az に移行する」を参照してください。
Prerequisites
Azure Dedicated HSMは現在、Azure ポータルでは使用できないため、サービスとのすべてのやり取りは、コマンドラインまたは PowerShell 経由で行います。 このチュートリアルでは、Azure Cloud Shellで PowerShell を使用します。 PowerShell を初めて使用する場合は、こちらの Azure PowerShell Get Started の手順に従ってください。
想定:
- Azure Dedicated HSM のオンボーディングと使用の資格を取得するには、Microsoft アカウント マネージャーが割り当てられている必要があります。
- Azure Dedicated HSM の登録プロセスが完了しており、サービスの使用が承認されている。 そうでない場合は、Microsoft アカウント担当者にお問い合わせください。
- これらのリソースと、このチュートリアルでデプロイされる新しいリソース用に、リソース グループを作成しました。
- 必要な仮想ネットワーク、サブネット、仮想マシンを既に作成しており、2 つの HSM をそのデプロイに統合したいと考えています。
次の手順では、Azure ポータルを使用していて、Cloud Shell を開いていることを前提としています (ポータルの右上にある [>_] を選択します)。
専用 HSM のプロビジョニング
HSM のプロビジョニングと、ExpressRoute ゲートウェイを介した既存の仮想ネットワークへの統合は、追加の構成アクティビティに備えて HSM デバイスの到達可能性と基本的な可用性を確認するために、SSH コマンドライン ツールを使用して検証されます。 次のコマンドでは、Resource Manager テンプレートを使用して、HSM リソースと関連するネットワーク リソースを作成します。
機能登録の検証
前述のように、プロビジョニング アクティビティでは、専用 HSM サービスがサブスクリプションに登録されている必要があります。 これを検証するには、Azure ポータル Cloud Shellで次の PowerShell コマンドを実行します。
Get-AzProviderFeature -ProviderNamespace Microsoft.HardwareSecurityModules -FeatureName AzureDedicatedHsm
このコマンドで "Registered" の状態が返されてから、先に進む必要があります。 このサービスに登録していない場合は、Microsoft アカウント担当者にお問い合わせください。
HSM リソースの作成
HSM デバイスは、サブネットが必要な顧客の仮想ネットワーク内にプロビジョニングされます。 仮想ネットワークと物理デバイス間の通信を有効にするために HSM に必要な構成要素は ExpressRoute ゲートウェイであり、最後に Thales クライアント ソフトウェアを使用して HSM デバイスにアクセスするには仮想マシンが必要です。
次の例に基づいて、ARM テンプレートを使用して専用 HSM リソースを作成できます。 "value":"" を含む行を希望するリソース名に置き換えて、パラメーターを更新する必要があります。
-
namingInfixHSM リソースの名前のプレフィックス -
ExistingVirtualNetworkNameHSM に使用される仮想ネットワークの名前 -
DedicatedHsmResourceName1データセンター スタンプ 1 の HSM リソースの名前 -
DedicatedHsmResourceName2データセンター スタンプ 2 の HSM リソースの名前 -
hsmSubnetRangeHSM のサブネット IP アドレス範囲 -
ERSubnetRangeVNET ゲートウェイのサブネット 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 ポータルで、右上の ">_" 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" オプションを使用すると、状態が継続的に表示されます。
"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 リソース エクスプローラーを使用してリソースを表示できるようになりました。 エクスプローラーで左側の [サブスクリプション] を展開し、専用 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 によって表示されるので、強力なパスワードを設定し、お客様の組織にとって望ましい何らかのメカニズムを使用してパスワードを保存し、紛失を防ぎます。
Important
このパスワードを失った場合は、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 カスタマー サポートにお問い合わせください。
Azure で HSM リソースを削除する場合は、次のコマンドを使用して、"$" の変数をお客様固有のパラメーター値に置き換えてください。
$subid = (Get-AzContext).Subscription.Id
$resourceGroupName = "myRG"
$resourceName = "HSMdeploy"
Remove-AzResource -Resourceid /subscriptions/$subId/resourceGroups/$resourceGroupName/providers/Microsoft.HardwareSecurityModules/dedicatedHSMs/$resourceName
次のステップ
チュートリアルの手順を完了すると、専用 HSM リソースがプロビジョニングされ、仮想ネットワークで使用できるようになります。 これで、好みのデプロイ アーキテクチャに必要なリソースを追加して、このデプロイを補完できるようになりました。 デプロイの計画に役立つ方法の詳細については、Concepts ドキュメントを参照してください。 プライマリ リージョンに 2 つの HSM がラック レベルの可用性を確保し、セカンダリ リージョンの 2 つの HSM がリージョン レベルの可用性を確保する設計が推奨されます。 このチュートリアルで使用するテンプレート ファイルは、2 つの HSM デプロイの基礎として簡単に使用できますが、要件を満たすようにパラメーターを変更する必要があります。