Você deve usar um host de bastiões junto com uma DMZ .
Host de bastões
Também chamado de "Jump Host". Seus servidores de aplicativos (app, db, etc) são configurados para que não haja rota direta para eles da Internet, apenas para os servidores da web. Se esses servidores de back-end precisarem de acesso à Internet, por exemplo, para atualizações, use um NAT gateway ou instância NAT .
Qualquer administração de servidores, porta 22 / RDP, deve passar pelo bastião. Esse bastião é bloqueado com uma variedade de métodos, incluindo apenas aceitar solicitações de endereços IP específicos (usar grupos de segurança e / ou NACLs) e precisar de um certificado para efetuar login (esse é o padrão com a AWS). Você pode enlouquecer e implementar autenticação multifator, mas não sei como isso seria feito - nunca tentei.
DMZ
O DMZ faz parte de uma arquitetura N tier. Isso ajuda a garantir que não haja rota da Internet para seus servidores de aplicativos / banco de dados.
Outras opções
Outra opção é colocar seu servidor da web atrás de um WAF / CDN, como AWS CloudFront ou CloudFlare (que tem um nível gratuito). Esses geralmente reconhecem e interrompem os ataques da camada 7 e ataques DDOS. Você usa um firewall para garantir que ninguém possa se conectar diretamente aos seus servidores da Web, que eles devem passar pelo WAF / CDN.
Um balanceador de carga da AWS inclui o AWS Shield Basic, que fornece outra linha de defesa. Segurança é muitas vezes sobre estratificação de defesas.
A proteção / detecção de invasões é outra coisa que você pode fazer, mas não é trivial e pode ser mais do que o necessário.
Notas
Há muitas outras coisas que você poderia fazer, mas as que estão acima são provavelmente as principais. Os sistemas que precisam de alta segurança tendem a ter vários profissionais de segurança trabalhando por semanas ou meses para protegê-los.
É improvável que o Privatelink seja útil para você. É conectar-se às VPCs para fornecer serviços diretamente, e não pela Internet.