Eu tenho um cenário estranho que não sei como se locomover.
Normalmente isso é possível com as ACLs de sub-rede - no entanto, elas não são stateful. Preciso de pacotes "de resposta" estabelecidos para permitir um retorno (como um firewall típico)
Eu tenho uma sub-rede pública e privada.
O público precisa entrar em contato com a Internet para que eu tenha permissão de saída para 0.0.0.0/0, mas eu quero restringir a saída para sub-redes específicas (10.100.1.0/24 e 10.150.2.0/24, por exemplo)
Eu poderia, claro, configurar isso facilmente no ACL, já que ele permite 'negar', mas não permite pacotes de resposta, pois não é stateful.
A única opção é controlar isso com regras de 'entrada' nas outras sub-redes internas? Isso faz muito mais regras para nossas diferentes redes quando seria muito mais limpo apenas restringi-lo na saída.
Todas as ideias são bem-vindas, incluindo a reformulação da coisa toda (isto é greenfield)
O comentário abaixo pediu para esclarecer melhor as necessidades do ambiente, então aqui está o ambiente como está sendo pedido para eu construir:
Pense nisso como um local e DMZ:
- As instâncias na sub-rede pública 10.200.0.0/24 não podem iniciar novas conexões de saída nas sub-redes privadas 10.100.0 / 24.
- As instâncias na sub-rede privada 10.100.0.0/24 podem iniciar novas conexões de saída na sub-rede pública (para ssh, código de implementação etc.).
- A sub-rede pública precisa iniciar o tráfego de saída para a internet livremente
- Devido às limitações da ACL, se eu bloquear a saída de public > privado, ele não permitirá pacotes de retorno (desde que não seja stateful)
Neste momento, a única coisa em que consigo pensar é confiar no iptables e no windows firewall dentro das próprias instâncias, o que é possível, mas muito mais difícil de gerenciar.
Outra ideia é implantar um firewall de software no EC2 (mais $$) que possa permitir / negar o tráfego de maneira estável. Ainda outra máquina para gerenciar.
Outra ideia é fazer com que o grupo de segurança negue a entrada de tráfego da sub-rede pública para a sub-rede privada que teria que ser permitida em todas as instâncias da sub-rede privada. O problema é que os grupos de segurança não possuem regras de negação. Novamente não é ideal.
Ter uma ACL com estado ou permitir negar regras em grupos de segurança resolveria o problema completamente. Infelizmente, nem é possível na infraestrutura atual da AWS.