シールドされた Windows VM テンプレート ディスクを作成する

適用対象: Windows Server 2022、Windows Server 2016、Windows Server 2019

通常の VM と同様に、VM テンプレート (たとえば、Virtual Machine Manager (VMM) の VM テンプレート) を作成して、テナントと管理者がテンプレート ディスクを使用してファブリックに新しい VM を簡単に展開できるようにすることができます。 シールドされた VM はセキュリティが重要な資産であるため、シールドをサポートする VM テンプレートを作成するための追加の手順があります。 このトピックでは、VMM でシールドされたテンプレート ディスクと VM テンプレートを作成する手順について説明します。

このトピックがシールドされた VM を展開するプロセス全体にどれだけ適合するかを理解するには、「保護されたホストとシールドされた VM のためのホスティング サービス プロバイダーの構成手順」を参照してください。

オペレーティング システムの VHDX を準備する

まず OS ディスクを準備し、次にシールドされたテンプレート ディスク作成ウィザードを実行します。 このディスクは、テナントの VM の OS ディスクとして使用されます。 Microsoft Desktop Image Service Manager (DISM) などの既存のツールを使用してこのディスクを作成するか、空の VHDX で VM を手動で設定して、そのディスクに OS をインストールすることができます。 ディスクを設定するときは、第 2 世代またはシールドされた VM に固有の次の要件に従う必要があります:

VHDX の要件 理由
GUID パーティション テーブル (GPT) ディスクである必要がある UEFI をサポートする第 2 世代仮想マシンのために必要
ディスクの種類は、動的ではなく基本である必要があります。
注: これは、Hyper-V でサポートされている "動的に拡張された" VHDX 機能ではなく、論理ディスクの種類を参照します。
BitLocker はダイナミック ディスクをサポートしていません。
ディスクには、少なくとも 2 つのパーティションがあります。 1 つのパーティションに Windows がインストールされているドライブを含める必要があります。 これは、BitLocker が暗号化するドライブです。 もう 1 つのパーティションはアクティブなパーティションで、ブートローダーを含み、コンピューターを起動できるように暗号化されていません。 BitLocker に必要
ファイルシステムが NTFS BitLocker に必要
VHDX にインストールされているオペレーティング システムは、次のいずれかになります:
- Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、または Windows Server 2012
- Windows 10、Windows 8.1、 Windows 8
第 2 世代仮想マシンと Microsoft セキュア ブート テンプレートをサポートするために必要
オペレーティング システムは一般化されている必要があります (sysprep.exe を実行) テンプレートのプロビジョニングには、特定のテナントのワークロードに対応する VM が含まれます

注意

VMM を使用する場合、この段階では、テンプレート ディスクを VMM ライブラリにコピーしないでください。

テンプレートのオペレーティング システムで Windows Update を実行する

テンプレート ディスクで、オペレーティング システムに最新の Windows 更新プログラムがすべてインストールされていることを確認します。 最近リリースされた更新プログラムは、テンプレートのオペレーティング システムが最新ではない場合に、完了できない可能性があるプロセスであるエンドツーエンドのシールド プロセスの信頼性を向上させます。

テンプレート ディスクの作成ウィザードを使用して VHDX を準備して保護する

シールドされた VM でテンプレート ディスクを使用するには、シールドされたテンプレート ディスク作成ウィザードを使用してディスクを準備し、BitLocker で暗号化する必要があります。 このウィザードでは、ディスクのハッシュが生成され、ボリューム署名カタログ (VSC) に追加されます。 VSC は、指定した証明書を使用して署名されます。テナント用に展開されているディスクが変更されていないこと、またはテナントが信頼していないディスクに置き換えられていないことを確認するために、プロビジョニング プロセス中に使用されます。 最後に、VM のプロビジョニング時に暗号化用にディスクを準備するために、ディスクのオペレーティングシステム (まだ存在していない場合) に BitLocker がインストールされます。

注意

テンプレート ディスク ウィザードによって、指定したテンプレート ディスクがインプレースで変更されます。 後でディスクを更新するためにウィザードを実行する前に、保護されていない VHDX のコピーを作成することもできます。 テンプレート ディスク ウィザードを使用して保護されているディスクを変更することはできません。

(リモート サーバー管理ツール、RSAT がインストールされている) Windows Server 2016、Windows 10 以降を実行しているコンピューターで、次の手順を実行します (保護されたホストまたは VMM サーバーである必要はありません)。

  1. オペレーティング システムの VHDX をサーバーに準備する際に作成した一般化された VHDX をコピーします (サーバーにまだ存在していない場合)。

  2. サーバーをローカルで管理するには、サーバー上でリモート サーバー管理ツールからシールドされた VM ツール機能をインストールします。

    Install-WindowsFeature RSAT-Shielded-VM-Tools -Restart
    

    また、Windows 10 リモート サーバー管理ツールがインストールされているクライアント コンピューターからサーバーを管理することもできます。

  3. 新しいシールドされた VM のテンプレート ディスクとなる VHDX 用の VSC に署名するための証明書を取得または作成します。 この証明書の詳細は、テナントがシールド データ ファイルを作成し、それらが信頼するディスクを認可しているときにテナントに対して表示されます。 そのため、ご自分とテナントによって相互に信頼されている証明機関からこの証明書を取得することが重要です。 ホストとテナントの両方であるエンタープライズ シナリオでは、PKI からこの証明書を発行することを検討できます。

    テスト環境を設定していて、自己署名証明書を使用してテンプレート ディスクを準備する場合は、次のようなコマンドを実行します。

    New-SelfSignedCertificate -DnsName publisher.fabrikam.com
    
  4. [スタート] メニューの [管理ツール] フォルダーからテンプレート ディスク ウィザードを起動するか、コマンド プロンプトに「TemplateDiskWizard.exe」と入力します。

  5. [証明書] ページで、[参照] をクリックして証明書の一覧を表示します。 ディスク テンプレートの準備に使用する証明書を選択します。 [OK] をクリックし、 [次へ] をクリックします。

  6. [仮想ディスク] ページで、[参照] をクリックして、準備した VHDX を選択し、[次へ] をクリックします。

  7. [署名カタログ] ページで、フレンドリ ディスク名バージョンを指定します。これらのフィールドは、ディスクを準備した後に識別できるようにするために用意されています。

    たとえば、ディスク名として「WS2016」と入力します。バージョン1.0.0.0 です

  8. ウィザードの [設定の確認] ページで選択内容を確認します。 [生成] をクリックすると、ウィザードはテンプレート ディスクで BitLocker を有効にし、ディスクのハッシュを計算して、ボリューム署名カタログを作成します。これは VHDX メタデータに格納されます。

    準備プロセスが完了するまで待ってから、テンプレート ディスクをマウントまたは移動します。 ディスクのサイズによっては、このプロセスが完了するまでに時間がかかることがあります。

    重要

    テンプレート ディスクは、安全なシールドされた VM のプロビジョニング プロセスでのみ使用できます。 テンプレート ディスクを使用して通常の (シールドされていない) VM を起動しようとすると、停止エラー (ブルー スクリーン) が発生する可能性があり、サポートされません。

  9. [概要] ページには、ディスク テンプレート、VSC に署名するために使用される証明書、および証明書の発行者に関する情報が表示されます。 [閉じる] をクリックしてウィザードを終了します。

VMM を使用する場合は、このトピックの残りのセクションの手順に従って、テンプレート ディスクを VMM のシールドされた VM テンプレートに組み込みます。

テンプレート ディスクを VMM ライブラリにコピーする

VMM を使用する場合は、テンプレート ディスクを作成した後で、VMM ライブラリ共有にコピーして、新しい VM のプロビジョニング時にホストがディスクをダウンロードして使用できるようにする必要があります。 テンプレート ディスクを VMM ライブラリにコピーしてから、ライブラリを最新の状態に更新するには、次の手順を使用します。

  1. VHDX ファイルを VMM ライブラリ共有フォルダーにコピーします。 既定の VMM 構成を使用した場合は、テンプレート ディスクを \<\vmmserver>\MSSCVMMLibrary\VHDs にコピーします。

  2. ライブラリ サーバーを最新の状態に更新します。 [ライブラリ] ワークスペースを開き、[ライブラリ サーバー] を展開し、更新するライブラリ サーバーを右クリックして、[更新] をクリックします。

  3. 次に、テンプレート ディスクにインストールされているオペレーティング システムに関する情報を VMM に提供します。

    a. ライブラリ サーバーの [ライブラリ] ワークスペースで、新しくインポートしたテンプレート ディスクを見つけます。

    b. ディスクを右クリックし、[プロパティ] をクリックします。

    c. [オペレーティング システム] で、一覧を展開し、ディスクにインストールされているオペレーティング システムを選択します。 オペレーティング システムを選択すると、VHDX が空でないことが VMM に示されます。

    d. プロパティを更新したら、[OK] をクリックします。

ディスク名の横にある小さな盾アイコンは、ディスクがシールドされた VM に対して準備されたテンプレート ディスクであることを表します。 また、列ヘッダーを右クリックして [シールド] 列を切り替えて、ディスクが通常の VM デプロイとシールドされた VM デプロイのどちらであるかを示すテキスト表現を表示することもできます。

Shielded vm template disk

準備されたテンプレート ディスクを使用して VMM でシールドされた VM テンプレートを作成する

VMM ライブラリの準備済みテンプレート ディスクを使用して、シールドされた VM 用の VM テンプレートを作成することができます。 シールドされた VM の VM テンプレートは、特定の設定が固定され (第 2 世代 VM、UEFI およびセキュア ブートが有効であるなど)、その他は使用できないという点で、従来の VM テンプレートとは若干異なります (テナントのカスタマイズは、VM のいくつかのプロパティに制限されています)。 VM テンプレートを作成するには、次の手順を実行します。

  1. [ライブラリ] ワークスペースで、上部にある [ホーム] タブの [VM テンプレートの作成] をクリックします。

  2. [ソースの選択] ページで、[ライブラリに保管された既存の VM テンプレートまたはバーチャル ハード ディスクを使用する] をクリックし、[参照] をクリックします。

  3. 表示されるウィンドウで、VMM ライブラリから準備済みテンプレート ディスクを選択します。 どのディスクが準備されているかをより簡単に識別するには、列ヘッダーを右クリックし、[シールド] 列を有効にします。 [OK][次へ] の順にクリックします。

  4. VM テンプレート名と、必要に応じて説明を指定し、[次へ] をクリックします。

  5. [ハードウェアの構成] ページで、このテンプレートから作成される VM の機能を指定します。 少なくとも 1 つの NIC が使用可能であり、VM テンプレートで構成されていることを確認してください。 テナントがシールドされた VM に接続する唯一の方法は、リモート デスクトップ接続、Windows リモート管理、またはネットワーク プロトコル経由で動作するその他の事前構成されたリモート管理ツールを使用することです。

    テナント ネットワークで DHCP サーバーを実行するのではなく、VMM で静的 IP プールを利用する場合は、テナントにこの構成を通知する必要があります。 テナントは、VMM の無人セットアップ ファイルが含まれたシールド データ ファイルを提供するときに、静的 IP プール情報に対して特殊なプレースホルダー値を指定する必要があります。 テナントの無人セットアップ ファイルでの VMM プレースホルダーの詳細については、「応答ファイルを作成する」を参照してください。

  6. VMM の [オペレーティング システムの構成] ページでは、プロダクト キー、タイム ゾーン、コンピューター名など、シールドされた VM に対してのいくつかのオプションのみが表示されます。 管理者パスワードやドメイン名など、セキュリティで保護された情報の一部は、シールド データ ファイル (.PDK ファイル) を使用してテナントによって指定されます。

    注意

    このページでプロダクト キーを指定する場合は、テンプレート ディスクのオペレーティング システムに対して有効であることを確認します。 無効なプロダクト キーが使用されている場合、VM の作成は失敗します。

テンプレートが作成されると、テナントはそれを使用して新しい仮想マシンを作成できます。 VM テンプレートがテナント管理者ユーザー ロールで使用できるリソースの 1 つであることを確認する必要があります (VMM では、ユーザー ロールは [設定] ワークスペースにあります)。

PowerShell を使用して VHDX を準備して保護する

テンプレート ディスク ウィザードを実行する代わりに、RSAT を実行しているコンピューターにテンプレート ディスクと証明書をコピーし、Protect-TemplateDisk を実行して署名プロセスを開始することもできます。 次の例では、TemplateName および Version パラメーターで指定された名前とバージョン情報を使用します。 -Path パラメーターに指定した VHDX は、更新されたテンプレート ディスクで上書きされるため、コマンドを実行する前に必ずコピーを作成してください。

# Replace "THUMBPRINT" with the thumbprint of your template disk signing certificate in the line below
$certificate = Get-Item Cert:\LocalMachine\My\THUMBPRINT

Protect-TemplateDisk -Certificate $certificate -Path "WindowsServer2019-ShieldedTemplate.vhdx" -TemplateName "Windows Server 2019" -Version 1.0.0.0

これで、テンプレート ディスクを使用してシールドされた VM をプロビジョニングする準備ができました。 VM のデプロイに System Center Virtual Machine Manager を使用する場合は、ここで VHDX を VMM ライブラリにコピーできます。

VHDX からボリューム署名カタログを抽出することもできます。 このファイルは、テンプレートを使用したい VM 所有者に署名証明書、ディスク名、バージョンに関する情報を提供するために使用されます。 彼らは、自分たち用の今回と今後のテンプレート ディスクを作成するために、シールド データ ファイル ウィザードにこのファイルをインポートして、署名証明書を所有するテンプレート作成者を認可する必要があります。

ボリューム署名カタログを抽出するには、PowerShell で次のコマンドを実行します。

Save-VolumeSignatureCatalog -TemplateDiskPath 'C:\temp\MyLinuxTemplate.vhdx' -VolumeSignatureCatalogPath 'C:\temp\MyLinuxTemplate.vsc'

次のステップ

その他の参照情報