Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
vpc_subnet_separate_private_publicProvider: AWS
Service:
vpcSeverity: MEDIUM
Categories:
trust-boundariesResource type:
AwsEc2SubnetWhat this check verifies
Amazon VPCs are assessed for network segmentation: at least one public subnet (internet-routable) and one private subnet (non-internet-routable). It flags VPCs with no subnets, only public subnets, or only private subnets.Risk
Missing subnet separation erodes segmentation.- Only public: workloads face Internet exposure, enabling scanning, brute force, and lateral movement, threatening confidentiality and integrity.
- Only private: no controlled egress can break patching and dependencies, impacting availability.
- No subnets: misconfiguration leaves services unreachable.
Recommendation
Segment each VPC: put internet-facing endpoints in public subnets and internal workloads in private subnets. Restrict ingress/egress with tight route tables, NACLs, and security groups, minimizing0.0.0.0/0. Apply least privilege and defense in depth. Provide controlled outbound for private subnets via managed egress and use hardened admin access patterns.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck ID = vpc_subnet_separate_private_public. 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 AWS checks