AZ – NSG and ASG

Think of NSG and ASG as two sides of the same coin. The NSG is the actual “firewall” that enforces the rules, while the ASG is a “labeling” system that makes those rules easier to manage and understand.


🛡️ Network Security Group (NSG)

An NSG is a filter for network traffic. It contains a list of security rules that allow or deny traffic based on the “5-tuple” (Source IP, Source Port, Destination IP, Destination Port, and Protocol).

  • Where it lives: You associate it with a Subnet or a Network Interface (NIC).
  • What it does: It acts as a basic firewall for your Virtual Machines (VMs).
  • The Problem: If you have 50 web servers, you’d traditionally have to list all 50 IP addresses in your NSG rules. If you add a 51st server, you have to update the NSG rule. This is tedious and prone to error.

🏷️ Application Security Group (ASG)

An ASG is not a firewall itself; it is a logical object (a grouping) that you put inside an NSG rule. It allows you to group VMs together based on their function (e.g., “Web-Servers” or “DB-Servers”) regardless of their IP addresses.

  • Where it lives: You assign it directly to a Network Interface (NIC).
  • What it does: It allows you to write “natural language” rules. Instead of saying “Allow IP 10.0.0.4 to 10.0.0.5,” you can say “Allow Web-Servers to talk to DB-Servers.”
  • The Benefit: If you scale up and add 10 more web servers, you just tag them with the “Web-Servers” ASG. The NSG automatically applies the correct rules to them without you needing to change a single IP address in the security policy.

🔄 Key Differences at a Glance

FeatureNetwork Security Group (NSG)Application Security Group (ASG)
Primary RoleThe “Enforcer” (Filters traffic).The “Organizer” (Groups VMs).
LogicBased on IP addresses and ports.Based on application roles/labels.
AssociationApplied to Subnets or NICs.Applied only to NICs.
Rule LimitUp to 1,000 rules per NSG.Used as a source/destination inside NSG rules.
MaintenanceHigh (must update IPs manually).Low (rules update automatically as VMs are added).

Better Together: A Real-World Example

Imagine a 3-tier app (Web, App, Database).

  1. You create three ASGs: ASG-Web, ASG-App, and ASG-DB.
  2. You assign each VM to its respective ASG.
  3. In your NSG, you create a rule: Allow Source: ASG-Web to Destination: ASG-App on Port 8080.

Now, it doesn’t matter if your web tier has 1 VM or 100 VMs—the security policy remains exactly the same and stays clean!

Would you like to see an example of how to configure these using the Azure CLI or Portal?

Leave a comment