Azure 환경에서 가상 머신과 가상 네트워크를 안전하게 운영하려면 네트워크 보안 그룹(Network Security Group, NSG)에 대한 올바른 이해가 필수적입니다. NSG는 Azure 리소스로 들어오고 나가는 트래픽을 필터링하는 핵심 보안 도구로, 서브넷 또는 네트워크 인터페이스 단위로 세밀한 접근 제어를 가능하게 합니다. 이 글에서는 NSG의 기본 개념부터 생성 방법, 적용 위치, 그리고 애플리케이션 보안 그룹(ASG)과의 차이점까지 체계적으로 정리해 드립니다.
1. Azure 네트워크 보안 그룹(NSG)이란?
네트워크 보안 그룹은 Azure 리소스로 유입되거나 외부로 나가는 네트워크 트래픽을 필터링하는 기능을 제공합니다. NSG 내부의 보안 규칙(security rules)은 다양한 종류의 Azure 리소스에 대해 어떤 트래픽이 허용되고 차단되는지를 정의합니다.
NSG는 ACL(Access Control List, 접근 제어 목록)을 생성하여 가상 머신이 접근할 수 있는 네트워크 트래픽과 그렇지 않은 트래픽을 판단하는 데 사용됩니다. 하나의 NSG는 서브넷 또는 해당 서브넷 내의 개별 가상 머신 인스턴스에 연결할 수 있으며, 여러 서브넷과 네트워크 인터페이스에 자유롭게 연결될 수 있습니다.
2. Azure에서 NSG 생성하는 방법
Azure Portal을 통해 간단하게 NSG를 생성하고 서브넷에 연결할 수 있습니다. 절차는 다음과 같습니다.
① Azure Portal에 로그인합니다.
② [리소스 만들기(Create a Resource)] 메뉴를 클릭합니다.
③ [네트워킹(Networking)] 카테고리를 선택합니다.
④ [네트워크 보안 그룹(Network Security Group)]을 선택하여 생성을 진행합니다.
3. 내 Azure 네트워크 보안 그룹 찾기
기존에 생성된 NSG를 확인하려면 다음 순서대로 진행하세요.
① Azure Portal에 로그인합니다.
② [모든 서비스(All services)]를 선택합니다.
③ 검색창에 'network security groups'(네트워크 보안 그룹)를 입력합니다.
④ 검색 결과에서 해당 항목을 선택하면 구독 내 모든 NSG 목록을 확인할 수 있습니다.
4. NSG를 적용할 수 있는 위치
NSG는 두 가지 수준에서 적용할 수 있습니다.
- 서브넷 연결 시: NSG의 규칙이 해당 서브넷에 연결된 모든 리소스에 적용됩니다.
- 네트워크 인터페이스(NIC) 연결 시: 규칙이 개별 네트워크 인터페이스에만 적용됩니다.
또한 NSG를 VM과 네트워크 인터페이스에 동시에 연결하면 트래픽을 더욱 세부적으로 제한할 수 있습니다.
5. VNet(가상 네트워크)에 NSG 적용하기
Azure Virtual Network(VNet) 내의 네트워크 보안 그룹은 어떤 트래픽을 허용하거나 차단할지 결정하는 일련의 보안 정책을 포함합니다. NSG는 서브넷 또는 각 VM에 바인딩된 네트워크 인터페이스(NIC)에 연결하도록 구성할 수 있습니다.
NSG를 서브넷에 적용하면 해당 가상 네트워크 내 여러 가상 머신에 걸쳐 접근 제어를 일관되게 업데이트할 수 있는 표준화된 인터페이스를 제공받게 됩니다.
6. NSG당 규칙 수 제한
NSG에는 다음과 같은 제한이 있습니다.
- 각 네트워크 보안 그룹당 최대 200개의 보안 규칙
- 구독당 최대 100개의 네트워크 보안 그룹
NSG는 VNet에서 실행되는 애플리케이션에 대해 세분화된 네트워크 트래픽 접근 제어를 제공하며, 위 제한은 이러한 설계 목표에 따라 설정된 것입니다.
7. 애플리케이션 보안 그룹(ASG)이란?
애플리케이션 보안 그룹(Application Security Group, ASG)은 애플리케이션의 구조를 자연스럽게 확장하는 형태로 네트워크 보안을 구성할 수 있게 해주는 기능입니다. 가상 머신들을 그룹으로 묶고, 해당 그룹을 기준으로 네트워크 보안 정책을 적용할 수 있습니다.
특히 ASG를 활용하면 IP 주소를 반복적으로 수정하는 번거로운 관리 작업을 없앨 수 있다는 것이 큰 장점입니다.
8. 애플리케이션 보안 그룹 설정 방법
ASG를 생성하는 과정은 다음과 같습니다.
① 새 리소스를 기존에 생성했거나 선택한 리소스 그룹에 추가합니다.
② 새 애플리케이션 보안 그룹에 이름을 지정합니다.
③ 대상 가상 머신과 동일한 지역(region)에 배치합니다.
④ [다음(Next)] 버튼으로 각 탭을 이동하며 설정을 완료합니다.
⑤ 필요에 따라 추가 리소스를 선택적으로 포함시킬 수 있습니다.
Azure에서 ASG를 VM에 연결하는 방법
① 메뉴에서 [가상 머신(Virtual machines)]을 선택합니다.
② 목록에서 대상 가상 머신을 선택합니다.
③ [네트워킹(Networking)] 메뉴로 이동합니다.
④ 애플리케이션 보안 그룹 항목에서 미리 생성한 보안 그룹을 선택합니다.
⑤ 변경 사항을 저장하면 적용이 완료됩니다.
9. NSG와 ASG의 차이점
Azure에서 네트워크 트래픽을 제어하고 관리하는 데 사용되는 핵심 리소스는 바로 NSG(네트워크 보안 그룹)와 ASG(애플리케이션 보안 그룹)입니다. 두 리소스는 성격이 뚜렷하게 다릅니다.
- NSG: 네트워크 트래픽을 강제하고 통제하는 Azure 리소스 자체입니다.
- ASG: NSG 내부에서 활용되는 개체(object)로, VM을 논리적으로 그룹화하는 역할을 합니다.
즉, ASG는 직접 트래픽을 차단하지 않으며, NSG 규칙에서 더 직관적인 대상 지정을 가능하게 하는 보조 요소라고 이해하면 됩니다.
10. Azure NSG는 방화벽인가?
Azure NSG와 Azure Firewall은 역할과 계층에서 차이가 있습니다.
- Azure Firewall: OSI 7계층 모델의 4계층과 7계층을 모두 지원하는 포괄적이고 강력한 관리형 방화벽 서비스입니다.
- NSG: 3계층과 4계층에서 작동하며, 네트워크 계층에서 트래픽을 필터링하는 기본적인 방화벽에 가깝습니다.
따라서 NSG는 기본적인 트래픽 필터링 도구이며, 고급 위협 방지와 세션 검사 등이 필요하다면 Azure Firewall과 함께 사용하는 것이 좋습니다.