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을 사용하면 중요한 데이터를 클라우드에 자신 있게 저장하고 엄격한 규정 준수 요구 사항을 충족할 수 있습니다.
  • 2022년 SQL Server 경우 Azure Active Directory 인증을 사용하여 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 정책과 다릅니다.

Microsoft Defender for SQL

Azure Defender for SQL취약성 평가 및 보안 경고와 같은 클라우드용 Microsoft Defender 보안 기능을 사용할 수 있습니다. 자세한 내용은 Microsoft Defender for SQL 사용을 참조하세요.

SQL용 Azure Defender를 사용하여 잠재적인 데이터베이스 취약성을 검색 및 완화하고 SQL Server 인스턴스 및 데이터베이스 계층에 대한 위협을 나타낼 수 있는 비정상적인 작업을 검색합니다. 취약성 평가는 SQL Server 환경에 대한 잠재적인 위험을 발견하고 수정할 수 있는 SQL용 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 관리를 참조하세요.

Microsoft Defender for Cloud

클라우드용 Microsoft Defender는 데이터 환경의 보안 태세를 개선할 기회를 평가하고 제공하도록 설계된 통합 보안 관리 시스템입니다. 클라우드용 Microsoft Defender는 하이브리드 클라우드의 모든 자산에 대한 보안 상태에 대한 통합 보기를 제공합니다.

기밀 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 크기와 다릅니다. 자세한 내용은 디스크 암호화 를 참조하세요.

Azure AD 인증(미리 보기)

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

  • Azure AD 암호
  • Azure AD 통합
  • Multi-Factor Authentication을 사용하여 유니버설 Azure AD
  • Azure Active Directory 액세스 토큰

Azure VM에서 SQL Server Azure AD 사용은 현재 미리 보기로 제공됩니다.

Azure AD 인증을 사용하도록 설정하려면 Azure Portal SQL 가상 머신 리소스로 이동하고 설정에서 보안 구성을 선택한 다음 Azure AD 인증을 사용하도록 설정합니다. SQL Server 인스턴스에 연결하는 데 사용할 ID 유형을 선택한 다음, 메시지가 표시되면 인스턴스에 인증하는 데 사용할 ID를 선택합니다.

Azure VM에서 SQL Server Azure AD 인증을 사용하는 데는 다음과 같은 필수 구성 요소가 있습니다.

  • SQL Server 2022를 사용합니다.
  • SQL Server Iaas 에이전트 확장에 SQL VM을 등록합니다.
  • SQL Server 인증하도록 선택한 ID에는 Azure AD 디렉터리 읽기 권한자 역할 권한 또는 다음 세 가지 Microsoft Graph 애플리케이션 권한(앱 역할): User.ReadALL, GroupMember.Read.AllApplication.Read.All이 있습니다.

다음 제한 사항을 고려합니다.

  • Azure AD 인증을 사용하도록 설정하면 Azure Portal 사용하여 인증을 사용하지 않도록 설정할 수 없습니다.
  • 현재 Azure AD 인증을 사용하도록 설정하는 것은 Azure Portal 통해서만 가능합니다.
  • 현재 Azure AD 인증은 퍼블릭 클라우드에 배포된 SQL Server VM에서만 사용할 수 있습니다.

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 내) 또는 공용(인터넷) 중에서 선택할 수 있게 해줍니다.

SQL Server 연결

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

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

네트워크 보안 그룹 규칙

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

계정 관리

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

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

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

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

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

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

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

참고

Azure VM(가상 머신)에서 실행 중인 SQL Server 인스턴스에 연결하는 것은 Azure Active Directory 또는 Azure Active Directory Domain Services를 사용하여 지원되지 않습니다. 대신 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 가상 머신에 대한 질문이 있으면 질문과 대답을 참조하세요.

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