Secure your Amazon EMR cluster from unintentional network exposure with Block Public Access configuration
AWS security groups act as a network firewall that allows you to control access to your cluster to only whitelisted IP addresses. Proper management of security groups rules is critical to protect your application and data on the cluster. Amazon EMR strongly recommends creating restrictive security group rules that include the necessary network ports, protocols, and IP addresses based on your application requirements.
While AWS account administrators can protect cloud network security in different ways, a new feature helps them prevent account users from launching clusters with misconfigured security group rules. Misconfiguration can open a broad range of cluster ports to unrestricted traffic from the public internet and expose cluster resources to outside threats.
This post discusses a new account level feature called Block Public Access (BPA) configuration that helps administrators enforce a common public access rule across all of their EMR clusters in a region.
Overview of Block Public Access configuration
BPA configuration is an account-level configuration that helps you centrally manage public network access to EMR clusters in a region. You can enable this configuration in a region and block your account users from launching clusters that allow unrestricted inbound traffic from the public IP address ( source set to 0.0.0.0/0 for IPv4 and ::/0 for IPv6) through its ports. Your applications may require specific ports to be open to the internet. In that case, configure these ports (or port ranges) in the BPA configuration as exceptions to allow public access before you launch clusters.
When account users launch clusters in the region where you have enabled BPA configuration, EMR will check the port rules defined in this configuration and compare it with inbound traffic rules specified in the security groups associated with the clusters. If these security groups have inbound rules that open ports to the public IP address but you did not configure these ports as exception in BPA configuration, then EMR will fail the cluster creation and send an exception to the user.
Enabling BPA configuration from the AWS Management Console
To enable BPA configuration, you need permission to call PutBlockPublicAccessConfiguration API.
- Log in to the AWS Management Console. From the console, navigate to the Amazon EMR
- From the navigation panel, choose Block Public Access.
- Choose Change and select On to enable BPA.
By default, all ports are blocked except port 22 for SSH traffic. To allow more ports for public access, add them as exceptions.
- Choose Add a port range.
Before launching your cluster, define these exceptions. The port number or range should be the only ones in the security group rules that have an inbound source IP address of 0.0.0.0/0 for IPv4 and ::/0 for IPv6.
- Enter a port number or the range of ports for public access.
- Choose Save Changes.
In this post ,we discussed a new account level feature on Amazon EMR called Block Public Access (BPA) configuration that helps administrators manage public access to their EMR clusters. You can enable BPA configuration today and prevent your EMR cluster in a region from being unintentionally exposed to public network.
About the Author
Vignesh Rajamani is a senior product manager for EMR at AWS.
Esther Kundin is a software development engineer for EMR at AWS.
Wesley Blumenthal is a software development engineer for EMR at AWS.