Limitar el acceso de red usando Security Groups

Otorgue siempre los permisos mínimos necesarios en los Security Groups (least privilege).

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 Fleet Manager que no requiere la apertura de puertos inbound, o si por alguna razón no fuera posible, utilizar bastiones (hardened).

Si utiliza cargas con Microsoft Windows, puede aprovechar AWS Systems Manager Fleet Manager para gestionarlas vía Remote Desktop (RDP) sin abrir puertos de administración en los security groups. 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.

Uso de referencias en security groups

Otra recomendación es el uso de las referencias en los security groups, por ejemplo, en una aplicación web:

  • Un Application Load Balancer con el security group “sg-alb” permite conexiones inbound al puerto 80/443
  • Un Autoscaling group con web servers en múltiples zonas de disponibilidad usando el security group “sg-webservers” aceptando tráfico al puerto 80/433 sólo desde recursos con el Security Group “sg-alb” (véase, solo desde el load balancer).
  • Un servicio de bases de datos, como Amazon Aurora o Amazon RDS configurado con un security group “sg-db” aceptando tráfico al puerto 3306 sólo desde instancias con el Security Group “sg-webservers”.

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.

Security Groups

Veamos el siguiente ejemplo simplificado con sólo web servers y backends:

Security Groups

Security Groups

Security Groups

Webinar: Fundamentos de redes en AWS (en Español)

https://pages.awscloud.com/aws-summit-online-NET201-ES.html