Llevamos mucho tiempo trabajando con las VM de desarrollo de F&O, sobretodo los partners de Microsoft que necesitan poder cambiar rápida y fácilmente entre diferentes entornos de clientes, y utilizar el VHD es un poco más complicado en ese escenario.

Y por supuesto, usamos RDP para conectarnos a estas VMs. RDP es poco seguro, debido a su débil cifrado, su uso generalizado y la falta de funciones de seguridad integradas en el protocolo. Por lo tanto, los hackers a menudo se centran en RDP para obtener acceso no autorizado a los sistemas. Puedes leer más sobre cómo proteger sus máquinas virtuales en Best practices for defending Azure Virtual Machines.

Con Bastion estás tan seguro como con Gandalf!
Con Bastion estás tan seguro como con Gandalf!

Hoy, vamos a ver los pasos para configurar Azure Bastion para las VMs de desarrollo de Dynamics 365 Finance and Operations.

Azure Bastion

Azure Bastion es un servicio de Azure que te permite acceder remotamente a tus Máquinas Virtuales Azure (VMs) directamente desde el portal de Azure. Esto elimina la necesidad de configurar y mantener conexiones de Escritorio Remoto (RDP) o Secure Shell (SSH) por separado.

Es una solución para corregir las vulnerabilidades de RDP, pero si utilizas Microsoft Defender for Cloud, también podrías utilizar el acceso JIT. Como siempre, decidir entre uno u otro es cuestión de tus preferencias o las de tu cliente.

Si trabajas en un partner, y necesitas configurar esto en uno de tus clientes, necesitarás acceso a su suscripción de Azure, y una vez configurado las personas que necesiten acceder a las máquinas virtuales necesitarán los siguientes roles en Azure:

  • Rol «Reader» en la máquina virtual.
  • Rol «Reader» en la interfaz de la IP privada de la VM.
  • Rol «Reader» en la instancia de Bastion.
  • Rol «Reader» en la red virtual de la máquina destino, si la instancia de Bastion está en una red virtual peered, que veremos que es en breve.

Cómo configurarlo

Vamos a crear todos los recursos en el Azure Portal, asegúrate de que puedes hacerlo antes de empezar.

Redes virtuales de las VMs y peering

Esta sección será larga, pero también importante porque da un poco los detalles básicos sobre redes virtuales que hay que tener en cuenta a la hora de configurar Bastion.

Azure Bastion proporciona acceso vía RDP a máquinas virtuales dentro de una red virtual. Por supuesto, existe algo llamado virtual network peering en Azure que nos permite conectar dos redes virtuales diferentes y compartir los recursos que existen en cada una.

PERO, porque hay un gran PERO, sólo se puede configurar el peering entre redes con diferentes direcciones de red. Esto significa que si la VNet A tiene el espacio de direcciones 10.1.0.0/16, y quieres hacer peering con la VNet B, esta VNet B debe tener un espacio de direcciones diferente.

Deja que Drake te lo explique mejor:

How VNet peering should be
Cómo debería ser el peering

Y algo más: imaginemos que tenemos la VNet A con el espacio de direcciones 10.1.0.0/16, y la VNet B con el direccionamiento 10.3.0.0/16, y configuramos el peering para ambas. Si quisiéramos hacer peering con una tercera VNet C con la VNet A, ésta debería tener un espacio de direcciones diferente al de la VNet A y la VNet B.

O como diría Drake…

VNet peering with several VNets
Cómo debería ser el peering con varias VNet

Esto puede parecer obvio, pero quiero insitir antes de empezar con Bastion porque los valores por defecto de una VM de desarrollo de Dynamics 365 F&O desplegada desde LCS siempre se creará el espacio de direcciones de la VM como 10.1.0.0/16.

Afortunadamente, podemos cambiar eso en la opción de configuración avanzada mientras desplegamos un nuevo CHE, y asignar la VNet de la VM a una red virtual ya existente.

¿Qué sugiero? Yo sugeriría planificar las cosas, si se puede. Esto significa crear primero una red virtual en Azure, y desplegar las VMs que necesiten Bastion dentro de esa VNet. Si haces esto, puedes olvidarte del peering.

Si tienes tus máquinas virtuales en diferentes redes virtuales, hay una alta probabilidad de que tengan el mismo espacio de direcciones. En ese caso, puede desplegar un bastión para cada máquina virtual (más caro) o volver a desplegar las máquinas virtuales en una única VNet (más laborioso). Depende de ti.

Si las VNets de las máquinas virtuales son diferentes, veremos cómo configurar el peering más adelante.

Localización de los recursos

Otra cosa importante que debes recordar: tu NSG, red virtual e instancia de Bastion deben estar en la misma región. Si vas a utilizar diferentes redes virtuales para Bastion y tus máquinas virtuales, la VNet de Bastion puede estar en una región diferente a la de tus máquinas virtuales, pero será la misma que la del NSG y Bastion.

Grupo de seguridad de la red

Después de este largo comentario sobre redes virtuales, podemos dar el primer paso: crear un nuevo Grupo de Seguridad de Red (NSG). Este NSG se utilizará en la red virtual de la instancia de Bastión que crearemos más adelante.

Este paso es obligatorio y se describe en Working with NSG access and Azure Bastion.

Es necesario crear las siguientes reglas de seguridad en el NSG:

Entrada

PuertoProtocoloOrígenDestino
443TCPInternetAny
443TCPGatewayManagerAny
8080, 5701AnyVirtualNetworkVirtualNetwork
443TCPAzureLoadBalancerAny
Reglas de entrada

Salida

PuertoProtocoloOrígenDestino
22, 3389AnyAnyVirtualNetwork
443TCPAnyAzureCloud
8080, 5701AnyVirtualNetworkVirtualNetwork
80AnyAnyInternet
Reglas de salida

Para tener disponibles los valores VirtualNetwork, AzureCloud, Internet, GatewayManager y AzureLoadBalancer en el origen o el destino, hay que seleccionar «Service tag» en el campo Source al crear una nueva regla.

Importante: incluso si no estás usando el puerto SSH (22) debes añadirlo a la regla de salida, de lo contrario cuando apliques el NSG a la red virtual obtendrás un error. Créeme, perdí un poquitín de tiempo hasta que descubrí eso…

Opcional: crear una red virtual

Si quieres, puedes crear una red virtual separada para Bastion. Si decides hacerlo, recuerda crearla con un espacio de direcciones diferente al de la red virtual existente donde están tus máquinas virtuales.

Por ejemplo, crea una nueva VNet con el espacio de direcciones 10.10.0.0/16. Y, esto es importante, debes crear una subred llamada AzureBastionSubnet y con un tamaño de rango de direcciones de al menos 26. El tamaño mínimo de subred es 26, pero puede ser algo mayor, como 25 o 24.

Nueva red virtual
Nueva red virtual

Interconexión de redes virtuales (peering)

Y si creas una red virtual diferente para Bastion, necesitamos crear un peering con la de tus VMs. Ve a la red virtual que has creado para Bastion y luego a la sección Peerings:

Virtual network peerings menu
Menú de peerings

En la pantalla de configuración, asigna un nombre a tus enlaces y selecciona la red virtual de destino:

Virtual network peering setup
Configuración peering

Despliega Bastion

Ahora podemos desplegar la instancia de Bastion. En primer lugar, tenemos que decidir qué tier vamos a utilizar. Bastion ofrece un nivel Basic y un nivel Standard, y aparte del precio tienen algunas diferencias.

El tier Basic sólo permite dos instancias de Bastion, y sólo se puede conectar a la instancia de Bastion a través del navegador.

El tier Standard te permite decidir cuántas instancias tiene, además también te permite conectarte a Bastion usando tu cliente RDP en tu PC, además de otras características.

Dependiendo de a cuántas VMs necesites conectarte, y si quieres usar tu cliente RDP local te decantarás por uno u otro.

En cuanto al precio, es un poco más barato desplegar 1 instancia Standard de Bastion para acceder a más de 2 VMs, que crear múltiples instancias tipo Basic de Bastion. Así que si tienes 8 VMs, puedes crear 4 instancias Basic, una por cada 2 VMs, o 1 instancia Standard para las 8, y la Standard será un poco más barata que las Basic.

Así que ve al portal y crea una nueva instancia de Bastion, ¿recuerdas lo de la subred /26? Si la red virtual que eliges no la tiene, te saldrá un aviso:

Azure Bastion subnet warning
Aviso de subred de Bastion

Puedes crearla pinchando en el enlace «Manage subnet configuration», añade una nueva subred llamada AzureBastionSubnet, ya hemos hablado de esto, y selecciona la NSG que has creado antes aquí:

Nueva Subred para Bastion

Vuelve a la pantalla de Crear un Bastiony pulsa en el botón Revisar + crear, y finalmente Crear. Tardará unos 10 minutos en estar listo.

Acceso a la VM

Ahora en tu VM en Azure, ve a Bastion en la sección de Operaciones y verás esto:

Bastion access
Acceso con Bastion

Ahora sólo tienes que introducir las credenciales RDP que hay en LCS, el nombre de usuario sin la parte «builtin\», y hacer clic en Conectar.

Se abrirá una nueva pestaña del navegador y verás el escritorio de tu VM. ¡Listo!

Conclusión

En conclusión, Azure Bastion es un potente servicio que te permite acceder a tus VMs Azure directamente desde el Portal Azure. Siguiendo los pasos descritos en este artículo, puedes configurar Azure Bastion para tus Dynamics 365 F&O VMs y disfrutar de la comodidad y seguridad de este servicio.

Tendrás que dar acceso a cada desarrollador a la suscripción Azure de las dev VMs con los roles que hemos visto antes, pero es una forma de evitar usar RDP si es necesario y asegurar tu flujo de trabajo.

¡Suscríbete!

Recibe un correo cuando se publique un nuevo post
Author

Microsoft Dynamics 365 Finance & Operations technical architect and developer. Business Applications MVP since 2020.

Write A Comment

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

ariste.info