Revise que los permisos otorgados sean los deseados, ya que frecuentemente desarrolladores crean security groups abiertos para realizar pruebas y olvidan cerrarlos previo a pasarlos a producción.
AWS Config cuenta con reglas como restricted-ssh que pueden ser usadas para detectar Security Groups que tienen SSH abiertos a cualquier IP, lo cual no es una buena práctica, se recomienda el uso de AWS Systems Manager Session Manager que no requiere la apertura de puertos inbound, o el uso de bastiones (hardened).
Si utiliza cargas con Microsoft Windows, puede aprovechar AWS Systems Manager Session Manager para gestionar vía Powershell, pero requiere bastiones para acceso vía Remote Desktop (RDP). Puede utilizar la regla de AWS Config restricted-common-ports indicando el puerto 3389 como uno de los parámetros para detectar puertos RDP abiertos.
Otra recomendación es el uso de las referencias en los security groups, por ejemplo, en una aplicación web:
De este modo, las instancias web solo atienden tráfico desde el ALB (dónde puedes configurar AWS WAF ), asegurando que todo el tráfico entrante a las instancias web haya sido inspeccionado. El servicio de base de datos atiende solo a los web servers, y si por el autoscaling se agrega una nueva instancia, esta será agregada en el security group y podrá acceder a la base de datos.
Veamos el siguiente ejemplo simplificado con sólo web servers y backends: