네트워크 보안 진입 패턴 구현

보안 네트워크 수신은 글로벌 라우팅, 글로벌 오프로드 및 상태 엔드포인트 모니터링에 대한 패턴을 포함하여 여러 디자인 패턴을 캡슐화합니다. 이 문서의 패턴 구현은 대기 시간이 짧은 장애 조치(failover)를 통해 서로 다른 지역의 워크로드에 대한 보안 글로벌 라우팅을 제공하여 고가용성 또는 안정성이 필요한 HTTP 또는 HTTPS 워크로드의 게이트웨이로 사용할 수 있습니다.

비디오: 네트워크 보안 인그레스 구현

패턴 요구 사항

이 문서에서는 네트워크 보안 인그레스 패턴 구현이 중점적인 세 가지 요구 사항인 전역 라우팅, 저지연 장애 조치 및 엣지에서의 공격 완화에 대해 설명합니다.

글로벌 라우팅

네트워크 보안 수신 패턴은 전역 라우팅 패턴을 캡슐화합니다. 따라서 구현은 요청을 다른 지역의 워크로드로 라우팅할 수 있습니다.

서로 다른 지역의 두 워크로드로 라우팅되는 HTTPS 요청을 보여 주는 다이어그램.

짧은 대기 시간 장애 조치(failover)

구현은 정상 및 비정상 워크로드를 식별하고 시간에 민감한 방식으로 라우팅을 적절하게 조정할 수 있어야 합니다. 대기 시간은 몇 분 안에 라우팅 조정을 지원할 수 있어야 합니다.

비정상 워크로드로 라우팅되지 않는 HTTPS 요청을 보여 주는 다이어그램

네트워크 에지에서 공격 완화

에지에서 공격을 완화하기 위해서는 "네트워크 보안" 부분의 구현이 필요합니다. 워크로드 또는 PaaS(Platform as a Service) 서비스는 인터넷을 통해 액세스할 수 없습니다. 인터넷 트래픽은 게이트웨이를 통해서만 라우팅할 수 있어야 합니다. 게이트웨이에는 악용을 완화하는 기능이 있어야 합니다.

에지에서 중지되지 않는 요청의 쿼리 문자열에 SQL 문이 있는 HTTPS 요청을 보여 주는 다이어그램

패턴

이 솔루션은 다음과 같은 디자인 패턴을 구현합니다.

디자인

Azure Front Door Premium을 통해 지역 스탬프로 흐르는 요청을 보여 주는 다이어그램.

다이어그램은 웹 애플리케이션 방화벽이 있는 Azure Front Door Premium 상자로 흐르는 HTTPS 요청을 보여 줍니다. Azure Front Door Premium과 Azure Web Application Firewall 간의 통합을 보여 줍니다. 그런 다음 다이어그램은 Private Link를 통해 서로 다른 지역의 두 스탬프로 흐르는 요청을 보여 줍니다. 각 스탬프에는 정적 웹 사이트와 내부 부하 분산 장치가 있습니다. 요청은 Private Link를 통해 정적 웹 사이트와 두 스탬프의 부하 분산 장치로 흐릅니다.

이 구현에는 다음 세부 정보가 포함됩니다.

  • Azure Blob Storage 계정을 사용하여 두 지역에서 실행되는 정적 웹 워크로드를 시뮬레이션합니다. 이 구현에는 ILB(내부 부하 분산 장치) 뒤에서 실행되는 워크로드가 포함되지 않습니다. 이 다이어그램은 ILB 뒤에서 실행되는 프라이빗 워크로드에 대해 이 구현이 작동한다는 것을 보여 주는 ILB를 보여줍니다.
  • Azure Front Door 프리미엄 계층을 글로벌 게이트웨이로 사용합니다.
  • Azure Front Door 인스턴스에는 일반적인 악용으로부터 보호하는 데 도움이 되는 관리되는 규칙으로 구성된 WAF(글로벌 웹 애플리케이션 방화벽) 정책이 있습니다.
  • 스토리지 계정은 인터넷을 통해 노출되지 않습니다.
  • Azure Front Door 프리미엄 계층은 Azure Private Link를 통해 스토리지 계정에 액세스합니다.
  • Azure Front Door 인스턴스에는 다음과 같은 고급 구성이 있습니다.
    • 단일 원본 그룹을 가리키는 단일 경로가 있는 엔드포인트입니다. 원본 그룹은 원본 또는 백 엔드의 컬렉션입니다.
    • 원본 그룹에는 각 스토리지 계정을 가리키도록 구성된 원본이 있습니다.
    • 각 원본은 스토리지 계정에 대한 Private Link 액세스를 요청합니다.
    • 원본 그룹에는 스토리지 계정의 HTML 페이지에 액세스하도록 구성된 상태 프로브가 있습니다. HTML 페이지는 정적 워크로드의 상태 엔드포인트 역할을 합니다. 프로브가 마지막 4번의 시도 중 3번에서 원본에 성공적으로 액세스할 수 있는 경우 원본은 정상으로 간주됩니다.

구성 요소

웹 요청

  • Azure Web Application Firewall 은 Microsoft 관리형 규칙 집합을 사용하여 일반적인 위협 및 취약성으로부터 웹 애플리케이션을 보호하는 보안 서비스입니다. 이 아키텍처에서 프리미엄 계층은 Azure Front Door Premium과 통합되어 백 엔드 서비스에 도달하기 전에 악의적인 HTTP 및 HTTPS 트래픽을 검사하고 차단합니다.
  • Azure Private Link 는 Microsoft 백본 네트워크를 통해 Azure PaaS 서비스에 대한 프라이빗 연결을 가능하게 하는 서비스입니다. 이 아키텍처에서는 Azure Front Door가 공용 인터넷에 노출하지 않고도 스토리지 계정에 안전하게 액세스할 수 있습니다.
  • Azure Front Door Premium 은 계층 7 부하 분산, 라우팅 및 보안 기능을 제공하는 글로벌 애플리케이션 배달 네트워크입니다. 이 아키텍처에서는 보안 글로벌 게이트웨이 역할을 합니다. 트래픽을 지역 워크로드로 라우팅하고 Private Link를 통해 비공개로 통신하면서 웹 애플리케이션 방화벽 정책을 적용합니다. 프리미엄 계층은 다음 구성 요소를 지원합니다.
    • Private Link 를 사용하면 Azure Front Door가 Microsoft 백본 네트워크를 통해 프라이빗 가상 네트워크의 PaaS 서비스 또는 워크로드에 연결할 수 있습니다.
    • Microsoft 관리형 규칙 집합 은 일반적인 악용 방지를 위해 웹 애플리케이션 방화벽의 프리미엄 계층과 통합되는 Azure Front Door의 프리미엄 계층에서만 사용할 수 있습니다.
  • Azure Storage 는 구조화되고 구조화되지 않은 데이터를 위한 확장 가능한 클라우드 스토리지 서비스입니다. 이 아키텍처에서 Blob Storage는 정적 웹 자산을 고려하고 Azure Front Door 라우팅의 원본 대상으로 사용됩니다.
  • ILB는 가상 네트워크 내에서 또는 연결된 네트워크를 통해 개인 IP 트래픽을 분산합니다. 이 구현에서는 ILB를 직접 사용하지 않지만 ILB 뒤에 있는 프라이빗 워크로드를 스토리지 계정과 유사하게 라우팅할 수 있는 방법을 보여 주는 아키텍처에 표시됩니다.

운영

네트워크 관점에서 리소스를 보호하면 악용으로부터 보호할 수 있지만 해당 리소스에 액세스해야 할 수 있는 프로세스 또는 관리자로부터 리소스를 격리합니다. 예를 들어 DevOps 파이프라인의 빌드 에이전트는 웹 애플리케이션에 업데이트를 배포하기 위해 스토리지 계정에 액세스해야 할 수 있습니다. 또한 관리자는 문제 해결을 위해 리소스에 액세스해야 할 수도 있습니다.

운영 목적으로 네트워크 보안 액세스에 대한 액세스를 제공하는 방법을 설명하기 위해 이 구현은 스토리지 계정에 대한 Private Link 액세스 권한이 있는 가상 네트워크에 VM(가상 머신)을 배포합니다. 이 구현은 관리자가 VM에 연결하는 데 사용할 수 있는 Azure Bastion을 배포합니다. 배포 시나리오의 경우 VM과 유사하게 프라이빗 빌드 에이전트를 가상 네트워크에 배포할 수 있습니다.

다음은 작업에 대한 구성 요소에 대한 세부 정보입니다.

  • Azure Virtual Network 는 리소스 간의 보안 통신을 가능하게 하는 네트워킹 서비스입니다. 이 아키텍처에서 가상 네트워크에는 관리자가 프라이빗 Microsoft 백본 네트워크를 통해 스토리지 계정과 안전하게 통신하는 데 필요한 구성 요소가 포함되어 있습니다.
  • Azure Virtual Machines 는 확장 가능한 컴퓨팅 리소스를 제공하는 IaaS(Infrastructure-as-a-Service) 제품입니다. 이 아키텍처에서 VM은 관리자가 네트워크 보안 리소스에 안전하게 액세스할 수 있는 점프 상자 역할을 합니다.
  • Azure Bastion 은 공용 IP 주소를 노출하지 않고 VM에 대한 RDP(원격 데스크톱 프로토콜) 및 SSH(Secure Shell) 액세스를 제공하는 관리되는 PaaS입니다. 이 아키텍처에서는 관리자가 보안 작업을 위해 SSH를 통해 점프 박스 VM에 연결할 수 있습니다.
  • Private Link 엔드포인트는 Private Link를 통해 Azure 서비스에 연결하고 가상 네트워크에서 개인 IP 주소를 할당하는 네트워크 인터페이스입니다. 이 아키텍처에서 프라이빗 엔드포인트는 스토리지 계정 PaaS 서비스에 연결됩니다. 이 연결을 사용하면 프라이빗 가상 네트워크의 리소스가 개인 IP 주소를 통해 스토리지 계정과 통신할 수 있습니다.
  • 프라이빗 Azure DNS 영역은 도메인 이름을 가상 네트워크 내의 개인 IP 주소로 확인하는 DNS(도메인 이름 시스템) 서비스입니다. 이 아키텍처에서는 스토리지 계정의 Private Link 호스트 이름을 개인 IP 주소로 확인하여 VM에서 안전하게 액세스할 수 있도록 합니다.

웹 요청 흐름

웹 요청의 흐름을 보여 주는 다이어그램

다이어그램은 Azure Front Door에 웹 요청을 하는 사용자를 보여줍니다. Azure Front Door 상자에서 다이어그램은 Azure Front Door 라우팅 흐름의 각 단계를 보여줍니다. 흐름에서 강조 표시된 단계는 WAF 규칙이 평가되고, Azure Front Door 경로가 일치되고 원본 그룹이 선택되며, 원본 그룹에서 원본이 선택된 단계입니다. 마지막으로 강조 표시된 내용은 Azure Front Door가 Private Link를 통해 Azure Blob Storage 계정에 연결하는 위치입니다.

  1. 사용자가 Azure Front Door 엔드포인트에 HTTP 또는 HTTPS 요청을 발급합니다.

  2. WAF 규칙이 평가됩니다. 일치하는 규칙은 항상 기록됩니다. Azure Front Door WAF 정책 모드가 방지 로 설정되어 있고 일치 규칙에 변칙에 대해 차단하도록 설정된 작업이 있는 경우 요청이 차단됩니다. 그렇지 않으면 요청이 계속되거나 리디렉션되거나 후속 규칙이 평가됩니다.

  3. Azure Front Door에 구성된 경로가 일치하고 올바른 원본 그룹이 선택됩니다. 이 예제에서 경로는 웹 사이트의 정적 콘텐츠에 대한 것이었습니다.

  4. 원본 그룹에서 원본이 선택됩니다.

    a. 이 예제에서 상태 프로브는 웹 사이트가 비정상으로 간주되므로 가능한 원본에서 제거됩니다.
    b. 이 웹 사이트가 선택되어 있습니다.

  5. 요청은 Microsoft 백본 네트워크를 통해 Private Link를 통해 Azure Storage 계정으로 라우팅됩니다.

Azure Front Door 라우팅 아키텍처에 대한 자세한 내용은 라우팅 아키텍처 개요를 참조하세요.

운영 흐름

관리자가 보호된 리소스에 연결하는 데 사용하는 흐름을 보여 주는 다이어그램

다이어그램에는 세 부분이 있습니다. 첫 번째 부분에서는 정적 웹 사이트 역할을 하는 Azure Blob Storage를 보여 줍니다. Azure Front Door는 Private Link를 통해 스토리지 계정에 연결합니다. 두 번째 부분은 가상 네트워크를 나타내는 상자입니다. 가상 네트워크에는 서브넷과 해당 콘텐츠가 있습니다. 이러한 서브넷에는 IP 주소가 10.0.2.5인 Private Link 엔드포인트가 포함된 프라이빗 엔드포인트 서브넷, 점프 박스 가상 머신이 있는 점프 박스 서브넷 및 Azure Bastion이 포함된 Azure Bastion 서브넷이 포함됩니다. 세 번째 부분은 SSH를 사용하여 Azure Bastion을 통해 가상 네트워크의 점프 박스 VM에 액세스하는 관리자입니다. 화살표는 VM에서 프라이빗 Azure DNS 영역으로 이동합니다. 마지막 화살표는 VM에서 프라이빗 링크 엔드포인트로 이동한 다음 스토리지 계정으로 이동합니다.

  1. 관리자는 가상 네트워크에 배포된 Azure Bastion 인스턴스에 연결합니다.

  2. Azure Bastion은 점프 박스 VM에 대한 SSH 연결을 제공합니다.

  3. 점프 상자의 관리자는 Azure CLI를 통해 스토리지 계정에 액세스하려고 합니다. 점프 상자는 공용 Azure Blob Storage 계정 엔드포인트 storageaccountname.blob.core.windows.net에 대한 DNS를 쿼리합니다.

    개인용 DNS는 궁극적으로 storageaccountname.privatelink.blob.core.windows.net로 해결됩니다. 이 예제에서는 Private Link 엔드포인트의 개인 IP 주소(10.0.2.5)를 반환합니다.

  4. 스토리지 계정에 대한 프라이빗 연결은 Private Link 엔드포인트를 통해 설정됩니다.

고려 사항

이 솔루션을 사용할 때는 다음 사항에 유의하세요.

신뢰도

안정성은 애플리케이션이 고객에 대한 약정을 충족할 수 있도록 보장합니다. 자세한 내용은 안정성 핵심 요소 개요를 참조하세요.

이 시나리오에서는 안정성에 대한 다음 주요 사항을 다룹니다.

  • 상태 프로브를 사용하여 대기 시간이 짧은 글로벌 라우팅은 지역 가동 중단에 대해 애플리케이션을 격리하여 안정성을 가능하게 합니다.
  • Azure Front Door의 웹 애플리케이션 방화벽 은 HTTP 및 HTTPS 요청에 대한 중앙 집중식 보호를 제공합니다.

안전

우수한 보안은 중요한 데이터 및 시스템에 대한 고의적인 공격과 악용을 방어합니다. 자세한 내용은 보안 요소의 개요를 참조하세요.

이 시나리오에서는 보안에 대한 다음 주요 사항을 다룹니다.

비용 최적화

비용 최적화는 불필요한 비용을 줄이고 운영 효율성을 개선하는 방법을 찾는 것입니다. 자세한 내용은 비용 최적화 핵심 요소개요를 참조하세요.

Azure Front Door Premium 및 웹 애플리케이션 방화벽 프리미엄은 모두 표준 계층을 통해 고급 보안 기능을 제공하지만 두 가지 모두에 추가 비용이 있습니다. Azure Front Door 및 웹 애플리케이션 방화벽의 가격 책정에 대해 자세히 알아보려면 다음 리소스를 검토하세요.

운영 우수성

운영 우수성은 애플리케이션을 배포하고 프로덕션에서 계속 실행하는 운영 프로세스를 다룹니다. 자세한 내용은 운영 우수성 핵심 요소 개요를 참조하세요.

네트워크 보안 경계를 구현하면 작업 및 배포가 복잡해집니다. 다음 포인트를 기억하세요.

  • Microsoft 호스팅 에이전트의 IP 범위는 시간에 따라 다릅니다. 가상 네트워크에서 자체 호스팅 에이전트를 구현하는 것이 좋습니다.
  • 운영 팀이 네트워크 보안 리소스에 액세스해야 하는 시나리오에 대해 Azure Bastion 을 구현합니다.
  • Azure Front Door에서 웹 애플리케이션 방화벽을 사용하여 HTTP 및 HTTPS 요청에 대한 중앙 집중식 보호를 제공하는 것은 게이트웨이 오프로드 패턴의 예입니다. 악용에 대한 요청을 검사하는 책임은 Azure Front Door의 웹 애플리케이션 방화벽으로 오프로드됩니다. 운영 우수성 관점의 이점은 한 곳에서만 규칙을 관리해야 한다는 것입니다.

성능 효율성

성능 효율성은 사용자가 요구 사항에 맞게 워크로드를 확장할 수 있는 기능입니다. 자세한 내용은 성능 효율성 핵심 요소 개요를 참조하세요.

글로벌 라우팅을 사용하면 동일한 지역 또는 다른 지역에 더 많은 리소스를 배포하여 수평 크기 조정을 수행할 수 있습니다.