Que Es Azure Bastion
Azure Bastion1 es un servicio PaaS que ofrece conectividad SSH y RDP segura a máquinas virtuales dentro de Azure, sin necesidad de que estas máquinas virtuales tengan una IP pública.
Es bien conocido que tener máquinas virtuales directamente conectadas a Internet con una IP pública, aumenta la superficie de ataque, y por tanto supone un riesgo considerable al quedar esas máquinas virtuales expuestas a ataques por fuerza bruta e intentos de acceso ilegítimos. Si bien es cierto que puede mitigarse considerablemente ese riesgo con NSGs (permitiendo solo que IPs y puertos específicos queden desbloqueados), no es menos cierto de que es una aproximación al problema que implica la gestión activa de la seguridad, y que aumenta el número de IPs públicas que debemos disponer: las cuales son un recurso valioso (y costoso) en Azure.
Azure Bastion permite reducir esa superficie de ataque pues lo que va a hacer es exponer una única IP pública y puerto (TLS: 443), y actuar como “JumpBox” a otras máquinas virtuales dentro de la VNET de Azure (o a máquinas virtuales que residan en VNETs con las que exista un peering, dependiendo del SKU de Bastion).
La documentación oficial del producto:
https://learn.microsoft.com/en-us/azure/bastion/
https://azure.microsoft.com/en-in/products/azure-bastion/
La Arquitectura de Bastion depende del SKU, y hay 4 SKUs disponibles: Developer, Basic, Standard y Premium.
Como podemos ver Bastion solo expone una IP pública y la conexión a esa IP pública se realiza por protocolo TLS.
Cuando se hace un deployment de Azure Bastion, necesita una subred especial denominada AzureBastion, que tiene que tener un tamaño de /26
Recordemos que /26 implica un número de IPs 2^(32-26)-5 = 2^6 - 5 = 59 IPs
¿Y por qué son necesarias 59 IPs, al menos?
Porque Bastion tiene “Host Scaling”, es decir que el número de instancias a las que las máquinas pueden crecer hasta 50.
La subnet AzureBastion no puede dedicarse a nada adicional, que no sea el propio despliegue de Bastion, por lo que esas 9 IPs que sobran, no serán utilizadas para nada.
Como las subnets de una VNET tienen en Azure conectividad directa, en una VNET en la que esté configurado BASTION, se podrá acceder a todas las máquinas dentro de la VNET
Vamos a ver qué funcionalidades proporciona Bastion
https://learn.microsoft.com/en-us/azure/bastion/bastion-overview#sku
Respecto a los permisos necesarios para que el icono de conectar a Bastion aparezca en la pestaña de Bastión, dentro de la máquina virtual, se requiren los siguiente permisos:
https://edtechjeff.com/2021/09/21/how-to-grant-access-to-azure-virtual-machines-via-bastion/
• Rol de lectura en la máquina virtual.
• Rol de lectura en la NIC con la IP privada de la máquina virtual.
• Rol de lectura en el recurso de Azure Bastion
• Rol de lectura en la VNET de la máquina virtual de destino (si el despliegue de Bastion está en una VNET que tiene un peering)