Hi Balraj Kumar,
You can use a combination of other Azure service tags to ensure that your AKS nodes can still communicate with necessary Azure-managed endpoints, like for public AKS clusters, use the AzureCloud service tag to allow outbound communication to Azure's public endpoints, including the AKS control plane, telemetry, and identity services. For private AKS clusters, where the control plane is external to your VNet, you must allow outbound access to the control plane's IP range.
Why it's not available in NSG:
Azure NSGs support a limited subset of service tags, mostly for layer 3/4 network filtering (IP-based).
AzureKubernetesService, on the other hand, involves FQDN-based destinations (like telemetry endpoints, MSI, etc.), which require application-layer filtering (i.e., L7). NSG cannot inspect FQDNs — only IP addresses or IP prefixes, hence it does not support this service tag.
How to allow AzureKubernetesService traffic without Firewall?
To allow AzureKubernetesService egress without NSG support, you need to route outbound traffic through a NAT Gateway, then use a custom route table to:
• Force all egress from your AKS subnet to go through the NAT Gateway.
• Ensure the NAT Gateway’s public IP(s) are allowed to access Azure’s endpoints.
While NSGs can't allow AzureKubernetesService, traffic still flows if not explicitly blocked and routed via NAT Gateway.
For detailed guidance on implementing this setup, refer to the following Microsoft documentation:
https://learn.microsoft.com/en-us/azure/aks/nat-gateway
https://learn.microsoft.com/en-us/azure/aks/egress-outboundtype
Recommendation (without Azure Firewall):
- Use Outbound Type: UserDefinedRouting, this disables default SNAT and lets you define your own egress path.
- Create NAT Gateway with static public IP, attach it to your AKS subnet.
- Private ACR (with Private Link) – done, this handles image pulling without public internet.
- Enable only outbound via NAT Gateway for necessary Azure services (i.e., don’t explicitly block those outbound IPs/domains)
- In NSG:
Deny all outbound except: To your NAT Gateway route and Private ACR.
No need to add AzureKubernetesService — just avoid blocking it
- Control domains (optional):
If you must restrict domains:
Use Azure Firewall DNS-based filtering or deploy custom DNS + Proxy that allows only required AKS control plane domains (complex and fragile)
I hope this information is helpful, please click "Upvote" on the post to let us know.
Thank You.