다음을 통해 공유


네트워크 보안 그룹이 네트워크 트래픽을 필터링하는 방법

Azure NSG(네트워크 보안 그룹)을 사용하면 Azure 가상 네트워크의 Azure 리소스와 주고받는 네트워크 트래픽을 필터링할 수 있습니다. 네트워크 보안 그룹에는 여러 종류의 Azure 리소스에서 오는 인바운드 트래픽 또는 이러한 리소스로 나가는 아웃바운드 네트워크 트래픽을 허용하거나 거부하는 보안 규칙이 포함됩니다. 규칙마다 원본 및 대상, 포트, 프로토콜을 지정할 수 있습니다.

여러 Azure 서비스의 리소스를 한 Azure 가상 네트워크에 배포할 수 있습니다. 전체 목록은 가상 네트워크에 배포할 수 있는 서비스 목록을 참조하세요. 가상 머신의 각 가상 네트워크 서브넷네트워크 인터페이스에 네트워크 보안 그룹을 하나 연결하거나 연결하지 않을 수 있습니다. 동일한 네트워크 보안 그룹을 원하는 수의 서브넷 및 네트워크 인터페이스에 연결할 수 있습니다.

다음 그림은 TCP 포트 80을 통해 인터넷과의 상호 트래픽을 허용하도록 네트워크 보안 그룹을 배포하는 방법에 대한 다양한 시나리오를 보여줍니다.

NSG 처리의 다이어그램

다음 텍스트와 함께 앞의 그림을 참조하여 Azure가 네트워크 보안 그룹에 대한 인바운드 및 아웃바운드 규칙을 처리하는 방식을 이해하세요.

인바운드 트래픽

인바운드 트래픽의 경우 Azure는 서브넷에 연결된 네트워크 보안 그룹이 있으면 이 그룹의 규칙을 먼저 처리한 후 네트워크 인터페이스에 연결된 네트워크 보안 그룹이 있으면 이 그룹의 규칙을 처리합니다. 이 프로세스에는 서브넷 내 트래픽도 포함됩니다.

  • VM1: NSG1의 보안 규칙은 Subnet1에 연결되고 VM1Subnet1에 있으므로 처리됩니다. 포트 80 인바운드를 허용하는 규칙을 만들지 않은 경우 DenyAllInbound 기본 보안 규칙은 트래픽을 거부합니다. 이 차단된 트래픽은 네트워크 인터페이스와 연결되어 있으므로 NSG2에서 평가되지 않습니다. 그러나 NSG1이 보안 규칙에서 포트 80을 허용하는 경우 NSG2가 트래픽을 처리합니다. 가상 머신에 포트 80을 허용하려면 NSG1NSG2 모두 인터넷에서 포트 80을 허용하는 규칙이 있어야 합니다.

  • VM2: VM2 역시 Subnet1에 있기 때문에 NSG1의 규칙이 처리됩니다. VM2은 네트워크 인터페이스에 연결된 네트워크 보안 그룹이 없으므로 NSG1을 통해 허용된 트래픽 또는 NSG1에 의해 거부된 트래픽을 모두 수신합니다. 네트워크 보안 그룹이 서브넷에 연결된 경우 동일한 서브넷의 모든 리소스에 대한 트래픽이 허용되거나 거부됩니다.

  • VM3: Subnet2에 연결된 네트워크 보안 그룹이 없으므로 서브넷으로 가는 트래픽이 허용되고 NSG2에 의해 처리됩니다. NSG2VM3에 연결된 네트워크 인터페이스에 연결되었기 때문입니다.

  • VM4: 네트워크 보안 그룹이 Subnet3 또는 가상 머신의 네트워크 인터페이스에 연결되지 않았기 때문에 VM4로 가는 트래픽이 차단됩니다. 서브넷 및 네트워크 인터페이스에 네트워크 보안 그룹이 연결되지 않으면 서브넷 및 네트워크 인터페이스를 통과하는 모든 네트워크 트래픽이 차단됩니다.

아웃바운드 트래픽

인바운드 트래픽의 경우 Azure는 네트워크 인터페이스에 연결된 네트워크 보안 그룹이 있으면 이 그룹의 규칙을 먼저 처리한 후 서브넷에 연결된 네트워크 보안 그룹이 있으면 이 그룹의 규칙을 처리합니다. 이 프로세스에는 서브넷 내 트래픽도 포함됩니다.

  • VM1: NSG2의 보안 규칙이 처리됩니다. NSG1NSG2AllowInternetOutbound 기본 보안 규칙은 인터넷에 대한 포트 80 아웃바운드를 거부하는 보안 규칙을 만들지 않는 한 트래픽을 허용합니다. NSG2가 보안 규칙에서 포트 80을 거부하는 경우 트래픽을 거부하고 NSG1은 이를 평가하지 않습니다. 두 네트워크 보안 그룹 중 어느 하나 또는 둘 모두의 가상 머신에서 포트 80을 거부하려면 규칙이 네트워크 보안 그룹에 인터넷으로 나가는 포트 80을 거부하는 있어야 합니다.

  • VM2: VM2에 연결된 네트워크 인터페이스에 네트워크 보안 그룹이 연결되지 않았기 때문에 모든 트래픽이 네트워크 인터페이스를 통해 서브넷으로 전송됩니다. NSG1의 규칙이 처리됩니다.

  • VM3: NSG2가 보안 규칙에서 포트 80을 거부하는 경우 트래픽을 거부합니다. NSG2가 포트 80을 거부하지 않는 경우 NSG2AllowInternetOutbound 기본 보안 규칙은 Subnet2와 연결된 네트워크 보안 그룹이 없으므로 트래픽을 허용합니다.

  • VM4: 네트워크 보안 그룹이 가상 머신에 연결된 네트워크 인터페이스 또는 Subnet3에 연결되지 않았기 때문에 VM4에서 오는 모든 트래픽이 허용됩니다.

서브넷 내 트래픽

서브넷에 연결된 NSG의 보안 규칙은 서브넷 내 VM 간의 연결에 영향을 줄 수 있다는 점에 유의해야 합니다. 기본적으로 동일한 서브넷의 가상 머신은 서브넷 내 트래픽을 허용하는 기본 NSG 규칙에 따라 통신할 수 있습니다. 모든 인바운드 및 아웃바운드 트래픽을 거부하는 규칙을 NSG1에 추가하면 VM1VM2는 서로 통신할 수 없습니다.

네트워크 인터페이스의 유효 보안 규칙을 확인하여 네트워크 인터페이스에 적용되는 집계 규칙을 쉽게 볼 수 있습니다. Azure Network Watcher에서 IP 흐름 확인 기능을 사용하여 통신이 네트워크 인터페이스 간에 허용되는지 여부를 결정할 수도 있습니다. IP 흐름 확인을 사용하여 통신이 허용되는지 아니면 거부되는지 파악할 수 있습니다. 또한 IP 흐름 확인을 사용하여 트래픽 허용 또는 거부를 담당하는 네트워크 보안 규칙의 ID를 표시합니다.

참고

네트워크 보안 그룹은 서브넷 또는 클래식 배포 모델에 배포된 가상 머신 및 클라우드 서비스 및 Resource Manager 배포 모델의 서브넷 또는 네트워크 인터페이스에 연결됩니다. Azure 배포 모델에 대해 자세히 알아보려면 Azure 배포 모델 이해를 참조하세요.

특별한 이유가 없다면 네트워크 보안 그룹을 서브넷 또는 네트워크 인터페이스 중 한 쪽에만 연결하는 것이 좋습니다. 서브넷에 연결된 네트워크 보안 그룹의 규칙이 네트워크 인터페이스에 연결된 네트워크 보안 그룹의 규칙과 충돌할 수 있으므로 예기치 않은 통신 문제가 발생할 수 있습니다.

다음 단계