Windows Server 2016世代のクラウド基盤の守護者、Host Guardian ServiceとはvNextに備えよ! 次期Windows Serverのココに注目(17)

Windows Server Technical Preview 2には、新しい役割として「Host Guardian Service」が追加されました。この役割は何者なのか、簡単に評価できるのか、実際に試してみました。

» 2015年06月15日 05時00分 公開
[山市良テクニカルライター]
「vNextに備えよ! 次期Windows Serverのココに注目」のインデックス

連載目次

Host Guardian Serviceの役目はクラウド基盤とテナントの保護

 「Host Guardian Service」は、Windows Server 2016の最初のプレビュー版である「Windows Server Technical Preview」では提供されず、「Windows Server Technical Preview 2」で初めて実装された新しい役割です(画面1)。Windows Server Technical Preview 2の目玉機能といってもよいのですが、この役割を必要とする場面は限定されるでしょう。

画面1 画面1 Windows Server Technical Preview 2で新しく追加された「Host Guardian Service」の役割

 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 図1 Host Guardian Serviceで保護されたクラウド基盤の全体像(マイクロソフト「Shielded VM and Guarded Fabric Deployment Guide for Ignite Build v1.docx」より引用)

 上記の図1を見てもHost Guardian Serviceがどのようなものか、理解するのは難しいと思います。そこで、筆者がステップバイステップガイドで説明されているHost Guardian Serviceの展開環境を以下の図2にまとめてみました。

図2 図2 「Shielded VM and Guarded Fabric Deployment Guide for Ignite Build v1.docx」の評価環境を筆者独自に図示したもの

 Active Directoryのドメイン名(Relecloud.comおよびFabrikam.com)、クラスター名(MyHgsService)、Guarded Hostのホスト名(FabricHost1およびFabricHost2)、Shielded VMの仮想マシン名は、ステップバイステップガイドと一致しています。ステップバイステップガイドといいながら、その他のサーバーの名前はこのガイドでは登場しません。

Host Guardian Serviceとその仲間たちのご紹介

 Host Guardian Serviceの具体的な展開手順はステップバイステップガイドにお任せするとして、Host Guardian Serviceを構成するサーバーやサービスについて説明しておきましょう。ステップバイステップガイドを理解する手助けになるはずです。なお、筆者の環境ではRelecloud.comのドメインをhgsdom.contoso.com、Fabrikam.comのドメインをopread.contoso.comとしてセットアップしています。

Host Guardian Serviceと専用のActive Directory

 Host Guardian Serviceは、保護対象のクラウド基盤のActive Directoryとは別の“専用のActive Directory”を持ちます。Host Guardian Service自身は、「Attestation Server」と「Key Protection Server」の二つのサービスで構成されます(画面2)。

画面2 画面2 Host Guardian ServiceのAttestation ServerとKey Protection Serverの二つのサービスは、フェイルオーバークラスター(1ノードで構成可)上で稼働する

 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

 クラウド基盤(ファブリック)のActive Directoryは、Host Guardian ServiceのActive Directoryから一方向または双方向で信頼されます(画面3)。Guarded HostはファブリックのActive Directoryのメンバーであり、Host Guardian ServiceのActive Directoryからの信頼に基づいて検証されます。

画面3 画面3 Host Guardian Serviceで保護されるファブリックのActive Directory。Host Guardian Serviceのドメインから一方向で、または双方向で信頼される

Guarded Host

 「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の暗号化ロックを解除するキーを取得します。

画面4 画面4 Guarded HostはHost Guardian Serviceのクライアントとして構成されたHyper-Vホストで、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として構成することができます。

テナントのHyper-V環境

 テナント(クラウドの利用者)は、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上で実行できます。

画面5 画面5 テナントのHyper-V環境で「Shielded VM Tools」(Windows PowerShellのコマンドレット)を使用して、仮想マシンをシールドしているところ

Shielded VM

 「Shielded VM」は、Shielded VMを準備するためのローカルのHyper-V環境、およびKey Protection Serverからロック解除キーを取得できるGuarded Hostでのみ実行できる、暗号化された仮想マシンです。Shielded VMには仮想的なTPMが割り当てられ、テナント側はこの仮想的なTPMを利用してゲストOSのボリュームをBitLockerでフル暗号化します(画面6)。

画面6 画面6 仮想TPMを使用して仮想マシンのOSおよびデータボリュームをフル暗号化する

 このように、Shielded VMの仮想ハードディスク(VHDX)はBitLockerで暗号化されるため、Guarded Hostでロックが解除され、仮想マシンが起動しない限り、仮想ハードディスクの内容にアクセスすることはできません(画面7)。

画面7 画面7 Shielded VMは、ロック解除キーを取得できるGuarded Hostでなければ起動できない

 例えば、Shielded VMをGuarded HostではないHyper-Vホストや、何らかの問題があって検証をパスしなかったGuarded Hostでは起動できません。また、VHDXファイルをローカルマウントしても暗号化されているために内容を読み取られる心配がないため、VHDXファイルのネットワーク転送中も安心ですし、万が一VHDXファイルが外部に流出したとしても安心です。

Virtual Machine Manager

 Windows Server Technical Preview 2と同じ5月上旬に公開されたSystem Center Technical Preview 2のVirtual Machine Managerは、Host Guardian Serviceに対応済みであり、Host Guardian Serviceのファブリックコントローラーとして機能します(画面8)。

画面8 画面8 Virtual Machine ManagerによるGuarded Hostの構成

 例えば、Virtual Machine Managerのクラウド(Virtual Machine Managerの管理境界)でShielded VMをサポートするかどうかを指定できますし、Hyper-VホストをHost Guarded Servicesのクライアントとして構成することもできます。また、Shielded VMをGuarded Hostに展開することもできます(画面9)。

画面9 画面9 Shielded VMをGuarded Hostに展開する。画面の「Guardedhost01」はGuarded Host、それ以外はGuarded Hostではない

シールド済み(署名付き)仮想ハードディスク

 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のテンプレートからの仮想マシンの作成ウィザードで指定します。

画面10 画面10 Shielded VMのテンプレート用の仮想ハードディスクに署名して暗号化するためのウィザード(TemplateDiskWizard.exe)
画面11 画面11 シールドした仮想ハードディスクをVirtual Machine Managerのライブラリに保存すると、シールド済み(Shielded:Yes)と認識される

 いかがでしたでしょうか。登場したばかりで分かりにくいHost Guardian Serviceですが、実際に動いている画面を見ることで、少しは理解が進むのではないでしょうか。筆者も実際に試してみて、ようやく理解できたような気がします。

「vNextに備えよ! 次期Windows Serverのココに注目」バックナンバー

筆者紹介

山市 良(やまいち りょう)

岩手県花巻市在住。Microsoft MVP:Hyper-V(Oct 2008 - Sep 2015)。SIer、IT出版社、中堅企業のシステム管理者を経て、フリーのテクニカルライターに。マイクロソフト製品、テクノロジを中心に、IT雑誌、Webサイトへの記事の寄稿、ドキュメント作成、事例取材などを手がける。個人ブログは『山市良のえぬなんとかわーるど』。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。