다음을 통해 공유


네트워크 보안 수신에 대한 패턴 구현

네트워크 보안 수신은 전역 라우팅, 전역 오프로드 및 상태 엔드포인트 모니터링에 대한 패턴을 포함하여 여러 디자인 패턴을 캡슐화합니다. 이 문서의 패턴 구현은 대기 시간이 짧은 장애 조치(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 웹 애플리케이션 방화벽: 웹 애플리케이션 방화벽의 프리미엄 계층은 일반적인 악용으로부터 보호하는 데 도움이 되는 Microsoft 관리 규칙을 지원합니다.
  • Azure Private Link: Azure Private Link의 프라이빗 엔드포인트는 가상 네트워크의 개인 IP 주소에 Azure PaaS 서비스를 노출합니다. 이러한 노출을 통해 퍼블릭 인터넷이 아닌 Microsoft 백본 네트워크를 통해 통신이 흐를 수 있습니다.
  • Azure Front Door 프리미엄 계층: Azure Front Door는 계층 7 글로벌 부하 분산을 제공합니다. Azure Front Door는 웹 애플리케이션 방화벽과 통합됩니다. 프리미엄 계층은 다음을 지원합니다.
    • Azure Private Link: Private Link 지원을 통해 Azure Front Door는 Microsoft 백본 네트워크를 통해 프라이빗 가상 네트워크에서 실행되는 PaaS 서비스 또는 워크로드와 통신할 수 있습니다.
    • Microsoft 관리형 규칙 집합: Azure Front Door의 프리미엄 계층은 WAF에서 관리되는 규칙 집합을 지원하는 웹 애플리케이션 방화벽의 프리미엄 계층을 지원합니다.
  • Azure Storage: 이 구현은 Blob Storage 계정을 사용하여 정적 웹 사이트 또는 워크로드를 나타냅니다.
  • 내부 부하 분산 장치: 이 구현에서는 내부 부하 분산 장치를 사용하지 않습니다. 해당 부하 분산 장치 뒤에서 실행되는 프라이빗 워크로드를 보여주는 그림입니다. 스토리지 계정에 대한 라우팅은 부하 분산 장치와 동일합니다.

작업

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

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

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

  • Azure Virtual Network: 이 구현에서는 가상 네트워크를 사용하여 관리자가 프라이빗 Microsoft 백본 네트워크를 통해 스토리지 계정과 안전하게 통신하는 데 필요한 구성 요소를 포함합니다.
  • Azure Virtual Machines: 이 구현에서는 관리자가 연결할 수 있는 점프박스로 VM을 사용합니다. VM은 프라이빗 가상 네트워크에 배포됩니다.
  • Azure Bastion: Azure Bastion을 사용하면 관리자가 VM에 공용 IP 주소를 요구하지 않고도 SSH(Secure Shell)를 통해 jumpbox VM에 안전하게 연결할 수 있습니다.
  • Private Link 엔드포인트: 프라이빗 엔드포인트에 가상 네트워크에서 개인 IP 주소가 할당되고 스토리지 계정 PaaS 서비스에 연결됩니다. 이 연결을 사용하면 프라이빗 가상 네트워크의 리소스가 개인 IP 주소를 통해 스토리지 계정과 통신할 수 있습니다.
  • 프라이빗 Azure DNS 영역: 프라이빗 Azure DNS 영역은 Azure Storage 계정의 Private Link 호스트 이름을 프라이빗 엔드포인트의 개인 IP 주소로 확인하는 데 사용되는 DNS 서비스입니다.

웹 요청 흐름

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

이 다이어그램은 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 엔드포인트가 포함된 프라이빗 엔드포인트 서브넷, jumpbox 가상 머신이 있는 jumpbox 서브넷 및 Azure Bastion이 포함된 Azure Bastion 서브넷이 포함됩니다. 세 번째 부분은 SSH를 사용하여 Azure Bastion을 통해 가상 네트워크의 jumpbox VM에 액세스하는 관리자입니다. 화살표는 VM에서 프라이빗 Azure DNS 영역으로 이동합니다. 마지막 화살표는 VM에서 프라이빗 링크 엔드포인트로 이동한 다음 스토리지 계정으로 이동합니다.

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

  2. Azure Bastion은 jumpbox VM에 대한 SSH 연결을 제공합니다.

  3. jumpbox 상의 관리자는 Azure CLI를 통해 스토리지 계정에 액세스하려고 합니다. jumpbox는 공용 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 의 Private Link 지원을 사용하면 인터넷을 통해 내부 또는 PaaS 서비스를 노출할 필요가 없습니다. Private Link는 Azure Front Door가 Microsoft 백본 네트워크를 통해 프라이빗 서비스 또는 PaaS 서비스와 통신할 수 있도록 해줍니다.
  • Azure Front Door 의 웹 애플리케이션 방화벽은 HTTP 및 HTTPS 요청에 대한 중앙 집중식 보호를 제공합니다.
  • 웹 애플리케이션 방화벽 프리미엄 의 관리되는 규칙은 일반적인 보안 위협 집합으로부터 보호하는 데 도움이 되는 Microsoft 관리 규칙입니다.

비용 최적화

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

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

운영 우수성

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

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

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

Important

네트워크 보안 수신 샘플을 사용하면 Azure Bastion을 통해 jumpbox에 연결하고 네트워크 보안 VM에 연결하는 데 필요한 모든 리소스를 배포할 수 있습니다.

성능 효율성

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

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

다음 단계