and for all outbound traffic to be explicitly whitelisted
Todo o tráfego de saída de uma instância é listado de forma explícita na AWS por padrão.
in a VPC where we'd like as little outbound traffic as possible,
Sem saber mais detalhes sobre o papel de suas instâncias para o restante de sua infraestrutura, isso é o que posso imaginar acontecendo.
Você poderia: A. use uma topologia com uma sub-rede pública e privada. Instâncias com segurança de missão crítica e / ou instâncias de computação seriam executadas na sub-rede privada e seriam acessíveis apenas a uma instância de gerenciamento em seus IPs privados.
Você poderia tornar instâncias na sua sub-rede privada acessíveis no exterior usando VPN.
C. Se esses servidores forem voltados para a Internet, você poderá proibir todas as conexões de saída para qualquer IP, exceto os serviços principais (Dovecot, NGINX, etc.) e usar o Puppet para atualizações automáticas (de um repositório baixado para o VPC pela sua instância de gerenciamento) . Dessa forma, você não precisa se preocupar com os IPs de alguns repositórios espelhados, você simplesmente proíbe todos eles até que sejam verificados e execute atualizações automáticas para o mínimo de esforço.
Espero que isso ajude (e se isso acontecer, por favor vote).
Is there a popular firewall / NAT software that you use for more sophisticated filtering?
Algumas empresas de segurança vendem suas soluções no AWS Marketplace (como bloqueadores de países) para aqueles que precisam de segurança paranoica.