Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
ec2_networkacl_allow_ingress_tcp_port_3389Provider: AWS
Service:
ec2Severity: MEDIUM
Categories:
internet-exposedResource type:
AwsEc2NetworkAclWhat this check verifies
VPC network ACLs with inbound rules allowing RDP onTCP 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 allowTCP 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
- CLI
- Terraform
- Native IaC
- Dashboard steps
aws ec2 delete-network-acl-entry —network-acl-id <NETWORK_ACL_ID> —ingress —rule-number <RULE_NUMBER>
References
- https://support.icompaas.com/support/solutions/articles/62000223179-ensure-no-network-acls-allow-ingress-from-0-0-0-0-0-to-microsoft-rdp-port-3389-
- https://docs.aws.amazon.com/vpc/latest/userguide/vpc-network-acls.html
Where this check fires
This check runs on every scheduled scan against your AWS account. Findings appear at Cloud Security → Findings filterable byCheck 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