次の方法で共有


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

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

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

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

保護されたホスト機能

Hyper-V ホストで問題が発生している場合は、まず、 Host Guardian 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 を指定します。
Passed ホストが構成証明に合格しました。
TransientError ネットワーク、サービス、またはその他の一時的なエラーが原因で、最後の構成証明の試行が失敗しました。 最後の操作を再試行してください。
TpmError TPM でエラーが発生したため、ホストは最後の構成証明の試行を完了できませんでした。 詳細については、TPM ログを参照してください。
UnauthorizedHost ホストは、シールドされた VM の実行が承認されていないため、構成証明に合格しませんでした。 シールドされた VM を実行するために、ホストが HGS に信頼されたセキュリティ グループに属していることを確認します。
Unknown ホストはまだ 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 behavior」を参照してください。
SecureBoot セキュア ブートは、このホストで有効になっていないか、Microsoft セキュア ブート テンプレートを使用していません。 この問題を解決するには、Microsoft セキュア ブート テンプレートでセキュア ブートを有効化します。
SecureBootSettings このホストの TPM ベースラインは、HGS によって信頼されている TPM ベースラインと一致しません。 これは、新しいハードウェアまたはソフトウェアのインストールによって、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 を起動しようとすると、"ホスト ガーディアン サービスクライアントが、呼び出し元のプロセスに代わってキーの保護機能のラップを解除できませんでした" というエラーが発生することがあります。 これは、サポートされている 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 版」を参照してください。