Limitar los acceso en 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 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.

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