증명 없이 SQL Server에서 보안 Enclave를 사용하는 Always Encrypted에 대한 플랜
적용 대상: SQL Server 2019(15.x) 이상 - Windows만 해당
증명 없이 SQL Server에서 보안 Enclave를 사용하는 Always Encrypted를 설정하면 이 기능을 쉽게 시작할 수 있습니다. 그러나 프로덕션 환경에서 보안 Enclave를 사용하는 경우 OS 관리자에 대한 보호 수준이 증명 없이 감소합니다. 예를 들어 악의적인 OS 관리자가 Enclave 내에서 실행되는 SQL Server 라이브러리를 변조한 경우 클라이언트 애플리케이션에서 이를 감지할 수 없습니다. 이러한 공격에 대해 우려하는 경우 호스트 보호 서비스를 사용하여 증명을 설정하는 것이 좋습니다. 자세한 내용은 호스트 보호 서비스 증명에 대한 플랜을 참조하세요.
SQL Server에서 보안 Enclave를 사용한 Always Encrypted는 Windows 하이퍼바이저를 사용하며 특별한 하드웨어를 요구하지 않는 소프트웨어 기반 기술인 VBS(가상화 기반 보안) Enclave(가상화 기반 보안 보안 모드 또는 VSM Enclave라고도 함)를 사용합니다.
참고 항목
SQL Server가 VM에 배포되면 VBS Enclave는 VM 내의 공격으로부터 데이터를 보호하는 데 도움이 됩니다. 단, VBS Enclave는 호스트에서 시작된 권한 있는 시스템 계정을 사용하여 공격으로부터 어떠한 보호도 제공하지 않습니다. 예를 들어 호스트 컴퓨터에서 생성된 VM의 메모리 덤프에는 Enclave의 메모리가 포함될 수 있습니다.
필수 조건
SQL Server를 실행하는 컴퓨터는 SQL Server 설치 요구 사항과 Hyper-V 하드웨어 요구 사항을 모두 충족해야 합니다.
요구 사항은 다음과 같습니다.
SQL Server 2019(15.x) 이상
Windows 10 이상 또는 Windows Server 2019 이상
가상화 기술에 대한 CPU 지원:
- Extended Page Tables이 있는 Intel VT-x.
- AMD-V의 신속한 가상화 인덱싱
- VM에서 SQL Server를 실행하는 경우:
- Azure의 경우 2세대 VM 크기(권장) 또는 중첩 가상화가 적용된 1세대 VM 크기를 사용합니다. 어떤 1세대 VM 크기가 중첩 가상화를 지원하는지 확인하려면 개별 VM 크기 문서를 참조하세요.
- Hyper-V 2016 이상(Azure 외부)에서는 VM이 2세대 VM(권장)인지 확인하세요. 적어도 중첩 가상화가 적용된 1세대 VM이어야 합니다. 자세한 내용은 Hyper-V에 1 또는 2세대 가상 머신을 만들어야 하나요? 및 중첩 가상화 구성을 참조하세요.
- VMware 설명서에 설명된 대로 VMWare vSphere 6.7 이상에서 VM에 대한 가상화 기반 보안 지원을 사용합니다.
- 다른 하이퍼바이저 및 퍼블릭 클라우드는 VBS Enclave를 사용한 Always Encrypted를 사용하도록 설정하는 중첩된 가상화 기능도 지원할 수 있습니다. 호환성 및 구성 지침은 가상화 솔루션의 설명서를 확인하세요.
VBS(가상화 기반 보안)를 사용하도록 설정하고 실행해야 합니다.
도구 요구 사항
클라이언트 드라이버 요구 사항
증명 없이 보안 Enclave 사용을 지원하는 클라이언트 드라이버 버전에 대한 자세한 내용은 보안 Enclave를 사용하는 Always Encrypted를 사용한 애플리케이션 개발을 참조하세요.
VBS가 실행 중인지 확인
참고 항목
이 단계는 SQL Server 컴퓨터 관리자가 수행해야 합니다.
VBS가 실행 중인지 확인하려면 msinfo32.exe
를 실행하여 시스템 정보 도구를 열고 시스템 요약 아래쪽에서 Virtualization-based security
항목을 찾습니다.
확인할 첫 번째 항목 Virtualization-based security
는 다음과 같은 세 가지 값을 가질 수 있는 항목입니다 .
Running
은 VBS가 올바르게 구성되었고 성공적으로 시작할 수 있었다는 것을 의미합니다.Enabled but not running
은 VBS가 실행하도록 구성되었지만, 하드웨어에 VBS를 실행할 최소 보안 요구 사항이 없음을 의미합니다. IOMMU 같은 선택적 프로세서 기능을 사용하도록 설정하려면 BIOS 또는 UEFI에서 하드웨어 구성을 변경해야 할 수 있으며, 하드웨어가 실제로 필요한 기능을 지원하지 않는 경우에는 VBS 보안 요구 사항을 낮춰야 할 수 있습니다. 자세히 알아보려면 이 섹션을 계속 읽어보세요.Not enabled
는 VBS가 실행하도록 구성되지 않았음을 의미합니다.
VBS 사용
VBS를 사용하도록 설정하지 않은 경우 관리자 권한 PowerShell 콘솔에서 다음 명령을 실행하여 사용하도록 설정합니다.
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1
레지스트리를 변경한 후 SQL Server 컴퓨터를 다시 시작하고 VBS가 다시 실행 중인지 확인합니다.
VBS를 사용하도록 설정하는 다른 방법은 코드 무결성의 가상화 기반 보호 사용을 참조하세요.
실행 중이 아닌 경우 VBS 실행
컴퓨터에서 실행되고 있지 않아 VBS가 활성화된 경우 Virtualization-based security
속성을 확인합니다. Required Security Properties
항목의 값을 Available Security Properties
항목의 값과 비교합니다. 필요한 속성은 VBS를 실행할 때 사용할 수 있는 보안 속성의 하위 집합이거나 같아야 합니다. 보안 속성의 중요성은 다음과 같습니다.
Base virtualization support
는 하이퍼바이저를 실행하는 데 필요한 최소 하드웨어 기능을 나타내기 때문에 항상 필요합니다.Secure Boot
는 권장되지만 필수는 아닙니다. 보안 부팅은 UEFI 초기화가 완료된 직후 Microsoft 서명 부팅 로더를 실행하도록 요구하여 루트킷으로부터 보호합니다.DMA Protection
는 권장되지만 필수는 아닙니다. DMA 보호는 IOMMU를 사용하여 직접 메모리 액세스 공격으로부터 VBS 및 Enclave 메모리를 보호합니다. 프로덕션 환경에서는 항상 DMA 보호와 함께 컴퓨터를 사용해야 합니다. 개발 또는 테스트 환경에서는 DMA 보호 요구 사항을 제거해도 됩니다. SQL Server 인스턴스가 가상화되면 DMA 보호를 사용하지 않을 가능성이 크며 VBS를 실행하려면 요구 사항을 제거해야 합니다.
VBS에 필요한 보안 기능을 낮추기 전에 OEM 또는 클라우드 서비스 공급자에게 문의하여 UEFI 또는 BIOS에서 누락된 플랫폼 요구 사항을 사용하도록 설정하는 방법이 있는지 확인합니다(예: 보안 부팅, Intel VT-d 또는 AMD IOV 사용).
VBS에 필요한 플랫폼 보안 기능을 변경하려면 관리자 권한의 PowerShell 콘솔에서 다음 명령을 실행합니다.
# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 1
레지스트리를 변경한 후 SQL Server 컴퓨터를 다시 시작하고 VBS가 다시 실행 중인지 확인합니다.
회사에서 컴퓨터를 관리하는 경우, 다시 시작한 후 그룹 정책 또는 Microsoft Endpoint Manager가 레지스트리 키 변경 내용을 재정의할 수 있습니다. IT 지원 센터에 문의하여 VBS 구성을 관리하는 정책을 배포했는지 확인하세요.
다음 단계
- 환경이 위의 필수 조건을 충족하는지 확인했으면 SQL Server에서 보안 Enclave 구성을 참조하세요.