Azure Portal을 사용하여 Network Security Groups 배포

완료됨

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

NSG 보안 규칙

네트워크 보안 그룹은 Azure 구독 제한 내에서 필요한 만큼 0개 또는 많은 규칙을 포함합니다. 각 규칙은 다음 속성을 지정합니다.

  • 이름 - 네트워크 보안 그룹 내에서 고유한 이름이어야 합니다.
  • 우선 순위 - 100에서 4096 사이의 숫자일 수 있습니다. 낮은 번호의 우선 순위가 더 높기 때문에 규칙은 낮은 번호가 높은 번호보다 먼저 처리되는 우선 순위 순서로 처리됩니다. 트래픽이 규칙과 일치하면 처리가 중지됩니다. 따라서 우선 순위가 높은 규칙과 동일한 특성을 가진 우선 순위가 낮은 규칙(높은 번호)은 처리되지 않습니다.
  • 원본 또는 대상 - ‘모두’, 개별 IP 주소, CIDR(Classless Inter-Domain Routing) 블록(예: 10.0.0.0/24), 서비스 태그 또는 애플리케이션 보안 그룹일 수 있습니다.
  • 프로토콜 - TCP, UDP, ICMP, ESP, AH 또는 ‘모두’일 수 있습니다.
  • 방향 - 인바운드 또는 아웃바운드 트래픽에 적용하도록 구성할 수 있습니다.
  • 포트 범위 - 개별 포트 또는 포트의 범위로 지정할 수 있습니다. 예를 들어 80 또는 10000-10005과 같이 지정할 수 있습니다. 범위를 지정하면 더 적은 보안 규칙을 만들어도 됩니다.
  • 작업 - 허용 또는 거부로 설정할 수 있습니다.

방화벽은 5개 튜플 정보(원본, 원본 포트, 대상, 대상 포트 및 프로토콜)를 사용하는 우선순위에 따라 네트워크 보안 그룹의 보안 규칙을 평가하여, 트래픽을 허용하거나 거부합니다.

기본 보안 규칙

Azure는 사용자가 만드는 각 네트워크 보안 그룹에 다음과 같은 기본 규칙을 만듭니다.

방향 이름 우선 순위 원본 원본 포트 대상 대상 포트 프로토콜 Access
인바운드 AllowVNetInBound 65000 VirtualNetwork 0-65535 VirtualNetwork 0-65535 모두 허용
인바운드 AllowAzureLoadBalancerInBound 65001 AzureLoadBalancer 0-65535 0.0.0.0/0 0-65535 모두 허용
인바운드 DenyAllInbound 65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 모두 거부
아웃바운드 AllowVnetOutBound 65000 VirtualNetwork 0-65535 VirtualNetwork 0-65535 모두 허용
아웃바운드 AllowInternetOutBound 65001 0.0.0.0/0 0-65535 Internet 0-65535 모두 허용
아웃바운드 DenyAllOutBound 65500 0.0.0.0/0 0-65535 0.0.0.0/0 0-65535 모두 거부

다음 다이어그램과 중요 항목은 TCP 포트 80을 통해 인터넷의 네트워크 트래픽을 허용하도록 네트워크 보안 그룹을 배포하는 다양한 시나리오를 보여 줍니다.

네트워크 보안 그룹의 설정 예제 다이어그램

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

  • VM1:Subnet1이 NSG1과 연결되므로 보안 규칙이 처리되고 VM1은 Subnet1에 있습니다. 포트 80 인바운드를 허용하는 규칙을 만들지 않은 이상, DenyAllInbound기본 보안 규칙은 트래픽을 거부하며, NSG2가 네트워크 인터페이스에 연결되어 있으므로 NSG2에 의해 평가되지 않습니다. NSG1에 포트 80을 허용하는 보안 규칙이 있는 경우 NSG2는 트래픽을 처리합니다. 가상 머신에 포트 80을 허용하려면 NSG1 및 NSG2 모두 인터넷에서 포트 80을 허용하는 규칙이 있어야 합니다.
  • VM2: VM2도 Subnet1에 있기 때문에 NSG1의 규칙이 처리됩니다. VM2은 네트워크 인터페이스에 연결된 네트워크 보안 그룹이 없으므로 NSG1을 통해 허용된 트래픽 또는 NSG1에 의해 거부된 트래픽을 모두 수신합니다. 네트워크 보안 그룹이 서브넷에 연결된 경우 동일한 서브넷의 모든 리소스에 대한 트래픽이 허용되거나 거부됩니다.
  • VM3: Subnet2에 연결된 네트워크 보안 그룹이 없으므로, 해당 서브넷으로 가는 트래픽이 허용되고 NSG2에 의해 처리됩니다. 왜냐하면 NSG2는 VM3에 연결된 네트워크 인터페이스에 연결되기 때문입니다.
  • VM4: 네트워크 보안 그룹이 Subnet3 또는 가상 머신의 네트워크 인터페이스에 연결되지 않으므로 트래픽이 VM4로 허용됩니다. 서브넷 및 네트워크 인터페이스에 네트워크 보안 그룹이 연결되지 않으면 서브넷 및 네트워크 인터페이스를 통과하는 모든 네트워크 트래픽이 허용됩니다.

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

  • VM1: NSG2의 보안 규칙이 처리됩니다. 인터넷으로 나가는 포트 80 아웃바운드를 거부하는 보안 규칙을 만들지 않은 이상, AllowInternetOutbound 기본 보안 규칙은 NSG1 및 NSG2 모두에서 트래픽을 허용합니다. NSG2에 포트 80을 거부하는 보안 규칙이 있는 경우, 트래픽이 거부되고 NSG1에서 해당 규칙이 평가되지 않습니다. 두 네트워크 보안 그룹 중 어느 하나 또는 둘 모두의 가상 머신에서 포트 80을 거부하려면 규칙이 네트워크 보안 그룹에 인터넷으로 나가는 포트 80을 거부하는 있어야 합니다.
  • VM2: VM2에 연결된 네트워크 인터페이스에 네트워크 보안 그룹이 연결되지 않았기 때문에, 모든 트래픽이 네트워크 인터페이스를 통해 서브넷으로 전송됩니다. NSG1의 규칙이 처리됩니다.
  • VM3: NSG2에 포트 80을 거부하는 보안 규칙이 있으면 트래픽이 거부됩니다. NSG2에 포트 80을 허용하는 보안 규칙이 있는 경우, 네트워크 보안 그룹이 Subnet2에 연결되지 않으므로 포트 80에서는 인터넷으로 나가는 아웃바운드가 허용됩니다.
  • VM4: 네트워크 보안 그룹이 가상 머신에 연결된 네트워크 인터페이스 또는 Subnet3에 연결되지 않으므로 VM4에서 나오는 모든 네트워크 트래픽이 허용됩니다.

애플리케이션 보안 그룹

ASG(애플리케이션 보안 그룹)를 사용하면 네트워크 보안을 애플리케이션 구조의 자연 확장으로 구성하여 가상 머신을 그룹화하고 해당 그룹에 따라 네트워크 보안 정책을 정의할 수 있습니다. 명시적 IP 주소를 수동으로 유지 관리하지 않고 대규모 보안 정책을 재사용할 수 있습니다. 플랫폼은 명시적 IP 주소 및 여러 규칙 집합의 복잡성을 처리하여 비즈니스 논리에 집중할 수 있도록 합니다.

필요한 보안 규칙 수를 최소화하고 규칙 변경을 최소화하려면 되도록이면 개별 IP 주소 또는 IP 주소 범위 대신 서비스 태그 또는 애플리케이션 보안 그룹을 사용하여 필요한 애플리케이션 보안 그룹에 대한 계획을 세우고 규칙을 만드세요.

Azure Portal에서 NSG를 사용하여 네트워크 트래픽 필터링

네트워크 보안 그룹을 통해 가상 네트워크 서브넷의 인바운드 및 아웃바운드 네트워크 트래픽을 필터링할 수 있습니다. 네트워크 보안 그룹에는 IP 주소, 포트, 프로토콜에 따라 네트워크 트래픽을 필터링하는 보안 규칙이 포함됩니다. 보안 규칙은 서브넷에 배포된 리소스에 적용됩니다.

Azure Portal에서 NSG를 사용하여 네트워크 트래픽을 필터링하는 주요 단계는 다음과 같습니다.

  1. 리소스 그룹 만들기 - 이 작업은 미리 수행할 수도 있고, 다음 단계에서 가상 네트워크를 만들 때 수행할 수도 있습니다. 만드는 다른 모든 리소스는 여기에 지정된 동일한 지역에 있어야 합니다.
  2. 가상 네트워크 만들기 - 이전에 만든 리소스 그룹과 동일한 리소스 그룹에 배포해야 합니다.
  3. 애플리케이션 보안 그룹 만들기 - 여기서 만드는 애플리케이션 보안 그룹을 사용하여 웹 서버 또는 관리 서버와 같이 비슷한 기능을 가진 서버를 함께 그룹화할 수 있습니다. 여기서는 두 개의 애플리케이션 보안 그룹을 만듭니다. 하나는 웹 서버이고 다른 하나는 관리 서버입니다(예: MyAsgWebServers 및 MyAsgMgmtServers).
  4. 네트워크 보안 그룹 만들기 - 네트워크 보안 그룹은 가상 네트워크의 네트워크 트래픽을 보호합니다. 이 NSG는 다음 단계에서 서브넷과 연결됩니다.
  5. 네트워크 보안 그룹을 서브넷과 연결하기 - 이전에 만든 네트워크 보안 그룹을 위의 제2 단계에서 만든 가상 네트워크의 서브넷과 연결합니다.
  6. 보안 규칙 만들기 - 인바운드 보안 규칙을 만듭니다. 여기에서 웹 서버(예: MyAsgWebServers)의 애플리케이션 보안 그룹에 대해 포트 80 및 443을 허용하는 보안 규칙을 만듭니다. 그런 다음 관리 서버용 애플리케이션 보안 그룹(예: MyAsgMgmtServers)에 대해 포트 3389에서 RDP 트래픽을 허용하는 또 다른 보안 규칙을 만듭니다. 이 규칙은 VM(원격으로) 및 IIS 웹 서버에 액세스할 수 있는 위치를 제어합니다.
  7. 가상 머신 만들기 - 다음 단계에서 각 애플리케이션 보안 그룹과 연결될 웹 서버(예: MyVMWeb) 및 관리 서버(예: MyVMMgmt) 가상 머신을 만듭니다.
  8. NIC를 ASG에 연결 - 각 가상 머신에 연결된 NIC(네트워크 인터페이스 카드)를 위의 3단계에서 만든 관련 애플리케이션 보안 그룹과 연결합니다.
  9. 트래픽 필터 테스트 - 마지막 단계에서는 트래픽 필터링이 예상대로 작동하는지 테스트합니다.
    • 이를 테스트하려면 RDP 연결을 사용하여 관리 서버 가상 머신(예: MyVMMgmt)에 대한 연결을 시도합니다. 그리하여 포트 3389가 인터넷에서 관리 서버 애플리케이션 보안 그룹(예: MyAsgMgmtServers)으로의 인바운드 연결을 허용하므로 연결이 가능한지를 확인합니다.
    • 관리 서버(예: MyVMMgmt)의 RDP 세션에 연결되어 있는 동안 관리 서버 가상 머신(예: MyVMMgmt)에서 웹 서버 가상 머신(예: MyVMWeb)으로의 RDP 연결을 테스트합니다. 동일한 네트워크의 가상 머신이 기본적으로 임의의 포트를 통해 서로 통신할 수 있기 때문에 이번에도 성공해야 합니다.
    • 그러나 인터넷에서 웹 서버 가상 머신(예: MyVMWeb)에 대한 RDP 연결을 만들 수 없을 것입니다. 웹 서버 애플리케이션 보안 그룹(예: MyAsgWebServers)에 대한 보안 규칙이 인터넷에서 들어오는 포트 3389에 대한 연결을 차단하기 때문입니다. 인터넷에서 모든 리소스로의 인바운드 트래픽은 기본적으로 거부됩니다.
    • 웹 서버(예: MyVMWeb)의 RDP 세션에 연결된 상태에서 웹 서버에 IIS를 설치한 다음, 웹 서버 가상 머신 RDP 세션에서 연결을 끊고 관리 서버 가상 머신 RDP 세션에서 연결을 끊을 수 있습니다. 그런 다음 Azure Portal에서 웹 서버 가상 머신(예: MyVMWeb)의 공용 IP 주소를 확인하고, 컴퓨터에서 웹 브라우저를 열고 http://(예: http://23.96.39.113)로 이동하여 인터넷에서 웹 서버 가상 머신에 액세스할 수 있는지 확인합니다. 포트 80에서는 인터넷에서 웹 서버 애플리케이션 보안 그룹(예: MyAsgWebServers)으로의 인바운드 액세스가 허용되므로 표준 IIS 시작 화면이 표시되어야 합니다. 웹 서버 가상 머신(예: MyVMWeb)에 연결된 네트워크 인터페이스는 웹 서버 애플리케이션 보안 그룹(예: MyAsgWebServers)과 연결되므로, 연결이 허용됩니다.

이 모든 작업에 대한 자세한 단계를 보려면 자습서: Azure Portal을 사용하여 네트워크 보안 그룹을 통해 네트워크 트래픽 필터링을 참조하세요.

지식 점검

1.

보안 구성을 설계할 때의 원칙은 무엇인가요?

2.

다음 중 NSG의 기본 네트워크 보안 규칙은 무엇인가요?