Azure Application Security Groups

En un post anterior estuvimos tratando el tema de los Network Security Groups:

En esta ocasión vamos a ver cómo se pueden utilizar los Application Security Groups (ASG), que están muy relacionados con los NSG.

Los ASG se utilizan para agrupar servidores o servicios que sean similares. Por ejemplo, queremos proteger con un NSG los servidores Web que hemos desplegado en una subred virtual para que sólo se permita el tráfico a los puertos 80 y 443. Para esto tenemos 3 opciones:

  • Aplicar un NSG a cada una de las tarjetas de red de cada servidor Web. Esto es bastante pesado y engorroso, además de más complejo de administrar porque cualquier cambio implicaría modificar una por una cada tarjeta de red.
  • Aplicar un NSG a la subred en la que se encuentran los servidores Web, pero si hay otro tipo de servidores en la subred, también se verían afectados.
  • Agrupar los servidores web en un ASG y aplicar una regla del NSG al ASG.

En el siguiente ejemplo optamos por la tercera opción utilizando ASG. Tenemos el siguiente escenario:

En el que contamos con 3 máquinas virtuales, una para gestión y dos para servicios Web. Las tres son máquinas virtuales Ubuntu Server que se encuentran en la misma subred (aunque podrían estar en subredes diferentes) y la única que queremos que tenga acceso SSH desde Internet es la primera, para usarla como máquina de salto para la gestión. Las otras dos sólo serán accesibles desde Internet en los puertos 80 y 443, pero no en el SSH.

Para conseguir nuestro objetivo vamos a crear dos Application Security Groups, uno para las máquinas de gestión (aunque solo hay una) y otro para las máquinas Web, y un único Network Security Group que vamos a aplicar a la subred. Ya tenemos las máquinas creadas y funcionando:

Y empezamos creando el primer ASG:

Una vez creado el ASG ya podemos añadir la primera máquina virtual a este grupo desde Networking en las Settings de la máquina:

Configuramos la máquina:

para que pase a formar parte del ASG-Management:

De la misma forma creamos el segundo ASG:

Y configuramos las máquinas VM-Ubuntu-SVNET1-2 y VM-Ubuntu-SVNET1-3 para que pertenezcan a este grupo:

Con esto ya podemos crear el Network Security Group que vamos a asociar a la subred en la que se encuentran estas máquinas:

Creamos la primera regla entrante para el tráfico de gestión (puerto SSH) a la máquina VM-Ubuntu-SVNET1-1 que están en el ASG-Management:

Donde estamos permitiendo que desde Internet nos podamos conectar al puerto 22 (SSH) de las máquinas que formen parte de ese ASG.

Y creamos otra regla para las máquinas que forman parte del ASG-Web:

Lo que nos da como resultado este conjunto de reglas entrantes:

Si aplicamos el NSG a la subred…

Ya habremos conseguido nuestro objetivo, es decir, acceso vía SSH a la primera máquina:

Este acceso estará bloqueado para las otras dos máquinas. Y acceso web a las máquinas VM-Ubuntu-SVNET1-2 y VM-Ubuntu-SVNET1-3, siempre que hayamos instalado en ellas el servicio Web (por ejemplo, Apache). Esta instalación la hacemos desde la máquina de salto VM-Ubuntu-SVNET1-1, ya que la 2 y la 3 no permiten acceso de gestión: