AWS Network Firewall vs. Security Groups vs. NACLs


VPC Fundamentals
What is a VPC?
VPC Security and Control
VPC Connectivity
VPC Sharing using the AWS Resource Access Manager
Feature Spotlight:
Start course
3h 12m

In this section of the AWS Certified Advanced Networking - Specialty learning path, we introduce you to the various networking and VPC services currently available in AWS that are relevant to the ANS-C01 exam.

Learning Objectives

  • Identify and describe the various networking services available in AWS
  • Describe how to configure an Amazon Virtual Private Cloud (VPC)
  • Understand how to control network traffic via Security Groups and Network Access Control Lists (NACLs)
  • Describe options for VPC connectivity, subnets, and routing
  • Understand how to share VPC resources using the AWS Resource Access Manager (RAM)
  • Identify how to evaluate the configuration of VPC resources using the VPC Reachability Analyzer


The AWS Certified Advanced Networking - Specialty certification has been designed for anyone with experience designing, implementing, and operating complex AWS and hybrid networking architectures. Ideally, you’ll also have some exposure to the nuances of AWS networking, particularly regarding the integration of AWS services and AWS security best practices. Many exam questions will require advanced level knowledge of many AWS services, including AWS networking services. The AWS Cloud concepts introduced in this course will be explained and reinforced from the ground up.


In this lecture, we need to discuss the difference between an AWS Network Firewall, Security groups, and our Network access control list. An AWS security group is a virtual firewall used to protect AWS instances. Now, we can't just say EC2 instances because security groups are used for AWS services that deploy AWS-managed instances to support AWS-managed services. Wow, a lot of managed in that sentence. Example, AWS directory services uses EC2 instances to support the service, but you can't access the instances since it's a managed service. 

SGs, or Security groups, have granular rules for inbound/outbound traffic. By default, all outbound traffic is allowed out, but you can explicitly deny certain types of outbound traffic. Security groups are considered stateful. So, traffic that is allowed outbound will be allowed back inbound since the communication has already been established. If you want to allow other types of inbound traffic where the communication did originate from the instance, then an inbound rule will need to be configured. 

What about Network access control lists, or what's typically referred to as NACLs? NACLs do not protect instances. They only protect the network around the infrastructure. Example, you can govern the access and network traffic to public and private subnets within a VPC utilizing a different set of rules. The default is to allow all traffic to go through because, let's face it, Network access control lists are tough to work with and understand if you aren't used to it. Now, how does AWS Network Firewall fit into the picture with Security groups and Network access control list?

We can easily take security groups out of this comparison because they only protect instances. The real comparison is AWS Network Firewall versus NACLs. If you're looking to fully manage all of your VPc network traffic, set up alerting, logging, handle application traffic, integration with AWS WAF and AWS Shield using AWS Firewall Manager, my suggestion would be to go with AWS network firewalls. If not, it's probably easier to use NACLs and what I'd like to call a 'set it and forget' method that provides you with VPC security.


About the Author
Learning Paths

Stuart has been working within the IT industry for two decades covering a huge range of topic areas and technologies, from data center and network infrastructure design, to cloud architecture and implementation.

To date, Stuart has created 150+ courses relating to Cloud reaching over 180,000 students, mostly within the AWS category and with a heavy focus on security and compliance.

Stuart is a member of the AWS Community Builders Program for his contributions towards AWS.

He is AWS certified and accredited in addition to being a published author covering topics across the AWS landscape.

In January 2016 Stuart was awarded ‘Expert of the Year Award 2015’ from Experts Exchange for his knowledge share within cloud services to the community.

Stuart enjoys writing about cloud technologies and you will find many of his articles within our blog pages.