Check ID: ec2_networkacl_allow_ingress_tcp_port_3389
Provider: AWS
Service: ec2
Severity: MEDIUM
Categories: internet-exposed
Resource type: AwsEc2NetworkAcl

What this check verifies

VPC network ACLs with inbound rules allowing RDP on TCP 3389 from 0.0.0.0/0 are identified. Assessment focuses on subnet-level ACL entries that permit this traffic.

Risk

Internet-exposed RDP enables password spraying, brute force, and exploitation of RDP flaws to gain remote control. Allowing it at the subnet layer weakens defense in depth-a misconfigured security group or route can expose instances-leading to data exfiltration, privilege escalation, and ransomware, impacting confidentiality and integrity.

Recommendation

Enforce least privilege: do not allow TCP 3389 from 0.0.0.0/0 in network ACLs.
  • Restrict RDP to specific admin IP ranges
  • Prefer bastion hosts or Session Manager over direct RDP
  • Use private subnets and layer controls for defense in depth

Remediation

aws ec2 delete-network-acl-entry —network-acl-id <NETWORK_ACL_ID> —ingress —rule-number <RULE_NUMBER>

References

Where this check fires

This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable by Check ID = ec2_networkacl_allow_ingress_tcp_port_3389. 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