Azure Virtual Machines의 SQL Server에 대한 보안 고려 사항

적용 대상:Azure VM 기반 SQL Server

이 문서에는 Azure VM(가상 머신)에서 SQL Server 인스턴스로의 보안 액세스를 설정하는 데 도움이 되는 전반적인 보안 지침이 포함되어 있습니다.

Azure는 가상 머신에서 실행되는 SQL Server로 호환되는 솔루션을 제작할 수 있도록 하는 몇 가지 산업 규정 및 표준을 준수합니다. Azure 규정 준수에 대한 자세한 내용은 Azure 보안 센터를 참조하세요.

먼저 SQL ServerAzure VM에 대한 보안 모범 사례를 검토한 다음 이 문서에서 Azure VM의 SQL Server에 구체적으로 적용되는 모범 사례를 검토합니다.

SQL Server VM 모범 사례에 대한 자세한 내용은 이 시리즈의 다른 문서인 검사 목록, VM 크기, HADR 구성기준선 수집을 참조하세요.

검사 목록

이 섹션의 다음 검사 목록을 검토하여 문서의 나머지 부분에서 더 자세히 다루는 보안 모범 사례에 대한 간략한 개요를 확인합니다.

SQL Server 기능은 데이터 수준에서 보안 방법을 제공하며 클라우드 기반 및 하이브리드 솔루션을 위한 인프라 수준에서 심층 방어를 달성하는 방법입니다. 또한 Azure 보안 측정값을 사용하여 중요한 데이터를 암호화하고, 바이러스 및 맬웨어로부터 가상 머신을 보호하고, 네트워크 트래픽을 보호하고, 위협을 식별 및 검색하고, 규정 준수 요구 사항을 충족하고, 하이브리드 클라우드의 모든 보안 요구 사항에 대한 단일 관리 및 보고 방법을 제공합니다.

  • 클라우드용 Microsoft Defender를 사용하여 데이터 환경의 보안 태세를 평가하고 작업을 수행합니다. Azure ATP(Advanced Threat Protection)과 같은 기능은 하이브리드 워크로드 전반에 걸쳐 활용되어 보안 평가를 개선하고 위험에 대응할 수 있는 기능을 제공할 수 있습니다. SQL IaaS 에이전트 확장으로 SQL Server VM을 등록하면 Azure Portal의 SQL 가상 머신 리소스 내에서 클라우드용 Microsoft Defender 평가가 표시됩니다.
  • SQL용 Microsoft Defender를 사용하여 잠재적인 데이터베이스 취약성을 발견 및 완화하고 SQL Server 인스턴스 및 데이터베이스 계층에 위협이 될 수 있는 비정상적인 작업을 검색합니다.
  • 취약성 평가는 SQL Server 환경에 대한 잠재적인 위험을 발견하고 수정할 수 있는 SQL용 Microsoft Defender의 일부입니다. 보안 상태에 대한 표시 유형을 제공하고 보안 문제를 해결하기 위한 실행 가능한 단계를 포함합니다.
  • Azure 기밀 VM을 사용하여 호스트 운영자 액세스에 대해 사용 중인 데이터 및 미사용 데이터 보호를 강화합니다. Azure 기밀 VM을 사용하면 중요한 데이터를 클라우드에 안전하게 저장하고 엄격한 규정 준수 요구 사항을 충족할 수 있습니다.
  • SQL Server 2022를 사용하는 경우 Microsoft Entra 인증을 사용하여 SQL Server 인스턴스에 연결하는 것이 좋습니다.
  • Azure Advisor는 리소스 구성 및 사용량 원격 분석을 수행한 다음, Azure 리소스의 비용 효율성, 성능, 고가용성 및 보안을 향상시키는 데 도움이 되는 해결 방법을 권장합니다. 가상 머신, 리소스 그룹 또는 구독 수준에서 Azure Advisor를 활용하여 모범 사례를 식별하고 적용하여 Azure 배포를 최적화합니다.
  • 규정 준수 및 보안상의 이유로 임시(로컬로 연결된 임시) 디스크의 암호화를 포함하여 암호화 키를 사용하여 데이터를 엔드투엔드 암호화해야 하는 경우 Azure Disk Encryption을 사용합니다.
  • Managed Disks는 기본적으로 Azure Storage 서비스 암호화를 사용하여 암호화됩니다. 여기서 암호화 키는 Azure에 저장된 Microsoft 관리형 키입니다.
  • 관리 디스크 암호화 옵션을 비교하려면 관리 디스크 암호화 비교 차트를 검토합니다.
  • 가상 머신에서 관리 포트를 닫아야 합니다. - 열린 원격 관리 포트는 VM을 인터넷 기반 공격으로 인한 높은 수준의 위험에 노출시킵니다. 이러한 공격은 자격 증명을 무차별적으로 대입하여 머신에 대한 관리자 액세스 권한을 획득하려고 시도합니다.
  • Azure Virtual Machines에 대해 JIT(Just-in-time) 액세스를 켭니다.
  • RDP(원격 데스크톱 프로토콜)를 통해 Azure Bastion을 사용합니다.
  • 원래 IP 주소를 기반으로 서버 액세스를 허용/거부하는 관리 FaaS(Firewall as a Service)인 Azure Firewall을 사용하여 포트를 잠그고 필요한 애플리케이션 트래픽만 허용합니다.
  • NSG(네트워크 보안 그룹)를 사용하여 Azure Virtual Networks에서 Azure 리소스로 들어오고 나가는 네트워크 트래픽 필터링
  • 애플리케이션 보안 그룹을 활용하여 웹 서버 및 데이터베이스 서버와 같은 유사한 기능을 가진 유사한 포트 필터링 요구 사항과 함께 서버를 그룹화합니다.
  • 웹 및 애플리케이션 서버의 경우 Azure DDoS(분산 서비스 거부) 보호를 활용합니다. DDoS 공격은 네트워크 리소스를 압도하고 고갈시키도록 설계되어 앱이 느려지거나 응답하지 않습니다. DDos 공격은 일반적으로 사용자 인터페이스를 대상으로 합니다. Azure DDoS 보호는 서비스 가용성에 영향을 미치기 전에 원치 않는 네트워크 트래픽을 삭제합니다.
  • VM 익스텐션을 사용하여 맬웨어 방지, 원하는 상태, 위협 탐지, 예방 및 치료를 처리하여 운영 체제, 컴퓨터 및 네트워크 수준에서 위협을 처리합니다.
  • Azure Policy를 사용하여 환경에 적용할 수 있는 비즈니스 규칙을 만듭니다. Azure 정책은 해당 리소스의 속성을 JSON 형식으로 정의된 규칙과 비교하여 Azure 리소스를 평가합니다.
  • 클라우드 설계자와 중앙 정보 기술 그룹은 Azure Blueprints를 통해 조직의 표준, 패턴 및 요구 사항을 구현하고 준수하는 반복 가능한 Azure 리소스 집합을 정의할 수 있습니다. Azure Blueprints는 Azure 정책과 다릅니다.

보안 모범 사례에 대한 자세한 내용은 SQL Server 보안 모범 사례SQL Server 보안 설정을 참조하세요.

컴퓨터의 Microsoft Defender for SQL

클라우드용 Microsoft Defender는 데이터 환경의 보안 태세를 개선할 기회를 평가하고 제공하도록 설계된 통합 보안 관리 시스템입니다. Microsoft Defender는 Azure VM 기반 SQL Server에 대해 머신에 있는 Microsoft Defender for SQL 보호를 제공합니다. SQL용 Microsoft Defender를 사용하여 잠재적인 데이터베이스 취약성을 검색 및 완화하고 SQL Server 인스턴스 및 데이터베이스 계층에 대한 위협을 나타낼 수 있는 비정상적인 작업을 검색합니다.

Microsoft Defender for SQL는 다음과 같은 이점을 제공합니다.

  • 취약성 평가는 SQL Server 환경에 대한 잠재적인 위험을 발견하고 수정할 수 있습니다. 보안 상태에 대한 표시 유형을 제공하고 보안 문제를 해결하기 위한 실행 가능한 단계를 포함합니다.
  • 클라우드용 Microsoft Defender에서 보안 점수룰 사용합니다.
  • 자세한 내용은 현재 사용 가능한 컴퓨팅데이터 권장 사항 목록을 검토합니다.
  • SQL Server VM을 SQL Server IaaS 에이전트 확장으로 등록하면 Azure Portal의 SQL 가상 머신 리소스에 대한 SQL용 Microsoft Defender 권장 사항이 표시됩니다.

포털 관리

SQL IaaS 에이전트 익스텐션을 사용하여 SQL Server VM을 등록한 후에는 Azure Portal에서 SQL 가상 머신 리소스를 사용하여 Azure Key Vault 통합 또는 SQL 인증 사용과 같은 다양한 보안 설정을 구성할 수 있습니다.

또한 컴퓨터에서 Microsoft Defender for SQL을 사용하도록 설정한 후에는 Azure Portal의 SQL 가상 머신 리소스 내에서 취약성 평가 및 보안 경고와 같은 클라우드 기능을 직접 볼 수 있습니다.

자세한 내용은 포털에서 SQL Server VM 관리를 참조하세요.

기밀 VM

Azure 기밀 VM은 호스트 운영자 액세스에 대한 게스트 OS의 보호를 강화하는 강력한 하드웨어 적용 경계를 제공합니다. Azure VM에서 SQL Server 기밀 VM 크기를 선택하면 추가 보호 계층이 제공되므로 중요한 데이터를 클라우드에 자신 있게 저장하고 엄격한 규정 준수 요구 사항을 충족할 수 있습니다.

Azure 기밀 VM은 프로세서에서 생성된 키를 사용하여 VM의 메모리를 암호화하는 SEV-SNP 기술이 탑재된 AMD 프로세서를 활용합니다. 이렇게 하면 사용 중인 데이터(SQL Server 프로세스의 메모리 내에서 처리되는 데이터)를 호스트 OS의 무단 액세스로부터 보호할 수 있습니다. 기밀 VM의 OS 디스크는 가상 머신의 TPM(신뢰할 수 있는 플랫폼 모듈) 칩에 바인딩된 키로 암호화하여 미사용 데이터에 대한 보호를 강화할 수도 있습니다.

자세한 배포 단계는 빠른 시작: 기밀 VM에 SQL Server 배포를 참조하세요.

디스크 암호화에 대한 권장 사항은 기밀 VM의 경우 다른 VM 크기와 다릅니다. 자세한 내용은 디스크 암호화를 참조하세요.

Microsoft Entra 인증

SQL Server 2022부터 Microsoft Entra ID(이전의 Azure Active Directory)를 사용하여 다음 인증 방법 중 하나로 SQL Server에 연결할 수 있습니다.

  • 암호는 Microsoft Entra 자격 증명을 사용하여 인증을 제공합니다.
  • MFA가 지원되는 유니버설에서 다단계 인증 추가
  • 통합에서 ADFS(Active Directory Federation Services)와 같은 페더레이션 공급자로 SSO(Single Sign-On) 환경 사용 설정
  • 서비스 주체로 Azure 애플리케이션에서 인증 가능
  • 관리 ID를 사용하면 Microsoft Entra ID가 할당된 애플리케이션에서 인증할 수 있습니다.

시작하려면 SQL Server VM에 대한 Microsoft Entra 인증 구성을 검토하세요.

Azure Advisor

Azure Advisor 는 Azure 배포를 최적화하기 위한 모범 사례를 따르는 데 도움이 되는 개인 설정된 클라우드 컨설턴트입니다. Azure Advisor는 리소스 구성 및 사용량 원격 분석을 수행한 다음, Azure 리소스의 비용 효율성, 성능, 고가용성 및 보안을 향상시키는 데 도움이 되는 해결 방법을 권장합니다. Azure Advisor는 가상 머신, 리소스 그룹 또는 구독 수준에서 평가할 수 있습니다.

Azure Key Vault 통합

TDE(투명한 데이터 암호화), CLE(열 수준 암호화)백업 암호화 등 여러 SQL Server 암호화 기능이 있습니다. 이러한 형태의 암호화는 암호화에 사용되는 암호화 키를 관리 및 저장해야 합니다. Azure Key Vault 서비스는 안전하고 가용성이 높은 위치에서 이러한 키의 보안 및 관리를 개선하도록 설계되었습니다. SQL Server 커넥터를 통해 SQL Server는 Azure Key Vault에서 이러한 키를 사용할 수 있습니다.

다음을 살펴보세요.

  • Azure Key Vault는 중앙 집중식 클라우드 위치에 애플리케이션 비밀을 저장하여 액세스 권한과 별도의 액세스 로깅을 안전하게 제어합니다.
  • Azure에 고유한 키를 가져올 때 Azure Key Vault에 비밀과 인증서를 저장하는 것이 좋습니다.
  • Azure Disk Encryption은 Azure Key Vault를 사용하여 키 디스크 암호화 키와 비밀을 제어하고 관리합니다.

Access Control

Azure 갤러리 이미지를 사용하여 SQL Server 가상 머신을 만들 때 SQL Server 연결 옵션은 로컬(VM 내부), 프라이빗(Virtual Network 내) 또는 공용(인터넷) 중에서 선택할 수 있게 해줍니다.

Diagram showing SQL Server connectivity.

최상의 보안을 위해 해당 시나리오에 대해 가장 제한적인 옵션을 선택합니다. 예를 들어 같은 VM에 있는 SQL Server에 액세스하는 애플리케이션을 실행 중인 경우 로컬이 가장 안전한 선택 사항입니다. SQL Server에 액세스해야 하는 Azure 애플리케이션을 실행 중인 경우 프라이빗은 지정된 Azure 가상 네트워크 내에 있는 SQL Server로의 통신만 보호합니다. SQL Server VM에 대한 공용(인터넷) 액세스가 필요한 경우 이 항목의 모범 사례를 따라 공격 노출 영역을 줄이도록 합니다.

포털에서 선택한 옵션은 VM NSG(네트워크 보안 그룹 )에 대해 인바운드 보안 규칙을 사용하여 가상 머신에 대한 네트워크 트래픽을 허용하거나 거부합니다. SQL Server 포트(기본값 1433)에 대한 트래픽을 허용하도록 인바운드 NSG 규칙을 수정하거나 새 인바운드 NSG 규칙을 만들 수 있습니다. 이 포트를 통해 통신할 수 있는 특정 IP 주소를 지정할 수도 있습니다.

Diagram showing network security group rules.

네트워크 트래픽을 제한하기 위한 NSG 규칙 외에 가상 컴퓨터에서 Windows 방화벽을 사용할 수도 있습니다.

클래식 배포 모델이 적용된 엔드포인트를 사용하는 경우 사용하지 않는 모든 엔드포인트를 가상 머신에서 제거합니다. 엔드포인트에서 ACL을 사용하는 방법에 대한 지침은 엔드포인트에 대한 ACL 관리를 참조하세요. Azure Resource Manager를 사용하는 VM에는 이렇게 할 필요가 없습니다.

Azure Virtual Machine에서 SQL Server 데이터베이스 엔진의 인스턴스에 대해 암호화된 연결 사용을 고려합니다. 서명된 인증서로 SQL Server 인스턴스를 구성합니다. 자세한 내용은 데이터베이스 엔진에 암호화된 연결 사용연결 문자열 구문을 참조하세요.

네트워크 연결 또는 경계를 보호할 때 다음 사항을 고려합니다.

  • Azure Firewall - 네트워크 리소스를 보호하기 위해 원래 IP 주소를 기반으로 서버 액세스를 허용/거부하는 상태 저장 관리 서비스로서의 방화벽(FaaS)입니다.
  • Azure DDoS(분산 서비스 거부) 보호 - DDoS 공격은 네트워크 리소스를 압도하고 고갈시켜 앱을 느리게 하거나 응답하지 않게 만듭니다. Azure DDoS 보호는 서비스 가용성에 영향을 미치기 전에 원치 않는 네트워크 트래픽을 삭제합니다.
  • NSG(네트워크 보안 그룹) - Azure Virtual Networks의 Azure 리소스에서 들어오고 나가는 네트워크 트래픽을 필터링합니다.
  • 애플리케이션 보안 그룹 - 포트 필터링 요구 사항이 유사한 서버를 그룹화하고 웹 서버와 같이 기능이 유사한 서버를 그룹화합니다.

디스크 암호화

이 섹션에서는 디스크 암호화에 대한 지침을 제공하지만 권장 사항은 Azure VM에 기존 SQL Server 배포하는지 또는 Azure 기밀 VM에 SQL Server를 배포하는지에 따라 달라집니다.

기존 VM

Azure 기밀 VM이 아닌 VM에 배포된 관리 디스크는 서버 쪽 암호화 및 Azure Disk Encryption을 사용합니다. 서버 쪽 암호화는 저장 데이터 암호화를 제공하고, 조직의 보안 및 규정 준수 약정에 맞게 데이터를 보호합니다. Azure Disk Encryption은 BitLocker 또는 DM-Crypt 기술을 사용하고 Azure Key Vault와 통합하여 OS 및 데이터 디스크를 모두 암호화합니다.

다음을 살펴보세요.

  • Azure Disk Encryption - Windows 및 Linux 가상 머신 모두에 대해 Azure Disk Encryption를 사용하여 가상 머신 디스크를 암호화합니다.
    • 규정 준수 및 보안 요구 사항에서 임시(로컬로 임시 연결) 디스크 암호화를 포함하여 암호화 키를 사용한 데이터의 종단 간 암호화를 요구할 경우 Azure Disk Encryption을 사용합니다.
    • ADE(Azure Disk Encryption)는 Windows의 업계 표준 BitLocker 기능과 Linux의 DM-Crypt 기능을 활용하여 OS 및 데이터 디스크 암호화를 제공합니다.
  • 관리 디스크 암호화
  • 관리 디스크 암호화 옵션을 비교하려면 관리 디스크 암호화 비교 차트를 검토합니다.

Azure 기밀 VM

Azure 기밀 VM을 사용하는 경우 다음 권장 사항을 고려하여 보안 이점을 최대화합니다.

  • OS 디스크 암호화 키를 가상 머신의 TPM(신뢰할 수 있는 플랫폼 모듈) 칩에 바인딩하고 보호된 디스크 콘텐츠를 VM에서만 액세스할 수 있도록 하는 기밀 OS 디스크 암호화를 구성합니다.
  • BitLocker를 사용하여 데이터 디스크(데이터베이스 파일, 로그 파일 또는 백업 파일이 포함된 모든 디스크)를 암호화하고 자동 잠금 해제를 사용하도록 설정합니다. 자세한 내용은 manage-bde autounlock 또는 EnableBitLockerAutoUnlock을 검토하세요. 자동 잠금 해제는 암호화 키가 OS 디스크에 저장되도록 합니다. 기밀 OS 디스크 암호화와 함께 VM 디스크에 저장된 미사용 데이터를 무단 호스트 액세스로부터 보호합니다.

신뢰할 수 있는 시작

2세대 가상 머신을 배포할 때 고급 및 지속적인 공격 기술로부터 보호하는 신뢰할 수 있는 시작을 사용하도록 설정하는 옵션이 있습니다.

신뢰할 수 있는 시작을 사용하면 다음을 수행할 수 있습니다.

  • 확인된 부트 로더, OS 커널 및 드라이버를 사용하여 가상 머신을 안전하게 배포합니다.
  • 가상 머신에서 키, 인증서 및 암호를 안전하게 보호합니다.
  • 전체 부팅 체인의 무결성에 대한 인사이트와 확신을 얻으세요.
  • 워크로드를 신뢰할 수 있고 확인할 수 있는지 확인합니다.

다음 기능은 Azure VM 기반 SQL Server에 대해 신뢰할 수 있는 시작을 사용하도록 설정하는 경우 현재 지원되지 않습니다.

  • Azure Site Recovery
  • Ultra disks
  • 관리형 이미지
  • 중첩된 가상화

계정 관리

공격자가 쉽게 계정 이름이나 암호를 추측하기를 원하지는 않을 것입니다. 도움이 되도록 다음 팁을 사용하세요.

  • 로컬 관리자 계정의 이름을 Administrator가 아닌 다른 이름으로 만듭니다.

  • 모든 계정에 복잡하고 강력한 암호를 사용합니다. 강력한 암호를 만드는 방법에 대한 자세한 내용은 강력한 암호 만들기 문서를 참조하세요.

  • 기본적으로 Azure는 SQL Server 가상 머신을 설치하는 동안 Windows 인증을 선택합니다. 따라서 SA 로그인이 사용하지 않도록 설정되고 설치 프로그램에서 암호를 할당합니다. SA 로그인을 사용하거나 사용하도록 설정하지 않는 것이 좋습니다. SQL 로그인이 있어야 하는 경우 다음 전략 중 하나를 사용합니다.

    • sysadmin 멤버 자격이 있는 고유한 이름을 가진 SQL 계정을 만듭니다. 포털에서 프로비전하는 동안 SQL 인증을 사용하도록 설정하여 이렇게 할 수 있습니다.

      프로비전하는 동안 SQL 인증을 사용하도록 설정하지 않으면 인증 모드를 수동으로 SQL Server 및 Windows 인증 모드로 변경해야 합니다. 자세한 내용은 서버 인증 모드 변경을 참조하세요.

    • SA 로그인을 사용해야 하는 경우 프로비전한 후 로그인을 사용하도록 설정하고 새로운 강력한 암호를 할당합니다.

참고 항목

Microsoft Entra Domain Services를 사용하여 SQL Server VM에 연결하는 것은 지원되지 않습니다. 대신 Active Directory 도메인 계정을 사용하세요.

감사 및 보고

Log Analytics를 사용한 감사는 이벤트를 문서화하고 보안 Azure Blob Storage 계정의 감사 로그에 기록합니다. Log Analytics를 사용하여 감사 로그의 세부 정보를 해독할 수 있습니다. 감사를 사용하면 데이터를 별도의 스토리지 계정에 저장하고 선택한 모든 이벤트의 감사 내역을 만들 수 있습니다. 또한 감사 로그에 대해 Power BI를 활용하여 데이터에 대한 빠른 분석과 인사이트를 제공하고 규정 준수에 대한 보기를 제공할 수 있습니다. VM 및 Azure 수준의 감사에 대한 자세한 내용은 Azure 보안 로깅 및 감사를 참조하세요.

가상 머신 수준 액세스

컴퓨터의 관리 포트 닫기 - 원격 관리 포트가 열려 있으면 VM이 인터넷 기반 공격으로 인해 높은 수준의 위험에 노출됩니다. 이러한 공격은 자격 증명을 무차별적으로 대입하여 머신에 대한 관리자 액세스 권한을 획득하려고 시도합니다.

Virtual Machine 확장

Azure Virtual Machine 확장은 바이러스 백신, 바이러스 백신, 위협 방지 등과 같은 특정 요구 사항과 위험을 해결하는 데 도움이 될 수 있는 신뢰할 수 있는 Microsoft 또는 타사 확장입니다.

  • 게스트 구성 확장
    • 머신의 게스트 내 설정을 안전하게 구성하려면 게스트 구성 확장을 설치합니다.
    • 게스트 내 설정에는 운영 체제 구성, 애플리케이션 구성 또는 존재 여부, 환경 설정이 포함됩니다.
    • 설치되면 'Windows Exploit Guard를 사용하도록 설정해야 합니다'와 같은 게스트 내 정책을 사용할 수 있습니다.
  • 네트워크 트래픽 데이터 컬렉션 에이전트
    • 클라우드용 Microsoft Defender는 Microsoft Dependency Agent를 사용하여 Azure Virtual Machines에서 네트워크 트래픽 데이터를 수집합니다.
    • 이 에이전트는 네트워크 맵의 트래픽 시각화, 네트워크 강화 권장 사항 및 특정 네트워크 위협과 같은 고급 네트워크 보호 기능을 사용하도록 설정합니다.
  • Microsoft 및 타사의 확장을 평가하여 맬웨어 방지, 원하는 상태, 위협 검색, 예방 및 치료를 처리하여 운영 체제, 컴퓨터 및 네트워크 수준에서 위협을 처리합니다.

다음 단계

SQL ServerAzure VM에 대한 보안 모범 사례를 검토한 다음 이 문서에서 Azure VM의 SQL Server에 구체적으로 적용되는 모범 사례를 검토합니다.

Azure VM에서 SQL Server 실행과 관련된 다른 항목은 Azure Virtual Machines의 SQL Server 개요를 참조하세요. SQL Server 가상 머신에 대한 질문이 있으면 질문과 대답을 참조하세요.

자세한 내용은 이 모범 사례 시리즈의 다른 문서를 참조하세요.