Windows Server Technical Preview 2には、新しい役割として「Host Guardian Service」が追加されました。この役割は何者なのか、簡単に評価できるのか、実際に試してみました。
「Host Guardian Service」は、Windows Server 2016の最初のプレビュー版である「Windows Server Technical Preview」では提供されず、「Windows Server Technical Preview 2」で初めて実装された新しい役割です(画面1)。Windows Server Technical Preview 2の目玉機能といってもよいのですが、この役割を必要とする場面は限定されるでしょう。
Host Guardian Serviceは、Windows Server 2016およびSystem Center 2016で構築されたプライベートクラウドや、サービスプロバイダーが提供するクラウドの保護機能を提供するものです。
簡単に言ってしまえば、「クラウドを使うテナント(利用者)が、信頼できる仮想マシン(Shielded VM)を、信頼できるホスト(Guarded Host)上で実行できる環境を提供する」サービスということになります。仮想マシンの仮想ハードディスクは「BitLockerドライブ暗号化」機能で保護され、信頼されたホストだけが暗号化のロックを解除して仮想マシンを実行することができます。
Host Guardian Serviceの概念や導入手順は、以下のマイクロソフトのWebサイトからダウンロードできるWordファイル形式(.docx)のステップバイステップガイド「Shielded VM and Guarded Fabric Deployment Guide for Ignite Build v1.docx」(英語)で解説されています。
以下の図1はこのステップバイステップガイドに掲載されているもので、Host Guardian Serviceで保護されたクラウド基盤(ファブリックインフラストラクチャ)の全体像を示したものになります。
上記の図1を見てもHost Guardian Serviceがどのようなものか、理解するのは難しいと思います。そこで、筆者がステップバイステップガイドで説明されているHost Guardian Serviceの展開環境を以下の図2にまとめてみました。
Active Directoryのドメイン名(Relecloud.comおよびFabrikam.com)、クラスター名(MyHgsService)、Guarded Hostのホスト名(FabricHost1およびFabricHost2)、Shielded VMの仮想マシン名は、ステップバイステップガイドと一致しています。ステップバイステップガイドといいながら、その他のサーバーの名前はこのガイドでは登場しません。
Host Guardian Serviceの具体的な展開手順はステップバイステップガイドにお任せするとして、Host Guardian Serviceを構成するサーバーやサービスについて説明しておきましょう。ステップバイステップガイドを理解する手助けになるはずです。なお、筆者の環境ではRelecloud.comのドメインをhgsdom.contoso.com、Fabrikam.comのドメインをopread.contoso.comとしてセットアップしています。
Host Guardian Serviceは、保護対象のクラウド基盤のActive Directoryとは別の“専用のActive Directory”を持ちます。Host Guardian Service自身は、「Attestation Server」と「Key Protection Server」の二つのサービスで構成されます(画面2)。
Attestation Serverは、保護対象のクラウド基盤にあるHyper-Vホスト(Guarded Host)を検証します。Key Protection Serverは、テナントに対して仮想マシンをシールドするための暗号化キーを提供し、Guarded Hostに対してはShielded VMの暗号化ロックを解除するためのキーを提供します。
Host Guardian Serviceの役割をインストールしようとすると、Active DirectoryドメインサービスやWebサーバー(IIS)の役割、フェイルオーバークラスタリング機能の追加が要求されます。そのために、試そうと思っても二の足を踏んでしまうかもしれませんが、1台の物理サーバーまたはHyper-V上の1台の仮想マシン(Guarded HostにするつもりのHyper-Vでも可)でセットアップできますので、ぜひチャレンジしてみてください。
クラウド基盤(ファブリック)のActive Directoryは、Host Guardian ServiceのActive Directoryから一方向または双方向で信頼されます(画面3)。Guarded HostはファブリックのActive Directoryのメンバーであり、Host Guardian ServiceのActive Directoryからの信頼に基づいて検証されます。
「Guarded Host」は、Hyper-Vの役割と「Host Guardian Hyper-V Support」の機能がインストールされ、Host Guardian Serviceのクライアントとして構成されたHyper-Vホストになります(画面4)。Guarded Hostは、Active Directoryの信頼関係に基づいてAttestation Serverによって検証され、Key Protection ServerからShielded VMの暗号化ロックを解除するキーを取得します。
Guarded HostはActive Directoryによる検証の他、TPM(Trusted Platform Module)2.0のハードウエアによる検証にも対応しています。
なお、ステップバイステップガイドでは、「Virtual Machine Manager」を使用しないGuarded Hostの設定手順が説明されていません。Virtual Machine Managerを使用しない場合は、Windows PowerShellの「Set-HgsClientConfiguration」コマンドレットでAttestation ServerとKey Protection ServerのURLを設定することで、Guarded Hostとして構成することができます。
テナント(クラウドの利用者)は、Key Protection ServerのURLから暗号化キーを取得し、自分のHyper-V環境で仮想マシンをシールドして、Shielded VMを準備できます。このShielded VMをエクスポートし、クラウドのGuarded Hostにインポートすることで、クラウドに展開することができます。
Shielded VMを準備するためには、Hyper-Vの役割とHost Guardian Hyper-V Supportの機能、および「Shielded VM Tools」の機能がインストールされたHyper-Vホストが必要です(画面5)。Host Guardian Serviceのクライアント、つまりGuarded Hostとしては機能しませんが、ローカルで準備したShielded VMをHyper-V上で実行できます。
「Shielded VM」は、Shielded VMを準備するためのローカルのHyper-V環境、およびKey Protection Serverからロック解除キーを取得できるGuarded Hostでのみ実行できる、暗号化された仮想マシンです。Shielded VMには仮想的なTPMが割り当てられ、テナント側はこの仮想的なTPMを利用してゲストOSのボリュームをBitLockerでフル暗号化します(画面6)。
このように、Shielded VMの仮想ハードディスク(VHDX)はBitLockerで暗号化されるため、Guarded Hostでロックが解除され、仮想マシンが起動しない限り、仮想ハードディスクの内容にアクセスすることはできません(画面7)。
例えば、Shielded VMをGuarded HostではないHyper-Vホストや、何らかの問題があって検証をパスしなかったGuarded Hostでは起動できません。また、VHDXファイルをローカルマウントしても暗号化されているために内容を読み取られる心配がないため、VHDXファイルのネットワーク転送中も安心ですし、万が一VHDXファイルが外部に流出したとしても安心です。
Windows Server Technical Preview 2と同じ5月上旬に公開されたSystem Center Technical Preview 2のVirtual Machine Managerは、Host Guardian Serviceに対応済みであり、Host Guardian Serviceのファブリックコントローラーとして機能します(画面8)。
例えば、Virtual Machine Managerのクラウド(Virtual Machine Managerの管理境界)でShielded VMをサポートするかどうかを指定できますし、Hyper-VホストをHost Guarded Servicesのクライアントとして構成することもできます。また、Shielded VMをGuarded Hostに展開することもできます(画面9)。
Virtual Machine ManagerをHost Guardian Serviceのファブリックコントローラーとして使用する場合、クラウド側ではテンプレートの仮想ハードディスク(VHDX)に署名すると同時に、BitLockerで暗号化してシールドすることで、Shielded VMのテンプレートとして作成することができます。そのためのウィザード(TemplateDiskWizard.exe)は、Shielded VM Toolsに含まれています。
テナント側は、同じくShielded VM Toolsが提供するウィザード(ShieldingDataFileWizard.exe)で、シールドされた仮想ハードディスク(VHDX)をベースにして仮想マシンを作成するためのプロビジョニングデータ(.pdk)を用意することができます(画面10、画面11)。また、プロビジョニングデータ(.pdk)は、Virtual Machine Managerのテンプレートからの仮想マシンの作成ウィザードで指定します。
いかがでしたでしょうか。登場したばかりで分かりにくいHost Guardian Serviceですが、実際に動いている画面を見ることで、少しは理解が進むのではないでしょうか。筆者も実際に試してみて、ようやく理解できたような気がします。
岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。
Copyright © ITmedia, Inc. All Rights Reserved.