Security Groups e Network ACLs são ferramentas de controle de acesso(Firewalls) que aplicam regras sobre o tráfego de rede de entrada e saída, apesar desta semelhança eles possuem algumas diferenças de funcionamento, o Security Group é STATEFUL enquanto o Network ACL é STATELESS.
Inicialmente podemos criar listas de controles de acesso, ou seja, Network ACLs(Access Control List) que são aplicados a nível de subnet. Desta forma todo o tráfego de entrada e saída das subnets passa pelo Network ACL.
<aside> 💡 dúvida: criar uma regra na RouteTable que direciona o tráfego para um Gateway ou algo do tipo burla o Network ACL?
In theory, you can define multiple route tables and swap them in and out depending on how you want to control the traffic. However, in practice, it helps if you have general rules (Routes) and then tightening the rules (ACLs) as is necessary. For example:
Thus, you can swap out ACLs as is needed without removing the general rules underneath. ACLs also allow special rules for outbound as well as inbound traffic, so you can allow certain "people" to enter, but forbid them from leaving, for example.
https://stackoverflow.com/questions/60211533/what-is-the-diference-between-network-acl-and-route-tables-in-aws/64635681
</aside>
Outra possibilidade para controle de tráfego são os Security Groups, eles ****são aplicados a nível de instância na própria interface de rede(ENI - Elastic Network Interface) das instâncias EC2 e podem ser associados a instâncias distintas em subnets diferentes. security groups também podem ser associados a ALBs(application load balancer)
No exemplo abaixo uma requisição é feita a partir de uma instância associada ao Security Group A para uma instância associada ao Security Group B:
You can add or remove rules for a security group (also referred to as authorizing or revoking inbound or outbound access). A rule applies either to inbound traffic (ingress) or outbound traffic (egress). You can grant access to a specific CIDR range, or to another security group in your VPC or in a peer VPC (requires a VPC peering connection).
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules
No exemplo abaixo um cliente quer se conectar a um webserver.
Quando falamos no sentido cliente → servidor temos a Source Port 65188 que é uma porta atribuída de maneira dinâmica a toda conexão, essa porta recebe valores maiores do que 1024, a Destination Port é a porta 80 do serviço web. O Source IP é o endereço do cliente 10.1.1.1 enquanto o Destination IP é o endereço do servidor 10.2.1.10.
O fluxo oposto, isto é, servidor → cliente é quase como um espelhamento das informações citadas acima.
Todas estas informações são adicionadas as rule tables do firewall com pequenas diferenças, exemplo logo abaixo.