보호된 호스트 문제 해결

이 문서에서는 보호된 패브릭에서 보호된 Hyper-V 호스트를 배포하거나 운영할 때 발생하는 일반적인 문제에 대한 해결 방법을 설명합니다.

적용 대상: Windows Server 2022, Windows Server 2019, Windows Server 2016

문제의 본질을 잘 모르는 경우 먼저 Hyper-V 호스트에서 보호된 패브릭 진단 실행하여 잠재적인 원인을 좁혀 보세요.

보호된 호스트 기능

Hyper-V 호스트에 문제가 있는 경우 먼저 호스트 보호자 Hyper-V 지원 기능이 설치되어 있는지 확인합니다. 이 기능이 없으면 Hyper-V 호스트에 증명을 전달하고 보호된 VM을 프로비전할 수 있는 몇 가지 중요한 구성 설정 및 소프트웨어가 없습니다.

기능이 설치된 경우 검사 하려면 서버 관리자 사용하거나 관리자 권한 PowerShell 창에서 다음 cmdlet을 실행합니다.

Get-WindowsFeature HostGuardian

기능이 설치되어 있지 않으면 다음 PowerShell cmdlet을 사용하여 설치합니다.

Install-WindowsFeature HostGuardian -Restart

증명 실패

호스트가 호스트 보호 서비스와 증명을 전달하지 않으면 보호된 VM을 실행할 수 없습니다. 해당 호스트의 Get-HgsClientConfiguration 출력에는 해당 호스트가 증명에 실패한 이유에 대한 정보가 표시됩니다.

아래 표에서는 AttestationStatus 필드에 나타날 수 있는 값과 적절한 경우 잠재적인 다음 단계를 설명합니다.

AttestationStatus 설명
만료됨 호스트가 이전에 증명을 통과했지만 발급된 상태 인증서가 만료되었습니다. 호스트 및 HGS 시간이 동기화되어 있는지 확인합니다.
InsecureHostConfiguration 호스트는 HGS에 구성된 증명 정책을 준수하지 않아 증명을 통과하지 못했습니다. 자세한 내용은 AttestationSubStatus 테이블을 참조하세요.
구성되지 않음 호스트는 증명 및 키 보호에 HGS를 사용하도록 구성되지 않았습니다. 대신 로컬 모드로 구성됩니다. 이 호스트가 보호된 패브릭에 있는 경우 Set-HgsClientConfiguration 을 사용하여 HGS 서버에 대한 URL을 제공합니다.
전달 호스트가 증명을 전달했습니다.
TransientError 네트워킹, 서비스 또는 기타 임시 오류로 인해 마지막 증명 시도가 실패했습니다. 마지막 작업을 다시 시도합니다.
TpmError TPM 오류로 인해 호스트가 마지막 증명 시도를 완료할 수 없습니다. 자세한 내용은 TPM 로그를 참조하세요.
UnauthorizedHost 호스트는 보호된 VM을 실행할 권한이 없기 때문에 증명을 통과하지 못했습니다. 호스트가 보호된 VM을 실행하기 위해 HGS에서 신뢰할 수 있는 보안 그룹에 속하는지 확인합니다.
알 수 없음 호스트는 아직 HGS를 사용하여 테스트하려고 시도하지 않았습니다.

AttestationStatusInsecureHostConfiguration으로 보고되면 하나 이상의 이유가 AttestationSubStatus 필드에 채워집니다. 아래 표에서는 AttestationSubStatus의 가능한 값과 문제를 resolve 방법에 대한 팁을 설명합니다.

AttestationSubStatus 의미 및 수행할 사항
BitLocker 호스트의 OS 볼륨은 BitLocker에 의해 암호화되지 않습니다. 이를 resolve OS 볼륨에서 BitLocker를 사용하도록 설정하거나 HGS에서 BitLocker 정책을 사용하지 않도록 설정합니다.
CodeIntegrityPolicy 호스트가 코드 무결성 정책을 사용하도록 구성되지 않았거나 HGS 서버에서 신뢰할 수 있는 정책을 사용하지 않습니다. 코드 무결성 정책이 구성되었는지, 호스트가 다시 시작되었는지, 정책이 HGS 서버에 등록되었는지 확인합니다. 자세한 내용은 코드 무결성 정책 만들기 및 적용을 참조하세요.
DumpsEnabled 호스트는 HGS 정책에서 허용되지 않는 크래시 덤프 또는 라이브 메모리 덤프를 허용하도록 구성됩니다. 이 resolve 호스트에서 덤프를 사용하지 않도록 설정합니다.
DumpEncryption 호스트는 크래시 덤프 또는 라이브 메모리 덤프를 허용하도록 구성되지만 해당 덤프를 암호화하지는 않습니다. 호스트에서 덤프를 사용하지 않도록 설정하거나 덤프 암호화를 구성합니다.
DumpEncryptionKey 호스트는 덤프를 허용 및 암호화하도록 구성되었지만 HGS에 알려진 인증서를 사용하여 암호화하지는 않습니다. 이 resolve 호스트에서 덤프 암호화 키를 업데이트하거나 HGS에 키를 등록합니다.
FullBoot 호스트가 절전 상태 또는 최대 절전 모드에서 다시 시작되었습니다. 호스트를 다시 시작하여 클린 전체 부팅을 허용합니다.
HibernationEnabled 호스트는 HGS 정책에서 허용되지 않는 최대 절전 모드 파일을 암호화하지 않고 최대 절전 모드를 허용하도록 구성됩니다. 최대 절전 모드를 사용하지 않도록 설정하고 호스트를 다시 시작하거나 덤프 암호화를 구성합니다.
HypervisorEnforcedCodeIntegrityPolicy 호스트는 하이퍼바이저 적용 코드 무결성 정책을 사용하도록 구성되지 않았습니다. 코드 무결성이 하이퍼바이저에서 사용하도록 설정, 구성 및 적용되는지 확인합니다. 자세한 내용은 Device Guard 배포 가이드를 참조하세요.
이오무 섬 호스트의 가상화 기반 보안 기능은 HGS 정책에 필요한 대로 직접 메모리 액세스 공격 방지를 위해 IOMMU 디바이스를 요구하도록 구성되지 않습니다. 호스트에 IOMMU가 있고, 사용하도록 설정되어 있는지, VBS를 시작할 때 Device Guard가 DMA 보호를 요구하도록 구성되어 있는지 확인합니다.
PagefileEncryption 호스트에서 페이지 파일 암호화를 사용할 수 없습니다. 이를 resolve 페이지 파일 암호화를 사용하도록 설정하려면 를 실행 fsutil behavior set encryptpagingfile 1 합니다. 자세한 내용은 fsutil 동작을 참조하세요.
SecureBoot 보안 부팅은 이 호스트에서 사용하도록 설정되지 않았거나 Microsoft 보안 부팅 템플릿을 사용하지 않습니다. Microsoft 보안 부팅 템플릿을 사용하여 보안 부팅을 사용하도록 설정하여 이 문제를 resolve.
SecureBootSettings 이 호스트의 TPM 기준은 HGS에서 신뢰할 수 있는 TPM 기준과 일치하지 않습니다. 이는 UEFI 시작 기관, DBX 변수, 디버그 플래그 또는 사용자 지정 보안 부팅 정책이 새 하드웨어 또는 소프트웨어를 설치하여 변경되는 경우에 발생할 수 있습니다. 이 컴퓨터의 현재 하드웨어, 펌웨어 및 소프트웨어 구성을 신뢰하는 경우 새 TPM 기준을 캡처 하고 HGS에 등록할 수 있습니다.
TcgLogVerification TCG 로그(TPM 기준)를 가져오거나 확인할 수 없습니다. 이는 호스트의 펌웨어, TPM 또는 기타 하드웨어 구성 요소에 문제가 있음을 나타낼 수 있습니다. 호스트가 Windows를 부팅하기 전에 PXE 부팅을 시도하도록 구성된 경우 오래된 NBP(Net Boot Program)로 인해 이 오류가 발생할 수도 있습니다. PXE 부팅이 사용하도록 설정된 경우 모든 NBP가 최신 상태인지 확인합니다.
VirtualSecureMode 가상화 기반 보안 기능이 호스트에서 실행되고 있지 않습니다. VBS를 사용하도록 설정하고 시스템이 구성된 플랫폼 보안 기능을 충족하는지 확인합니다. VBS 요구 사항에 대한 자세한 내용은 Device Guard 설명서를 참조하세요.

최신 TLS

그룹 정책을 배포했거나 TLS 1.0을 사용하지 않도록 Hyper-V 호스트를 구성한 경우 보호된 VM을 시작하려고 할 때 "호스트 보호 서비스 클라이언트가 통화 프로세스를 대신하여 키 보호기를 래핑 해제하지 못했습니다." 오류가 발생할 수 있습니다. 이는 HGS 서버와 지원되는 TLS 버전을 협상할 때 시스템 기본 TLS 버전이 고려되지 않는 .NET 4.6의 기본 동작 때문입니다.

이 동작을 해결하려면 다음 두 명령을 실행하여 모든 .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차 버전을 참조하세요.