이 글부터는 Azure의 네트워킹에 대해 간단히 알아본다. 주제는 VNet, NSG, Default Outbound Access다.

VNet(Virtual Network)
Azure VNet(Virtual Network)은 Azure에서의 가상의 사설 네트워크다. 쉽게 말해 Azure에서 VM과 다른 리소스들이 통신할 수 있도록 만들어주는 네트워크 환경이라고 생각하면 된다.
예시를 들자면 VNet은 아파트 단지와 비슷하다. 아파트 단지 안에서는 인터폰을 통해 세대 간(서브넷 간) 자유롭게 통신할 수 있다. 하지만 인터폰으로 외부와 통신하려면 인터넷 연결(인터넷 게이트웨이) 또는 방화벽(NSG)을 거쳐야 한다.
주요 기능은 다음과 같다.
- IP 주소 관리 → VNet 내부에서 사용할 사설 IP 대역(CIDR 블록) 정의
- 서브넷(Subnet) 생성 → VNet을 여러 개의 작은 네트워크(서브넷)로 나눌 수 있음
- VNet 간 연결(Peering) → 서로 다른 VNet을 연결하여 확장 가능
- 온프레미스 네트워크 연결 → VPN 또는 ExpressRoute를 통해 기존 네트워크와 연결 가능
NSG(Network Security Group)
NSG(Network Security Group)는 Azure 네트워크에서 트래픽을 제어하는 방화벽 역할을 한다. VNet 내부 또는 외부에서 들어오고 나가는 네트워크 트래픽을 필터링하는 기능을 제공한다.
NSG는 아파트 경비원과 비슷하다. 특정 사람(트래픽)이 아파트(네트워크)에 들어오거나 나가는 것을 허용 또는 차단하는 역할을 한다. 예를 들어, 외부 손님(인터넷 트래픽)은 허가된 경우에만 특정 세대(VM)로 들어올 수 있다.
그래서 외부에서 들어오는 Inbound 규칙, 내부에서 나가는 Outbound 규칙을 제어하고 5-Tuple 방식(소스 IP, 대상 IP, 소스 포트, 대상 포트, 프로토콜)으로 트래픽 필터링 규칙을 설정할 수 있다. 이러한 규칙은 서브넷이나 NIC 단위로 적용 가능하다. 또 둘 다 적용된 경우, 서브넷 규칙을 먼저 처리한다. 둘 다 적용 가능하다고 하지만 서로 충돌될 수 있으니 특별한 이유가 없는 이상 둘 중 하나에만 연결하는게 좋다고 한다.
만약 VM이 인터넷에서 SSH(22번 포트) 접속을 허용하려면 NSG에 다음과 같은 규칙을 추가해야 한다.
규칙 이름 | 방향 | 소스 | 소스 포트 | 대상 | 대상 포트 | 프로토콜 | 액션 |
Allow-SSH | 인바운드 | Any | Any | VM의 IP | 22 | TCP | Allow |
반대로, 보안 강화를 위해 모든 SSH 접속을 차단하려면 Deny 규칙을 추가해야 한다.
그리고 NSG에는 Azure가 미리 정의한 삭제가 불가한 기본 규칙이 있다.

아래 그림에서 보면 3개의 서브넷에 다른 2개의 NSG가 배치되어 있다. 4개 VM에 적용되는 규칙을 알아보자.

- VM1
- VM1이 Subnet1에 있으므로 Subnet1에 연결된 NSG1의 보안 규칙 적용
- 포트 80 인바운드를 허용하는 규칙을 만들지 않은 경우 DenyAllInbound 규칙 적용
→ 차단되었으므로 NSG2의 영향을 받지 않음
- 포트 80 인바운드를 허용하는 규칙을 만들지 않은 경우 DenyAllInbound 규칙 적용
- NSG1이 포트 80 허용하는 경우 NSG2 적용 → 즉 포트 80을 허용하려면 NSG1, NSG2 모두 허용 규칙 필요
- VM1이 Subnet1에 있으므로 Subnet1에 연결된 NSG1의 보안 규칙 적용
- VM2
- Subnet1에 있기 때문에 NSG1의 규칙 적용 및 NIC에 연결된 NSG가 없으므로 추가 적용되는 규칙 없음
→ NSG가 서브넷에 연결된 경우 서브넷 내 모든 리소스가 같은 NSG 규칙에 적용
- Subnet1에 있기 때문에 NSG1의 규칙 적용 및 NIC에 연결된 NSG가 없으므로 추가 적용되는 규칙 없음
- VM3
- Subnet2에 연결된 NSG 없으므로 서브넷으로 가는 트래픽이 허용
- 후에 VM3의 NIC에 연결된 NSG2의 규칙 적용
- VM4
- NSG가 서브넷나 NIC에 연결되지 않음
→ 서브넷이나 NIC에 NSG이 연결되지 않으면 서브넷 및 NIC를 통과하는 모든 네트워크 트래픽이 차단
- NSG가 서브넷나 NIC에 연결되지 않음
Default Outbound Access
Azure에는 AWS와 비교되는 네트워킹 기능으로 Default Outbound Access라는 것이 있다. 이 기능은 쉽게 말해서 Azure VM을 생성하면 (별다른 설정없이) 자동으로 인터넷으로의 접속이 허용되는 것이다. 즉 명시적으로 Outbound 룰에 인터넷 허용 규칙을 생성하지 않아도 인터넷이 되는 것이다. 물론 Inbound는 막혀있다.
클라우드에서 가장 중요하고 또 어려운 것이 네트워킹이라 이러한 차이가 Azure를 구성하는 특징적인 요소라고 생각했는데 25년 9월까지만 지원할 예정이라고 한다. 그래서 이젠 명시적으로 인터넷 허용 규칙을 등록해줘야만 인터넷 Outbound가 가능하다: https://azure.microsoft.com/ko-kr/updates?id=default-outbound-access-for-vms-in-azure-will-be-retired-transition-to-a-new-method-of-internet-access
Azure 업데이트 | Microsoft Azure
지금 Microsoft Azure를 구독하고 서비스 업데이트를 한 곳에서 확인하세요. 최신 제품 계획을 보려면 클라우드 플랫폼 로드맵을 확인하세요.
azure.microsoft.com
△ 기존 동작 방식
- VNet에 연결된 VM이 인터넷으로 나갈 때 자동으로 Azure에서 동적 IP를 할당하여 통신 가능
- 사용자가 별도로 설정하지 않아도 인터넷 연결 가능
△ 변경 사항 (2025년 9월 30일 이후)
- 기본적으로 모든 outbound 인터넷 트래픽이 차단됨
- 인터넷으로 나가려면 Explicit Outbound 설정이 필요
Azure Private Subnet
어찌보면 당연한 수순이기도 하다. 아무튼 해당 기능이 종료됨에 따라 Azure에서는 NAT GW를 사용하거나 ALB에서 Outbound 룰을 설정하는 방법, 또한 Azure Private Subnet 사용을 권장하고 있다. 이 기능을 사용하면 Default Outbound Access 값이 false로 설정되어 명시적 허용 규칙 없이는 인터넷으로 못나간다고 한다!

https://azure.microsoft.com/ko-kr/updates?id=public-preview-private-subnet
Azure 업데이트 | Microsoft Azure
지금 Microsoft Azure를 구독하고 서비스 업데이트를 한 곳에서 확인하세요. 최신 제품 계획을 보려면 클라우드 플랫폼 로드맵을 확인하세요.
azure.microsoft.com
'Azure Security' 카테고리의 다른 글
Azure Storage (1) Storage Account와 Storage (0) | 2025.04.04 |
---|---|
Azure Computing (1) AKS와 ACR (0) | 2025.04.04 |
Azure IAM (3) Service Principal와 Managed Identity (0) | 2025.04.04 |
Azure IAM (2) Entra Role과 Azure Role (0) | 2025.04.04 |
Azure IAM (1) Microsoft Entra ID (0) | 2025.04.04 |