保護されたホストのトラブルシューティング

この記事では、保護されたファブリックで保護された Hyper-V ホストを展開または操作するときに発生する一般的な問題の解決策について説明します。

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

問題の性質がわからない場合は、まず、Hyper-V ホストで保護されたファブリック 診断を実行して、潜在的な原因を絞り込んでみます。

保護されたホスト機能

Hyper-V ホストで問題が発生している場合は、まず ホスト ガーディアン Hyper-V サポート 機能がインストールされていることを確認してください。 この機能がないと、Hyper-V ホストには、構成証明に合格し、シールドされた VM をプロビジョニングできる重要な構成設定とソフトウェアが不足しています。

機能がインストールされているかどうかをチェックするには、サーバー マネージャーを使用するか、管理者特権の PowerShell ウィンドウで次のコマンドレットを実行します。

Get-WindowsFeature HostGuardian

機能がインストールされていない場合は、次の PowerShell コマンドレットを使用してインストールします。

Install-WindowsFeature HostGuardian -Restart

構成証明エラー

ホストがホスト ガーディアン サービスで構成証明に合格しない場合、シールドされた VM を実行できません。 そのホストの Get-HgsClientConfiguration の 出力には、そのホストが構成証明に失敗した理由に関する情報が表示されます。

次の表は、 AttestationStatus フィールドに表示される可能性がある値と、必要に応じて次のステップの可能性について説明しています。

AttestationStatus 説明
期限切れ ホストは以前に構成証明に合格しましたが、発行された正常性証明書の有効期限が切れています。 ホストと HGS の時刻が同期されていることを確認します。
InsecureHostConfiguration ホストは、HGS で構成された構成証明ポリシーに準拠していないため、構成証明に合格しませんでした。 詳細については、AttestationSubStatus テーブルを参照してください。
NotConfigured ホストは、構成証明とキー保護に HGS を使用するように構成されていません。 代わりに、ローカル モード用に構成されています。 このホストが保護されたファブリック内にある場合は、 Set-HgsClientConfiguration を使用して、HGS サーバーの URL を提供します。
渡さ れた ホストは構成証明を渡しました。
TransientError ネットワーク、サービス、またはその他の一時的なエラーが原因で、最後の構成証明の試行が失敗しました。 最後の操作を再試行してください。
TpmError TPM でエラーが発生したため、ホストは最後の構成証明の試行を完了できませんでした。 詳細については、TPM ログに関するページを参照してください。
UnauthorizedHost ホストは、シールドされた VM の実行が承認されていないため、構成証明に合格しませんでした。 ホストが、シールドされた VM を実行するために HGS によって信頼されているセキュリティ グループに属していることを確認します。
不明 ホストはまだ HGS で構成証明を試行していません。

AttestationStatusInsecureHostConfiguration として報告されると、[AttestationSubStatus] フィールドに 1 つ以上の理由が設定されます。 次の表は、AttestationSubStatus で考えられる値と、問題を解決する方法に関するヒントを示しています。

AttestationSubStatus それが何を意味し、何をすべきか
BitLocker ホストの OS ボリュームは BitLocker によって暗号化されません。 これを解決するには、OS ボリュームで BitLocker を有効 にするか、 HGS で BitLocker ポリシーを無効にします
CodeIntegrityPolicy ホストは、コード整合性ポリシーを使用するように構成されていないか、HGS サーバーによって信頼されているポリシーを使用していません。 コード整合性ポリシーが構成されていること、ホストが再起動されていること、およびポリシーが HGS サーバーに登録されていることを確認します。 詳細については、「 コード整合性ポリシーを作成して適用する」を参照してください。
DumpsEnabled ホストは、HGS ポリシーで許可されていないクラッシュ ダンプまたはライブ メモリ ダンプを許可するように構成されています。 これを解決するには、ホストのダンプを無効にします。
DumpEncryption ホストは、クラッシュ ダンプまたはライブ メモリ ダンプを許可するように構成されていますが、これらのダンプは暗号化されません。 ホストでダンプを無効にするか、 ダンプ暗号化を構成します。
DumpEncryptionKey ホストはダンプを許可および暗号化するように構成されていますが、HGS に認識されている証明書を使用して暗号化することはできません。 これを解決するには、ホスト 上のダンプ暗号化キーを更新 するか 、HGS にキーを登録します。
FullBoot ホストはスリープ状態または休止状態から再開しました。 ホストを再起動して、クリーンのフル ブートを許可します。
HibernationEnabled ホストは、HGS ポリシーでは許可されていない休止状態ファイルを暗号化せずに休止状態を許可するように構成されています。 休止状態を無効にしてホストを再起動するか、 ダンプ暗号化を構成します
HypervisorEnforcedCodeIntegrityPolicy ホストは、ハイパーバイザーによって強制されるコード整合性ポリシーを使用するように構成されていません。 コードの整合性がハイパーバイザーによって有効、構成、および適用されていることを確認します。 詳細については、「 Device Guard デプロイ ガイド」を参照してください。
Iommu ホストの仮想化ベースのセキュリティ機能は、HGS ポリシーで必要に応じて、ダイレクト メモリ アクセス攻撃に対する保護のために IOMMU デバイスを必要とするように構成されていません。 ホストに IOMMU があり、有効になっていることを確認し、VBS の起動時 に DMA 保護を必要とするように Device Guard が構成されていることを確認します。
PagefileEncryption ホストでページ ファイルの暗号化が有効になっていません。 これを解決するには、 を実行 fsutil behavior set encryptpagingfile 1 してページ ファイルの暗号化を有効にします。 詳細については、「 fsutil の動作」を参照してください。
SecureBoot セキュア ブートは、このホストで有効になっていないか、Microsoft Secure Boot テンプレートを使用していません。 Microsoft Secure Boot テンプレートでセキュア ブートを有効にして、この問題を解決します。
SecureBootSettings このホストの TPM ベースラインは、HGS によって信頼されているものと一致しません。 これは、新しいハードウェアまたはソフトウェアをインストールすることで、UEFI 起動機関、DBX 変数、デバッグ フラグ、またはカスタム セキュア ブート ポリシーが変更された場合に発生する可能性があります。 このマシンの現在のハードウェア、ファームウェア、およびソフトウェア構成を信頼する場合は、 新しい TPM ベースラインをキャプチャ して HGS に登録できます。
TcgLogVerification TCG ログ (TPM ベースライン) を取得または検証できません。 これは、ホストのファームウェア、TPM、またはその他のハードウェア コンポーネントに問題があることを示している可能性があります。 ホストが Windows を起動する前に PXE ブートを試みるために構成されている場合は、古い Net Boot Program (NBP) もこのエラーを引き起こす可能性があります。 PXE ブートが有効になっているときに、すべての NBP が最新の状態であることを確認します。
VirtualSecureMode 仮想化ベースのセキュリティ機能がホスト上で実行されていません。 VBS が有効になっていることを確認し、システムが構成されたプラットフォーム セキュリティ機能を満たしていることを確認します。 VBS 要件の詳細については、 Device Guard のドキュメントを参照してください

モダン TLS

グループ ポリシーを展開した場合、または TLS 1.0 を使用しないように Hyper-V ホストを構成した場合は、シールドされた VM を起動しようとしたときに、"Host Guardian Service Client が呼び出し元のプロセスに代わってキー 保護機能のラップを解除できませんでした" というエラーが発生する可能性があります。 これは、サポートされている TLS バージョンを HGS サーバーとネゴシエートするときに、システムの既定の TLS バージョンが考慮されない .NET 4.6 の既定の動作が原因です。

この動作を回避するには、次の 2 つのコマンドを実行して、すべての .NET アプリでシステムの既定の TLS バージョンを使用するように .NET を構成します。

reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:64
reg add HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 /v SystemDefaultTlsVersions /t REG_DWORD /d 1 /f /reg:32

警告

システムの既定の TLS バージョン設定は、コンピューター上のすべての .NET アプリに影響します。 運用環境にデプロイする前に、分離された環境でレジストリ キーをテストしてください。

.NET 4.6 と TLS 1.0 の詳細については、「 TLS 1.0 問題の解決(第 2 版)」を参照してください。