Azure SQL Database에 대한 Azure 보안 기준

이 보안 기준은 Azure Security Benchmark 버전 2.0의 지침을 Azure SQL Database에 적용합니다. Azure Security Benchmark는 Azure에서 클라우드 솔루션을 보호하는 방법에 대한 권장 사항을 제공합니다. 콘텐츠는 Azure Security Benchmark 및 Azure SQL Database에 적용되는 관련 참고 자료에서 정의된 보안 컨트롤에 따라 그룹화됩니다.

클라우드용 Microsoft Defender를 사용하여 이 보안 기준 및 권장 사항을 모니터링할 수 있습니다. Azure Policy 정의는 Microsoft Defender for Cloud 대시보드의 규정 준수 섹션에 나열됩니다.

섹션에 관련 Azure Policy 정의가 있는 경우 Azure Security Benchmark 컨트롤 및 권장 사항에 대한 규정 준수를 측정하는 데 도움이 되도록 이 기준선에 나열됩니다. 일부 권장 사항에는 특정 보안 시나리오를 사용하도록 설정하기 위해 유료 Microsoft Defender 계획이 필요할 수 있습니다.

참고

Azure SQL Database에 적용할 수 없는 컨트롤 및 글로벌 지침이 그대로 권장되는 컨트롤은 제외되었습니다. Azure SQL Database가 Azure Security Benchmark에 어떻게 완전히 매핑되는지 확인하려면 전체 Azure SQL Database 보안 기준 매핑 파일을 참조하세요.

네트워크 보안

자세한 내용은 Azure Security Benchmark: 네트워크 보안을 참조하세요.

NS-1: 내부 트래픽에 대한 보안 구현

지침: Azure SQL은 가상 네트워크에 직접 배포하는 것을 지원하지 않습니다. 이는 네트워크 보안 그룹, 경로 테이블 또는 Azure Firewall과 같은 기타 네트워크 종속 어플라이언스와 같은 제품 리소스와 함께 특정 네트워킹 기능을 활용할 수 없기 때문입니다.

Microsoft Sentinel을 사용하여 SSL/TLSv1, SMBv1, LM/NTLMv1, wDigest, 서명되지 않은 LDAP 바인딩 및 Kerberos의 약한 암호화와 같은 레거시 비보안 프로토콜의 사용을 검색합니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
Azure SQL Database에서 공용 네트워크 액세스를 사용하지 않도록 설정해야 함 공용 네트워크 액세스 속성을 사용하지 않도록 설정하면 프라이빗 엔드포인트에서만 Azure SQL Database에 액세스할 수 있도록 하여 보안이 향상됩니다. 이 구성은 IP 또는 가상 네트워크 기반 방화벽 규칙과 일치하는 모든 로그인을 거부합니다. 감사, 거부, 사용 안 함 1.1.0

NS-2: 여러 사설망 함께 연결

지침: Azure ExpressRoute 또는 Azure VPN(가상 사설망)을 사용하면 공동 배치 환경의 온-프레미스 인프라와 Azure 데이터 센터와 간에 프라이빗 연결을 만들 수 있습니다. ExpressRoute 연결은 공용 인터넷을 통해 연결되지 않으며 일반적인 인터넷 연결보다 안정적이고 속도가 빠르며 대기 시간이 짧습니다. 지점 및 사이트 간 VPN 및 사이트 간 VPN의 경우 이러한 VPN 옵션과 Azure ExpressRoute를 조합하여 온-프레미스 디바이스 또는 네트워크를 가상 네트워크에 연결할 수 있습니다.

Azure에 둘 이상의 가상 네트워크를 함께 연결하려면 가상 네트워크 피어링을 사용합니다. 피어링된 가상 네트워크 간의 네트워크 트래픽은 비공개이며 Azure 백본 네트워크에 유지됩니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
Azure SQL Database에서 프라이빗 엔드포인트 연결을 사용하도록 설정해야 함 프라이빗 엔드포인트 연결은 Azure SQL Database에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 강화합니다. 감사, 사용 안 함 1.1.0

NS-3: Azure 서비스에 대한 프라이빗 네트워크 액세스 설정

지침: Azure Private Link를 사용하여 인터넷을 통하지 않고 가상 네트워크에서 Azure SQL에 프라이빗 액세스할 수 있습니다.

프라이빗 액세스는 Azure 서비스에서 제공하는 인증 및 트래픽 보안에 대한 추가적인 심층 방어 수단입니다.

Azure Virtual Network 서비스 엔드포인트를 사용하여 인터넷을 통과하지 않고 Azure 백본 네트워크를 통해 최적화된 경로를 통해 Azure SQL에 대한 보안 액세스를 제공합니다.

프라이빗 액세스는 Azure 서비스에서 제공하는 인증 및 트래픽 보안에 대한 추가적인 심층 방어 수단입니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
Azure SQL Database에서 프라이빗 엔드포인트 연결을 사용하도록 설정해야 함 프라이빗 엔드포인트 연결은 Azure SQL Database에 대한 프라이빗 연결을 사용하도록 설정하여 보안 통신을 강화합니다. 감사, 사용 안 함 1.1.0

NS-6: 네트워크 보안 규칙 간소화

지침: Azure Virtual Network 서비스 태그를 사용하여 Azure SQL 리소스에 대해 구성된 네트워크 보안 그룹 또는 Azure Firewall에 대한 네트워크 액세스 제어를 정의합니다. 보안 규칙을 만들 때 특정 IP 주소 대신 서비스 태그를 사용할 수 있습니다. 서비스 태그 이름을 규칙의 적절한 원본 또는 대상 필드에 지정하면 해당 서비스에 대한 트래픽을 허용하거나 거부할 수 있습니다. Microsoft에서는 서비스 태그에서 압축한 주소 접두사를 관리하고 주소를 변경하는 대로 서비스 태그를 자동으로 업데이트합니다. Azure SQL Database에 대해 서비스 엔드포인트를 사용하는 경우 Azure SQL Database 공용 IP 주소에 대한 아웃바운드가 필요합니다. 연결을 허용하려면 NSG(네트워크 보안 그룹)가 Azure SQL Database IP에 열려야 합니다. Azure SQL Database에 대해 NSG 서비스 태그를 사용하면 이 작업을 수행할 수 있습니다. Azure SQL Database에 대한 서비스 엔드포인트로 서비스 태그 이해:/azure/sql-database/sql-database-vnet-service-endpoint-rule-overview#limitations

책임: Customer

NS-7: 보안 DNS(Domain Name Service)

참고 자료: DNS 보안에 대한 모범 사례에 따라 현수 DNS, DNS 증폭 공격, DNS 중독 및 스푸핑 등의 일반적인 공격을 완화합니다.

Azure DNS를 신뢰할 수 있는 DNS 서비스로 사용하는 경우 Azure RBAC 및 리소스 잠금을 사용하여 우발적이거나 악의적인 수정으로부터 DNS 영역 및 레코드를 보호해야 합니다.

책임: Customer

ID 관리

자세한 내용은 Azure Security Benchmark: ID 관리를 참조하세요.

IM-1: Azure Active Directory를 중앙 ID 및 인증 시스템으로 표준화

지침: Azure SQL은 Azure AD(Azure Active Directory)를 기본 ID 및 액세스 관리 서비스로 사용합니다. Azure AD를 표준화하여 다음 리소스에서 조직의 ID 및 액세스 관리를 관리해야 합니다.

  • Microsoft 클라우드 리소스(예: Azure Portal, Azure Storage, Azure Virtual Machines(Linux 및 Windows), Azure Key Vault, PaaS 및 SaaS 애플리케이션)
  • 조직의 리소스(예: Azure의 애플리케이션 또는 회사 네트워크 리소스)

Azure AD 보안 우선 순위는 조직의 클라우드 보안 사례에서 높아야 합니다. Azure AD는 Microsoft의 모범 사례 권장 사항을 기준으로 ID 보안 태세를 평가하는 데 도움이 되는 ID 보안 점수를 제공합니다. 점수를 사용하여 구성이 모범 사례 추천 사항에 근접하게 일치하는 정도를 측정하고 보안 태세를 향상시킬 수 있습니다.

참고: Azure AD는 Microsoft 계정이 없는 사용자가 애플리케이션 및 리소스에 로그인할 수 있게 하는 외부 ID를 지원합니다.

Azure SQL Database에 대해 다음과 같은 Azure AD 멤버를 프로비저닝할 수 있습니다. 네이티브 멤버, 통과 또는 암호 해시 인증으로 원활한 로그온을 위해 구성된 관리되는 도메인에서 Azure Active Directory와 페더레이션된 Active Directory 도메인의 멤버, 네이티브 또는 페더레이션된 도메인 멤버인 다른 Azure AD에서 가져온 멤버 및 보안 그룹으로 만들어진 Active Directory 그룹.

Azure AD(Azure Active Directory)는 Azure AD 애플리케이션(서비스 주체)을 대신하여 Azure SQL Database(SQL DB)에서 사용자 생성을 지원합니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
SQL 서버에 대해 Azure Active Directory 관리자를 프로비저닝해야 합니다. SQL 서버에 대한 Azure Active Directory 관리자 프로비전을 감사하여 Azure AD 인증을 활성화합니다. Azure AD 인증을 사용하면 데이터베이스 사용자 및 기타 Microsoft 서비스의 권한을 간편하게 관리하고 ID를 한 곳에서 집중적으로 관리할 수 있습니다. AuditIfNotExists, 사용 안 함 1.0.0

IM-2: 애플리케이션 ID를 안전하게 자동으로 관리

지침: Azure SQL은 Azure 리소스에 대한 관리 ID를 지원합니다. 서비스 주체를 만드는 대신 Azure SQL에서 관리 ID를 사용하여 다른 리소스에 액세스합니다. Azure SQL은 소스 코드 또는 구성 파일에 하드 코딩된 자격 증명을 사용하지 않고 미리 정의된 액세스 인증 규칙을 통해 Azure AD 인증을 지원하는 Azure 서비스/리소스에 기본적으로 인증할 수 있습니다.

책임: Customer

IM-3: 애플리케이션 액세스에 Azure AD SSO(Single Sign-On) 사용

지침: Azure SQL은 Azure Active Directory를 사용하여 Azure 리소스, 클라우드 애플리케이션 및 온-프레미스 애플리케이션에 ID 및 액세스 관리를 제공합니다. 여기에는 직원과 같은 엔터프라이즈 ID와 파트너, 공급자 및 공급자와 같은 외부 ID가 포함됩니다. 이를 통해 SSO(Single Sign-On)는 온-프레미스 및 클라우드에서 조직의 데이터 및 리소스에 대한 액세스를 관리하고 보호할 수 있습니다. 모든 사용자, 애플리케이션, 디바이스를 Azure AD에 연결하여 원활하고 안전하게 액세스하고 가시성과 제어를 강화할 수 있습니다.

책임: Customer

IM-7: 의도하지 않은 자격 증명 노출 제거

지침: Azure SQL을 사용하면 고객이 ID/비밀을 사용하여 잠재적으로 {코드 또는 구성 또는 지속형 데이터}를 배포/실행할 수 있습니다. {코드 또는 구성 또는 지속형 데이터} 내에서 자격 증명을 식별하기 위해 자격 증명 스캐너를 구현하는 것이 좋습니다. 또한 자격 증명 스캐너는 검사된 자격 증명을 Azure Key Vault와 같은 보다 안전한 위치로 이동하도록 권장합니다.

GitHub의 경우 네이티브 비밀 검사 기능을 사용하여 코드 내에서 자격 증명 또는 다른 형태의 비밀을 식별할 수 있습니다.

책임: Customer

권한 있는 액세스

자세한 내용은 Azure Security Benchmark: 권한 있는 액세스를 참조하세요.

PA-1: 높은 권한이 있는 사용자 보호 및 제한

참고 자료: Azure AD에 대한 가장 중요한 기본 제공 역할은 전역 관리자 및 권한 있는 역할 관리자입니다. 이러한 두 역할에 할당된 사용자는 관리자 역할을 위임할 수 있습니다.:

  • 전역 관리자 / 회사 관리자: 이 역할의 사용자는 Azure AD의 모든 관리 기능뿐만 아니라 Azure AD ID를 사용하는 서비스에도 액세스할 수 있습니다.
  • 권한 있는 역할 관리자: 이 역할의 사용자는 Azure AD뿐만 아니라 Azure AD PIM(Privileged Identity Management) 내에서도 역할 할당을 관리할 수 있습니다. 또한 이 역할을 통해 PIM 및 관리 단위의 모든 측면을 관리할 수 있습니다.

참고: 특정 권한이 할당된 사용자 지정 역할을 사용하는 경우 관리해야 할 다른 중요한 역할이 있을 수 있습니다. 중요 비즈니스 자산의 관리자 계정에 유사한 컨트롤을 적용할 수도 있습니다.

권한이 높은 계정 또는 역할의 수를 제한하고 이러한 계정을 높은 수준에서 보호해야 합니다. 이 권한이 있는 사용자는 Azure 환경의 모든 리소스를 직접 또는 간접적으로 읽고 수정할 수 있습니다.

Azure AD PIM을 사용하여 Azure 리소스 및 Azure AD에 대한 JIT(Just-In-Time) 권한 있는 액세스를 사용하도록 설정할 수 있습니다. JIT는 사용자가 필요한 경우에만 권한 있는 작업을 수행할 수 있는 임시 권한을 부여합니다. 또한 PIM은 Azure AD 조직에서 의심스럽거나 안전하지 않은 활동이 있을 때 보안 경고를 생성할 수 있습니다.

전용 관리 계정 사용에 대한 표준 운영 절차를 만듭니다.

책임: Customer

PA-3: 정기적으로 사용자 액세스 검토 및 조정

지침: Azure SQL이 Azure AD(Azure Active Directory) 계정을 사용하여 리소스를 관리하고, 사용자 계정 및 액세스 할당을 정기적으로 검토하여 계정 및 해당 액세스가 유효한지 확인합니다. Azure AD 및 액세스 검토를 사용하여 그룹 멤버 자격, 엔터프라이즈 애플리케이션에 대한 액세스 및 역할 할당을 검토할 수 있습니다. Azure AD 보고는 부실 계정을 검색하는 데 도움이 되는 로그를 제공할 수 있습니다. 또한 Azure AD PIM(Privileged Identity Management)을 사용하여 액세스 검토 보고서 워크플로를 만들어 검토 프로세스를 용이하게 할 수 있습니다.

또한 과도한 수의 관리자 계정이 만들어질 때 경고하고 부실하거나 부적절하게 구성된 관리자 계정을 식별하도록 Azure AD PIM을 구성할 수도 있습니다.

참고: 일부 Azure 서비스는 Azure AD를 통해 관리되지 않는 로컬 사용자 및 역할을 지원합니다. 해당 사용자는 별도로 관리해야 합니다.

책임: Customer

PA-6: 권한 있는 액세스 워크스테이션 사용

참고 자료: 안전하고 격리된 워크스테이션은 관리자, 개발자 및 중요한 서비스 운영자와 같은 중요한 역할의 보안에 매우 중요합니다. 관리 작업에는 매우 안전한 사용자 워크스테이션 및/또는 Azure Bastion을 사용합니다. Azure AD(Azure Active Directory), Microsoft Defender ATP(Advanced Threat Protection) 및/또는 Microsoft Intune을 사용하여 관리 작업을 위한 관리형 보안 사용자 워크스테이션을 배포합니다. 보안 워크스테이션을 중앙에서 관리하여 강력한 인증, 소프트웨어 및 하드웨어 기준 설정, 제한된 논리 및 네트워크 액세스를 비롯한 보안 구성을 시행할 수 있습니다.

책임: Customer

PA-7: 충분한 관리 수행(최소 권한 원칙)

지침: Azure SQL은 리소스를 관리하기 위해 Azure RBAC(Azure 역할 기반 액세스 제어)와 통합됩니다. Azure RBAC를 사용하면 역할 할당을 통해 Azure 리소스 액세스를 관리할 수 있습니다. 이러한 역할은 사용자, 그룹 서비스 주체 및 관리 ID에 할당할 수 있습니다. 특정 리소스에 대해 미리 정의된 기본 제공 역할이 있으며 이러한 역할은 Azure CLI, Azure PowerShell 또는 Azure Portal과 같은 도구를 통해 쿼리하거나 인벤토리에 포함할 수 있습니다. Azure RBAC를 통해 리소스에 할당하는 권한은 항상 역할에 필요한 권한으로 제한해야 합니다. 이러게 Azure AD PIM(Privileged Identity Management)의 JIT(Just-in-Time) 접근 방식을 보완하고 정기적으로 검토해야 합니다.

기본 제공 역할을 사용하여 권한을 할당하고 필요할 때만 사용자 지정 역할을 만듭니다.

SQL 인증 계정은 이 요구 사항을 충족합니다.

책임: Customer

PA-8: Microsoft 지원에 대한 승인 프로세스 선택

지침: Microsoft가 고객 데이터에 액세스해야 하는 지원 시나리오에서 Azure SQL은 고객 Lockbox가 고객 데이터 액세스 요청을 검토, 승인 또는 거부할 수 있는 인터페이스를 제공합니다.

책임: Customer

자산 관리

자세한 내용은 Azure Security Benchmark: 자산 관리를 참조하세요.

AM-1: 보안 팀에서 자산 위험에 대한 가시성을 확보하도록 보장

지침: 보안 팀이 Azure 테넌트 및 구독에서 보안 읽기 권한자 권한을 부여받아 클라우드용 Microsoft Defender를 사용하여 보안 위험을 모니터링할 수 있도록 합니다.

보안 팀의 책임이 구성된 방식에 따라 보안 위험 모니터링은 중앙 보안 팀 또는 로컬 팀의 책임이 될 수 있습니다. 즉, 보안 인사이트 및 위험이 항상 조직 내의 중앙에서 집계되어야 합니다.

보안 읽기 권한자 권한은 전체 테넌트(루트 관리 그룹)에 광범위하게 적용하거나 범위를 관리 그룹 또는 특정 구독으로 지정할 수 있습니다.

참고: 워크로드 및 서비스에 대한 가시성을 얻으려면 추가 권한이 필요할 수 있습니다.

책임: Customer

AM-2: 보안 팀에 자산 인벤토리 및 메타데이터에 대한 액세스 권한이 있는지 확인

지침: 보안 팀이 Azure SQL과 같이 Azure에서 지속적으로 업데이트되는 자산 인벤토리에 액세스할 수 있는지 확인합니다. 보안 팀은 조직이 새로운 위험에 노출될 가능성을 평가하고 지속적인 보안 개선을 위한 입력으로 이 인벤토리가 필요한 경우가 많습니다. Azure AD(Azure Active Directory) 그룹을 만들어 조직의 승인된 보안 팀을 포함하고 모든 Azure SQL 리소스에 대한 읽기 권한을 할당합니다. 이는 구독 내 단일 상위 수준 역할 할당으로 단순화할 수 있습니다.

Azure 리소스, 리소스 그룹, 구독에 태그를 적용하여 논리적인 분류 체계로 구성합니다. 각 태그는 이름과 값 쌍으로 이루어져 있습니다. 예를 들어 프로덕션의 모든 리소스에 "환경" 이름과 "프로덕션" 값을 적용할 수 있습니다.

Azure Virtual Machine 인벤토리를 사용하여 Virtual Machines의 소프트웨어에 대한 정보 수집을 자동화할 수 있습니다. 소프트웨어 이름, 버전, 게시자 및 새로 고침 시간은 Azure Portal에서 사용할 수 있습니다. 설치 날짜 및 기타 정보에 대한 액세스 권한을 가져오려면 게스트 수준 진단을 사용하도록 설정하고 Windows 이벤트 로그를 Log Analytics 작업 영역으로 가져와야 합니다.

Azure SQL은 해당 리소스에 애플리케이션을 실행하거나 소프트웨어를 설치하는 것을 허용하지 않습니다. 해당하는 경우 이 기능을 허용하거나 지원하는 제품의 다른 기능을 설명합니다.

책임: Customer

AM-3: 승인된 Azure 서비스만 사용

참고 자료: Azure Policy를 사용하여 환경에서 사용자가 프로비전할 수 있는 서비스를 감사하고 제한합니다. Azure Resource Graph를 사용하여 구독 내에서 리소스를 쿼리하고 검색합니다. 또한 Azure Monitor를 사용하여 승인되지 않은 서비스가 검색되면 경고를 트리거하는 규칙을 만들 수 있습니다.

책임: Customer

로깅 및 위협 탐지

자세한 내용은 Azure Security Benchmark: 로깅 및 위협 탐지를 참조하세요.

LT-1: Azure 리소스에 위협 탐지 사용

지침: 클라우드용 Microsoft Defender 기본 제공 위협 검색 기능을 사용하고 Azure SQL 리소스에 대해 Microsoft Defender(이전의 Azure Advanced Threat Protection)를 사용하도록 설정합니다. Azure SQL용 Microsoft Defender는 Azure SQL 리소스에 액세스하거나 악용하려는 비정상적이고 잠재적으로 유해한 시도를 검색하는 추가 보안 인텔리전스 계층을 제공합니다.

사용자 지정 위협 검색을 설정하는 데 사용할 수 있는 Azure SQL의 모든 로그를 SIEM으로 전달합니다. 다양한 유형의 Azure 자산에서 잠재적인 위협과 이상 징후를 모니터링합니다. 경고의 품질을 높이는 데 집중하여 분석가가 분류하는 가양성을 줄여야 합니다. 경고는 로그 데이터, 에이전트 또는 기타 데이터로부터 제공될 수 있습니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
보호되지 않는 SQL Managed Instance에 대해 SQL용 Microsoft Defender를 사용하도록 설정해야 함 Advanced Data Security를 사용하지 않고 각 SQL Managed Instance를 감사합니다. AuditIfNotExists, 사용 안 함 1.0.2

LT-2: Azure ID 및 액세스 관리에 위협 탐지 사용

참고 자료: Azure AD(Azure Active Directory)가 더 정교한 모니터링 및 분석 사용 사례를 위해 Azure AD 보고에서 보거나 Azure Monitor, Microsoft Sentinel 또는 기타 SIEM/모니터링 도구와 통합할 수 있는 다음과 같은 사용자 로그를 제공합니다.:

  • 로그인 – 로그인 보고서는 관리형 애플리케이션 및 사용자 로그인 활동의 사용에 대한 정보를 제공합니다.
  • 감사 로그 - Azure AD 내의 다양한 기능에 의해 수행된 모든 변경 내용에 대한 로그를 통한 추적 기능을 제공합니다. 감사 로그의 예제로는 사용자, 앱, 그룹, 역할 및 정책 추가 또는 제거와 같은 Azure AD 내의 모든 리소스에 대한 변경 내용이 있습니다.
  • 위험한 로그인 - 위험한 로그인은 사용자 계정의 정당한 소유자가 아닌 사용자에 의해 수행된 로그인 시도에 대한 지표입니다.
  • 위험 플래그가 지정된 사용자 - 위험한 사용자는 손상되었을 수 있는 사용자 계정에 대한 표시기입니다.

클라우드용 Microsoft Defender는 인증 시도 실패 횟수가 너무 많거나 구독에서 더 이상 사용되지 않는 계정과 같은 특정 의심스러운 작업에 대한 경고를 트리거할 수도 있습니다. 기본 보안 위생 모니터링 외에도 클라우드용 Microsoft Defender의 Threat Protection 모듈은 개별 Azure 컴퓨팅 리소스(가상 머신, 컨테이너, App Service), 데이터 리소스(SQL DB 및 스토리지), Azure 서비스 계층에서 보다 심층적인 보안 경고를 수집할 수도 있습니다. 이 기능을 사용하면 개별 리소스 내에서 비정상 계정 활동을 볼 수 있습니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
보호되지 않는 SQL Managed Instance에 대해 SQL용 Microsoft Defender를 사용하도록 설정해야 함 Advanced Data Security를 사용하지 않고 각 SQL Managed Instance를 감사합니다. AuditIfNotExists, 사용 안 함 1.0.2

LT-3: Azure 네트워크 활동에 대한 로깅 사용

지침: Azure SQL은 네트워크와의 통합을 지원하지 않거나 네트워크 관련 작업을 노출하지 않습니다.

Azure SQL은 가상 네트워크에 배포하기 위한 것이 아닙니다. 이 때문에 네트워크 보안 그룹 흐름 로깅을 사용하도록 설정하거나 방화벽을 통해 트래픽을 라우팅하거나 패킷 캡처를 수행할 수 없습니다.

Azure SQL은 리소스를 가상 네트워크에 직접 배포하지 않습니다. 그러나 Azure SQL을 사용하면 프라이빗 엔드포인트를 사용하여 가상 네트워크에서 해당 리소스에 안전하게 연결할 수 있습니다. 또한 Azure SQL은 사용하도록 설정해야 하는 DNS 쿼리 로그를 생성하거나 처리하지 않습니다. Azure SQL은 DNS 쿼리 로그를 생성하거나 처리하지 않습니다.

구성된 Azure SQL 프라이빗 엔드포인트에서 로깅을 사용하도록 설정하여 다음을 캡처합니다.

  • 프라이빗 엔드포인트에서 처리한 데이터(수신/송신)

  • Private Link 서비스에서 처리한 데이터(수신/송신)

  • NAT 포트 가용성

기본적으로 Azure SQL 리소스를 가상 네트워크에 배포할 수 있지만 Azure SQL 리소스에서 들어오고 나가는 트래픽은 네트워크 보안 그룹에 의해 적용되거나 네트워크 보안 그룹을 통해 전달될 수 없습니다. 제품이 올바르게 작동하도록 하려면 서브넷에서 네트워크 정책을 사용하지 않아야 합니다. 이러한 이유로 Azure SQL에 대한 네트워크 보안 그룹 흐름 로깅을 구성할 수 없습니다.

책임: Customer

LT-4: Azure 리소스에 대한 로깅 사용

지침: 자동으로 사용할 수 있는 활동 로그에는 읽기 작업(GET)을 제외하고 Azure SQL 리소스에 대한 모든 쓰기 작업(PUT, POST, DELETE)이 포함됩니다. 활동 로그를 사용하여 문제를 해결할 때 오류를 찾거나 조직의 사용자가 리소스를 수정한 방법을 모니터링할 수 있습니다.

Azure SQL에 대해 Azure 리소스 로그를 사용하도록 설정합니다. Microsoft Defender for Cloud 및 Azure Policy를 사용하여 리소스 로그 및 로그 데이터 수집을 사용하도록 설정할 수 있습니다. 이러한 로그는 보안 인시던트를 조사하고 포렌식 활동을 수행하는 데 중요한 역할을 할 수 있습니다.

Azure SQL Database는 로컬 관리자 계정에 대한 보안 감사 로그도 생성합니다. 이러한 로컬 관리자 감사 로그를 사용하도록 설정하고 이러한 로그가 장기 보존 및 감사를 위해 중앙 Log Analytics 작업 영역 또는 스토리지 계정으로 보내지도록 구성합니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
SQL 서버에 대한 감사가 사용되도록 설정되어야 합니다. 서버의 모든 데이터베이스에서 데이터베이스 활동을 추적하고 감사 로그에 저장하려면 SQL Server에서의 감사를 사용하도록 설정해야 합니다. AuditIfNotExists, 사용 안 함 2.0.0

LT-5: 보안 로그 관리 및 분석 중앙 집중화

지침: 로깅 스토리지 및 분석을 중앙 집중화하면 상관 관계를 활용할 수 있습니다. 각 로그 원본에 대해 데이터 소유자, 액세스 지침, 스토리지 위치, 데이터를 처리하고 액세스하는 데 사용되는 도구, 데이터 보존 요구 사항을 할당했는지 확인합니다.

Azure 활동 로그를 중앙 로깅에 통합하고 있는지 확인합니다. Azure Monitor를 통해 로그를 수집하여 엔드포인트 디바이스, 네트워크 리소스, 기타 보안 시스템에 의해 생성된 보안 데이터를 집계합니다. Azure Monitor에서 Log Analytics 작업 영역을 사용하여 분석을 쿼리하고 수행하며, 장기 및 기록 스토리지에 Azure Storage 계정을 사용할 수 있습니다.

또한 Microsoft Sentinel 또는 타사 SIEM에 데이터를 사용하도록 설정하고 온보딩합니다.

많은 조직에서 자주 사용되는 '핫' 데이터에 대해 Microsoft Sentinel을 사용하고 덜 자주 사용되는 '콜드' 데이터에 대해서는 Azure Storage를 사용하도록 선택합니다.

Azure SQL에서 실행할 수 있는 애플리케이션의 경우 중앙 집중식 관리를 위해 모든 보안 관련 로그를 SIEM으로 전달합니다.

책임: Customer

LT-6: 로그 스토리지 보존 구성

지침: Azure SQL 로그를 저장하는 데 사용되는 스토리지 계정 또는 Log Analytics 작업 영역에 조직의 준수 규정에 따라 설정된 로그 보존 기간이 설정되어 있는지 확인합니다.

Azure Monitor에서 조직의 준수 규정에 따라 Log Analytics 작업 영역의 보존 기간을 설정할 수 있습니다. 장기 및 보관 스토리지에 대한 Azure Storage, Data Lake 또는 Log Analytics 작업 영역 계정을 사용합니다.

책임: Customer

클라우드용 Microsoft Defender 모니터링: Azure 보안 벤치마크는 클라우드용 Microsoft Defender의 기본 정책 이니셔티브이며 클라우드용 Microsoft Defender 권장 사항의 기초입니다. 이 제어와 관련된 Azure Policy 정의는 클라우드용 Microsoft Defender에서 사용하도록 자동으로 설정됩니다. 이 컨트롤과 관련된 경고에는 관련 서비스에 대한 Microsoft Defender 요금제가 필요할 수 있습니다.

Azure Policy 기본 제공 정의 - Microsoft.Sql:

Name
(Azure Portal)
설명 효과 버전
(GitHub)
스토리지 계정 대상에 대한 감사 기능이 있는 SQL Server는 보존 기간을 90일 이상으로 구성해야 함 인시던트 조사를 위해 SQL Server 감사를 위한 데이터 보존 기간을 스토리지 계정 대상으로 90일 이상으로 설정하는 것이 좋습니다. 운영 중인 지역에 필요한 보존 규칙을 충족하는지 확인합니다. 이는 규정 표준을 준수해야 하는 경우도 있습니다. AuditIfNotExists, 사용 안 함 3.0.0

LT-7: 승인된 시간 동기화 원본 사용

지침: Azure SQL은 자체 시간 동기화 원본 구성을 지원하지 않습니다. Azure SQL 서비스는 Microsoft 시간 동기화 원본에 의존하며 구성을 위해 고객에게 노출되지 않습니다.

책임: Microsoft

태세 및 취약성 관리

자세한 내용은 Azure Security Benchmark: 태세 및 취약성 관리를 참조하세요.

PV-1: Azure 서비스에 대한 보안 구성 설정

지침: Azure Blueprints를 사용하여 단일 청사진 정의에서 Azure Resources Manager 템플릿, Azure RBAC 컨트롤 및 정책을 포함한 서비스 및 애플리케이션 환경의 배포 및 구성을 자동화할 수 있습니다.

데이터베이스 수준 IP 방화벽 규칙을 사용하여 클라이언트는 특정(보안) 데이터베이스에 액세스할 수 있습니다. 각 데이터베이스(master 데이터베이스 포함)에 대해 이 규칙을 만들며 규칙은 개별 데이터베이스에 저장됩니다.

책임: Customer

PV-2: Azure 서비스에 대한 보안 구성 유지

지침: 클라우드용 Microsoft Defender를 사용하여 구성 기준을 모니터링하고 Azure Policy [거부] 및 [존재하지 않는 경우 배포]를 사용하여 적용하여 VM, 컨테이너 등을 비롯한 Azure 컴퓨팅 리소스 전반에 보안 구성을 적용합니다.

책임: Customer

PV-3: 컴퓨팅 리소스에 대한 보안 구성 설정

참고 자료: 클라우드용 Microsoft Defender 및 Azure Policy를 사용하여 VM, 컨테이너 등을 포함한 모든 컴퓨팅 리소스에 대한 보안 구성을 설정합니다.

책임: Customer

PV-8: 정기적인 공격 시뮬레이션 수행

지침: 필요에 따라 Azure 리소스에 대한 침투 테스트 또는 레드 팀 활동을 수행하고 모든 중요한 보안 결과를 수정해야 합니다.

Microsoft Cloud 침투 테스트 시행 규칙에 따라 침투 테스트가 Microsoft 정책을 위반하지 않는지 확인합니다. Microsoft의 전략과 Microsoft에서 관리하는 클라우드 인프라, 서비스, 애플리케이션에 대한 레드 팀 실행 및 실시간 사이트 침투 테스트를 사용합니다.

책임: Customer

엔드포인트 보안

자세한 내용은 Azure Security Benchmark: 엔드포인트 보안을 참조하세요.

ES-2: 중앙 관리형 최신 맬웨어 방지 소프트웨어 사용

지침: 중앙에서 관리되는 최신 맬웨어 방지 소프트웨어로 Azure SQL Database 또는 해당 리소스를 보호합니다.

  • 실시간 및 주기적 검사가 가능한 중앙 관리형 엔드포인트 안티 맬웨어 솔루션을 사용합니다.

  • 클라우드용 Microsoft Defender는 VM(가상 머신)에 대한 여러 자주 사용되는 맬웨어 방지 솔루션의 사용을 자동으로 식별하고 엔드포인트 보호 실행 상태를 보고한 다음 권장 사항을 제시할 수 있습니다.

  • Azure Cloud Services용 Microsoft Antimalware는 Windows VM용 기본 맬웨어 방지 프로그램입니다. Linux VM의 경우 타사 맬웨어 방지 솔루션을 사용합니다. 데이터 서비스에 대한 클라우드용 Microsoft Defender의 위협 검색을 사용하여 Azure Storage 계정에 업로드된 맬웨어를 검색할 수 있습니다.

  • Cloud Services 및 Virtual Machines용 Microsoft Antimalware 구성 방법

  • 지원되는 엔드포인트 보호 솔루션

책임: Customer

ES-3: 맬웨어 방지 소프트웨어 및 서명이 업데이트되는지 확인

지침: 맬웨어 방지 서명이 신속하고 지속적으로 업데이트되는지 확인합니다.

클라우드용 Microsoft Defender: 컴퓨팅 & 앱의 권장 사항에 따라 모든 엔드포인트가 최신 서명으로 최신 상태인지 확인합니다.

Microsoft 맬웨어 방지 프로그램은 기본적으로 최신 서명 및 엔진 업데이트를 자동 설치합니다. Linux의 경우 타사 맬웨어 방지 솔루션을 사용합니다.

책임: Customer

백업 및 복구

자세한 내용은 Azure Security Benchmark: 백업 및 복구를 참조하세요.

BR-1: 자동화된 정기 백업 보장

지침: Azure SQL Database는 SQL Server 기술을 사용하여 매주 전체 백업, 12~24시간마다 차등 백업, 5~10분마다 트랜잭션 로그 백업을 만듭니다.

기본적으로 SQL Database는 쌍을 이루는 지역에 복제되는 지역 중복 스토리지 Blob에 데이터를 저장합니다. SQL Database의 경우 데이터베이스를 만들 때 백업 스토리지 중복성을 구성하거나 기존 데이터베이스를 업데이트할 수 있습니다. 기존 데이터베이스의 변경 내용은 이후 백업에만 적용됩니다.

책임: Customer

BR-2: 백업 데이터 암호화

지침: 백업은 공격으로부터 보호되어야 합니다. 여기에는 기밀성 손실을 방지하기 위한 백업 암호화가 포함됩니다.

Azure Backup을 사용하는 온-프레미스 백업의 경우 사용자가 제공한 암호를 사용하여 미사용 암호화가 제공됩니다. 정기 Azure 서비스 백업의 경우 백업 데이터는 Azure 플랫폼 관리형 키를 사용하여 자동으로 암호화됩니다. 고객 관리형 키를 사용하여 백업을 암호화하도록 선택할 수도 있습니다. 이 경우 키 자격 증명 모음의 고객 관리형 키도 백업 범위에 있어야 합니다.

Azure Backup, Azure Key Vault 또는 기타 리소스에서 역할 기반 액세스 제어를 사용하여 백업 및 고객 관리형 키를 보호합니다. 또한 고급 보안 기능을 사용하도록 설정하여 백업을 변경하거나 삭제하기 전에 MFA를 요구할 수 있습니다.

데이터베이스가 TDE를 사용하여 암호화된 경우 LTR 백업을 포함한 백업이 미사용 시 자동으로 암호화됩니다. Azure SQL의 모든 새 데이터베이스는 기본적으로 TDE를 사용하도록 구성됩니다.

책임: Customer

BR-3: 고객 관리형 키를 비롯한 모든 백업 유효성 검사

지침: 정기적으로 백업 데이터 복원을 수행합니다.

SQL Database와 SQL Managed Instance는 SQL Server 기술을 사용하여 일주일마다 전체 백업, 12~24시간마다 차등 백업, 5~10분마다 트랜잭션 로그 백업을 만듭니다.

백업된 고객 관리형 키를 복원할 수 있는지 주기적으로 확인합니다.

책임: Customer

BR-4: 분실한 키의 위험 완화

지침: 키 분실을 방지하고 복구할 수 있는 측정값이 있는지 확인합니다. Azure Key Vault에서 일시 삭제 및 제거 보호를 사용하도록 설정하여 실수로 또는 악의적으로 삭제되지 않도록 키를 보호합니다.

소프트를 사용하도록 설정하는 방법

책임: Customer

다음 단계