분할이란 Microsoft Azure에서 제공하는 도구를 사용하여 네트워킹 공간을 확보하고 소프트웨어 정의 경계를 만드는 모델입니다. 그런 다음, 네트워크의 다양한 부분에 대해 서로 다른 보안 태세를 취할 수 있도록 이러한 경계로부터 트래픽을 제어하는 규칙을 설정합니다. 이러한 경계에 서로 다른 애플리케이션(또는 주어진 애플리케이션의 일부)을 배치하는 경우 이러한 분할된 요소 간의 통신을 제어할 수 있습니다. 애플리케이션 스택의 일부가 손상된 경우 이러한 보안 위반의 영향을 더 잘 억제하고 나머지 네트워크로 횡적으로 확산되는 것을 방지할 수 있습니다. 이 기능은 Microsoft에서 배포한 Zero Trust 모델과 관련된 주요 원칙으로, 조직에 세계적 수준의 보안 사고를 제공하는 것을 목표로 합니다.
구분 패턴
Azure에서 작업할 때 광범위하고 다양한 분할 옵션 세트를 사용하여 사용자를 보호할 수 있습니다.
구독: 구독은 상위 수준의 구조이며 엔터티 간에 플랫폼 기반 분리를 제공합니다. 회사 내 거대 조직 간의 경계를 구분하기 위한 것입니다. 서로 다른 구독의 리소스 간 통신은 명시적으로 프로비전해야 합니다.
가상 네트워크: 가상 네트워크는 구독 내 개인 주소 공간에 생성됩니다. 네트워크는 기본적으로 두 가상 네트워크 간에 허용되는 트래픽이 없는 네트워크 수준의 리소스 제한을 제공합니다. 구독과 마찬가지로 가상 네트워크 간의 모든 통신은 명시적으로 프로비전해야 합니다.
NSG(네트워크 보안 그룹): NSG는 가상 네트워크 내의 리소스 간 트래픽을 레이어 4 방화벽으로 제어하기 위한 액세스 제어 메커니즘입니다. 또한 NSG는 인터넷, 다른 가상 네트워크 등의 외부 네트워크를 사용하여 트래픽을 제어합니다. NSG는 서브넷, VM 그룹 또는 단일 가상 머신에 대한 경계를 만들어 세분화된 수준으로 분할 전략을 수행할 수 있습니다.
AVNM(Azure Virtual Network Manager): AVNM(Azure Virtual Network Manager)은 중앙 IT 관리 팀이 전체 구독에 걸쳐서 전역적으로 가상 네트워크를 규모에 맞게 관리할 수 있게 해주는 네트워크 관리 서비스입니다. AVNM을 사용하면 여러 가상 네트워크를 그룹화하고 선택한 가상 네트워크에 한 번에 적용되는 미리 정의된 보안 관리 규칙을 강제할 수 있습니다. NSG와 마찬가지로 AVNM을 통해 생성된 보안 관리자 역할이 레이어 4 방화벽으로 작동하지만 보안 관리자 규칙이 NSG보다 먼저 평가됩니다.
ASG(애플리케이션 보안 그룹): ASG는 NSG와 유사한 컨트롤 메커니즘을 제공하지만 애플리케이션 컨텍스트로 참조됩니다. ASG를 사용하면 애플리케이션 태그 아래에 VM 집합을 그룹화할 수 있습니다. 그런 다음에는 각각의 기본 VM에 적용되는 트래픽 규칙을 정의할 수 있습니다.
Azure Firewall: Azure Firewall은 서비스로서의 클라우드 기본 상태 저장 방화벽입니다. 이 방화벽은 클라우드 리소스, 인터넷 및 온-프레미스 간에 흐르는 트래픽을 필터링하기 위해 가상 네트워크 또는 Azure Virtual WAN 허브 배포에 배포할 수 있습니다. Azure Firewall 또는 Azure Firewall Manager를 사용하여 계층 3에서 계층 7 컨트롤로 트래픽을 허용/거부하도록 지정하는 규칙 또는 정책을 만듭니다. 또한 Azure Firewall과 타사를 모두 사용하여 인터넷으로 이동하는 트래픽을 필터링할 수 있습니다. 고급 필터링 및 사용자 보호를 위한 타사 보안 공급자를 통해 일부 또는 모든 트래픽을 보냅니다.
네트워킹 관점에서 Azure에서 워크로드를 구성할 때 다음과 같은 세 가지 패턴이 공통적으로 나타납니다. 각 패턴은 서로 다른 형식의 격리 및 연결을 제공합니다. 조직에 가장 적합한 모델을 선택하는 것은 조직의 필요에 따라 결정해야 합니다. 이러한 각 모델에서 위의 Azure 네트워킹 서비스를 사용하여 분할을 수행하는 방법을 설명합니다.
조직에 적합한 디자인이 여기에 나열되지 않은 다른 디자인일 수도 있습니다. 모든 사람에게 적합한 하나의 크기란 존재하지 않기 때문에 이것은 예상된 결과입니다. 결국 이러한 패턴에서 나온 원칙을 사용하여 조직에 가장 적합한 디자인을 만들 수도 있을 것입니다. Azure 플랫폼은 사용자에게 필요한 유연성과 도구를 제공합니다.
패턴 1: 단일 가상 네트워크
이 패턴에서는 워크로드의 모든 구성 요소 또는 경우에 따라 전체 IT 공간이 단일 가상 네트워크에 배치됩니다. 가상 네트워크는 여러 영역에 걸쳐 있을 수 없기 때문에 이 패턴은 단일 지역에서만 작동할 경우 가능합니다.
이 가상 네트워크 내부에 세그먼트를 만드는 데 사용할 가능성이 가장 큰 엔터티는 NSG 또는 ASG입니다. 선택은 세그먼트를 네트워크 서브넷으로 참조할지 애플리케이션 그룹으로 참조할지 여부에 따라 달라집니다. 아래 이미지는 분할된 가상 네트워크 모양의 예시입니다.
이 설정에는 데이터베이스 워크로드를 배치한 Subnet1과 웹 워크로드를 배치한 Subnet2가 있습니다. Subnet1이 오직 Subnet2와 통신할 수 있고 Subnet2가 인터넷과 통신할 수 있다고 하는 NSG를 배치할 수 있습니다. 워크로드가 많은 경우에도 이 개념을 더욱 발전시킬 수 있습니다. 예를 들어 한 워크로드가 다른 워크로드의 백 엔드와 통신할 수 없도록 서브넷을 지정합니다.
NSG를 사용하여 서브넷 트래픽이 제어되는 방법을 설명했지만 Azure Marketplace 또는 Azure Firewall의 Network Virtualized Appliance를 사용하여 이 세분화를 적용할 수도 있습니다.
패턴 2: 두 가상 네트워크 간에 피어링을 사용하는 여러 가상 네트워크
이 패턴은 피어링 연결이 가능한 가상 네트워크가 여러 개 있는 이전 패턴의 확장입니다. 애플리케이션을 별도의 가상 네트워크로 그룹화하기 위해 이 패턴을 선택하는 경우 또는 여러 Azure 지역에 존재해야 하는 경우가 있을 수 있습니다. 서로 통신할 수 있도록 가상 네트워크를 다른 네트워크에 명시적으로 피어링해야 하므로 가상 네트워크를 통해 기본 제공 분할을 얻을 수 있습니다. (가상 네트워크 피어링 연결은 전이적이지 않음을 유의하세요.) 패턴 1과 비슷한 방식으로 가상 네트워크 내에서 더 많은 세그먼트를 만들려면 가상 네트워크에서 NSG/ASG를 사용합니다.
패턴 3: 허브 및 스포크 모델의 여러 가상 네트워크
이 패턴은 해당 지역의 다른 모든 가상 네트워크에 대한 허브로 지정된 지역의 가상 네트워크를 선택하는 고급 가상 네트워크 조직입니다. Azure 가상 네트워크 피어링을 사용하여 허브 가상 네트워크와 해당 스포크 가상 네트워크 간의 연결을 구현합니다. 모든 트래픽은 허브 가상 네트워크를 통해 전달되고 다른 지역의 다른 허브에 대한 게이트웨이로 작동할 수 있습니다. 허브에서 보안 태세를 설정하여 확장 가능한 방식으로 가상 네트워크 간의 트래픽을 분할하고 제어합니다. 이 패턴의 장점 중 하나는 네트워크 토폴로지가 커지더라도 보안 태세 오버헤드는 증가하지 않는다는 점입니다(새 지역으로 확장하는 경우는 제외). 또한 이 토폴로지 패턴은 사용자가 허브 가상 네트워크를 관리형 서비스로 관리할 수 있게 해주는 Azure Virtual WAN으로 대체될 수 있습니다. Azure Virtual WAN을 사용할 때의 장점에 대한 자세한 내용은 허브 및 스포크 가상 WAN 아키텍처를 참조하세요.
권장되는 Azure 클라우드 기본 분할 제어는 Azure Firewall입니다. Azure Firewall은 계층 3에서 계층 7 컨트롤을 사용하여 트래픽 흐름을 제어하기 위해 가상 네트워크와 구독 모두에서 작동합니다. 통신 규칙의 모양을 정의할 수 있으며(예: 가상 네트워크 X는 가상 네트워크 Y와 통신할 수 없지만 가상 네트워크 Z와 통신할 수 있으며, *.github.com
에 대한 액세스를 제외하고는 가상 네트워크 X에 대해 인터넷을 사용하지 않는 등), 일관성 있게 적용할 수 있습니다. Azure Firewall Manager를 사용하여 여러 Azure Firewall에서 정책을 중앙에서 관리하고 DevOps 팀이 로컬 정책을 추가로 사용자 지정하도록 할 수 있습니다. 또한 Azure Virtual WAN을 관리형 허브 네트워크로 선택할 경우 Azure Firewall Manager를 사용할 수 있습니다.
다음 표에서는 패턴 토폴로지를 비교해서 보여 줍니다.
패턴 1 | 패턴 2 | 패턴 3 | |
---|---|---|---|
연결/라우팅: 각 세그먼트가 서로 통신하는 방법 | 시스템 라우팅은 모든 서브넷의 모든 워크로드에 대한 기본 연결을 제공합니다. | 패턴 1과 동일 | 스포크 가상 네트워크 간의 기본 연결은 없습니다. 허브 가상 네트워크에서 Azure Firewall과 같은 레이어 4 라우터는 연결을 설정하는 데 필요합니다. |
네트워크 수준 트래픽 필터링 | 기본적으로 트래픽이 허용됩니다. NSG/ASG를 이 패턴을 필터링하는 데 사용할 수 있습니다. | 패턴 1과 동일 | 스포크 가상 네트워크 간의 트래픽은 기본적으로 거부됩니다. Azure Firewall 구성에서는 windowsupdate.com 과 같이 선택한 트래픽을 사용할 수 있습니다. |
중앙 집중식 로깅 | 가상 네트워크에 대한 NSG/ASG 로그 | 모든 가상 네트워크에서 NSG/ASG 로그 집계 | Azure Firewall은 허브를 통해 전송되는 모든 허용/거부된 트래픽을 Azure Monitor에 기록 |
원치 않는 오픈 퍼블릭 엔드포인트 | DevOps는 잘못된 NSG/ASG 규칙을 통해 실수로 퍼블릭 엔드포인트를 열 수 있습니다. | 패턴 1과 동일 | 스포크 가상 네트워크에서 실수로 열린 퍼블릭 엔드포인트는 액세스를 사용하지 않습니다. 상태 저장 방화벽을 통해 반환 패킷이 삭제됩니다(비대칭 라우팅). |
애플리케이션 수준 보호 | NSG/ASG는 네트워크 계층 지원만 제공합니다. | 패턴 1과 동일 | Azure Firewall은 아웃바운드 트래픽과 가상 네트워크 간에 HTTP/S 및 MSSQL에 대한 FQDN 필터링을 지원합니다. |
패턴 4: 여러 네트워크 세그먼트의 여러 가상 네트워크
이 패턴에서는 여러 구독에 걸쳐서 여러 가상 네트워크를 중앙화된 방법으로 관리하고 보호하는 방법을 설명합니다. AVNM에 생성된 보안 관리자 규칙은 가상 네트워크가 서로 연결되었는지 또는 다른 구독에 포함되는지 여부에 관계없이 일관된 방식으로 기준 보안 규칙을 강제할 수 있습니다. 예를 들어 조직 내 모든 가상 네트워크에서 보안 위반이 발생하지 않도록 솔루션을 보호하기 위해 SSH 포트 22, RDP 포트 3389 및 기타 고위험 포트를 사용하지 않도록 설정할 수 있습니다. 보안 관리자 규칙과 작동 방법에 대한 자세한 내용은 Azure Virtual Network Manager의 보안 관리자 규칙을 참조하세요.
AVNM은 최소한의 네트워크 규칙으로 조직 전체 네트워크를 보호하는 훌륭한 솔루션입니다. 하지만 AVNM 외에도 각 가상 네트워크에 세부적인 네트워크 규칙을 적용하기 위해서는 NSG와 ASG를 사용해야 합니다. 이 프로세스는 보안 요구사항에 따라 시스템마다 다를 수 있습니다.
다음 단계
구성 요소 기술에 대해 자세히 알아보세요.
관련 참고 자료
관련 아키텍처 살펴보기: