Check ID:
Provider: Azure
Service:
Severity: HIGH
Categories:
Resource type:
aks_clusters_created_with_private_nodesProvider: Azure
Service:
aksSeverity: HIGH
Categories:
internet-exposed, trust-boundaries, cluster-securityResource type:
microsoft.containerservice/managedclustersWhat this check verifies
AKS agent pools use only private addressing, with node public IP assignment disabled (enableNodePublicIP=false). Clusters where any pool assigns a public IP to nodes are identified.
Risk
Public node IPs expose worker VMs to Internet scanning and exploit attempts against OS or kubelet services. Successful compromise can lead to stolen secrets and images (confidentiality), workload tampering (integrity), and node/resource exhaustion via DDoS or cryptomining (availability).Recommendation
Disable public node IPs on all agent pools (enableNodePublicIP=false) and route egress via a NAT gateway or Azure Firewall. Apply least privilege with NSGs blocking Internet ingress, use private endpoints and bastion/VPN for admin access, and adopt defense in depth with continuous hardening and monitoring.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- https://www.trendmicro.com/cloudoneconformity/knowledge-base/azure/AKS/private-cluster-nodes.html
- https://learn.microsoft.com/en-us/azure/aks/access-private-cluster
- https://learn.microsoft.com/en-us/azure/aks/private-clusters
Where this check fires
This check runs on every scheduled scan against your Azure account. Findings appear at Cloud Security → Findings filterable byCheck ID = aks_clusters_created_with_private_nodes. To re-evaluate after a fix, hit Run now on the account’s schedule under Cloud Security → Schedules — the next scan re-checks this control and marks the finding fixed or keeps it persistent.
← Back to Azure checks