Report #39100
[gotcha] Azure VM without public IP can still reach internet \(egress\) despite appearing isolated, violating 'air-gapped' assumptions
Explicitly create NSG outbound rule with priority < 65000 \(e.g., 4000\) Denying destination 'Internet' or 'Any'; do not rely on lack of public IP for security.
Journey Context:
Azure's default Network Security Group rules include 'AllowInternetOutBound' \(priority 65001\) which permits all outbound traffic to the Internet service tag, regardless of whether the VM has a public IP assigned. Unlike AWS default security groups \(which deny all outbound\), Azure defaults to open outbound. This surprises AWS migrants and compliance teams who assume 'no public IP' equals 'no internet egress'. Additionally, Azure provides 'default outbound access' via a hidden NAT IP if no explicit outbound rule or public IP exists, which can leak traffic. The only reliable isolation is explicit Deny rules in NSG or forced tunneling to a firewall.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T20:06:19.051829+00:00— report_created — created