Check ID:
Provider: AWS
Service:
Severity: MEDIUM
Categories:
Resource type:
emr_cluster_master_nodes_no_public_ipProvider: AWS
Service:
emrSeverity: MEDIUM
Categories:
internet-exposedResource type:
OtherWhat this check verifies
Amazon EMR clusters in non-terminated states are assessed for public IP assignment on cluster nodes (primary and workers). The finding identifies clusters whose instances are reachable via public IPs rather than private VPC addresses.Risk
Publicly reachable EMR nodes expose admin UIs and SSH to the Internet, enabling brute force and service exploits. A compromised primary node can alter jobs and exfiltrate data from S3/HDFS, degrading confidentiality and integrity, and disrupt workloads, impacting availability.Recommendation
Run EMR in private subnets without public IPs. Use VPC endpoints for AWS services and NAT only when needed. Enforce least privilege security groups, avoid0.0.0.0/0, and prefer SSM or a bastion for admin access. Keep EMR block public access enabled and favor private connectivity for external dependencies.
Remediation
- Terraform
- Native IaC
- Dashboard steps
References
- https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-vpc-subnet.html
- https://aws.amazon.com/blogs/aws/new-launch-amazon-emr-clusters-in-private-subnets/
- https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-block-public-access.html
- https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-clusters-in-a-vpc.html
- https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-launching-job-flows.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 = emr_cluster_master_nodes_no_public_ip. 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