Hoy vamos a hablar de Azure Virtual Desktop, del cifrado y de la seguridad.
Y, lo más importante, veremos cómo automatizar todo esto para ahorrar tiempo sin dejar de seguir las buenas prácticas de Microsoft.
Este es el esquema de arquitectura que vamos a implementar. La idea es sencilla: crear un grupo de recursos que incluya la computación (compute) y el cifrado de los discos (utilizaremos la CMK). Un Key Vault almacenará los secretos, con una rotación configurada cada 30 días para garantizar una mayor seguridad. Otro grupo de recursos se dedicará a la configuración de Azure Virtual Desktop.

¿Qué es la CMK (clave gestionada por el cliente)?
Lasclaves gestionadas por el cliente(CMK) son claves que los clientes pueden leer, crear, eliminar, actualizar o gestionar por sí mismos. Estas claves se almacenan en un Key Vault o en un módulo de seguridad de hardware (HSM) propiedad del cliente. Bring Your Own Key(BYOK) es un escenario en el que un cliente importa sus propias claves desde una ubicación de almacenamiento externa a un servicio de gestión de claves de Azure.
Más información aquí:https://learn.microsoft.com/en-us/azure/security/fundamentals/key-management
Script de Terraform
Ahora que ya sabes un poco más, pasemos al script de Terraform (TF), que vamos a analizar paso a paso.
En primer lugar, vamos acrear un grupo de recursosy unared virtual (VNet)con un espacio de direcciones de 10.0.0.0/16:

Así como unasubred (Subnet):

También vamos acrear un NSG(grupo de seguridad de red) que permita la conexión a través del puerto 443 (HTTPS) con la máquina virtual AVD, y lo asociaremos a la subred creada anteriormente:

Una vez completado este paso, vamos a crear nuestroAzure Virtual Desktop. En primer lugar, vamos a crear el espacio de trabajo (Workspace):

A continuación, creamos elgrupo de hosts:

Consejo: Me ha surgido un error de conexión entre mi escritorio RDWeb y AVD. La solución consiste en añadir la siguiente línea en custom_rdp_properties: ;targetisaadjoined:i:1;.
Una vez creado el grupo de hosts, añadimos una línea para registrar las máquinas virtuales que vamos a crear:

La fecha de caducidades un valor que hay que introducir para permitir el registro de los equipos en el grupo de hosts AVD. La encontrará en la variable correspondiente.

A continuación, vamos a crear elDAG (Desktop Application Group), que es donde se pueden añadir las aplicaciones para que estén disponibles en el AVD:

Por supuesto, vamos a vincular nuestroWorkspace al DAG:

Bueno, ya hemos terminado con Azure Virtual Desktop. Ahora vamos a crear lasmáquinas virtualesy lasinterfaces de red:

Una vez creadas nuestras interfaces de red, crearemos unKey Vaultcon un nombre aleatorio y los permisos adecuados para poder crear una o varias claves y secretos. También activaremos la eliminación diferida (soft delete) durante 7 días y, por último, el cifrado, para que el Key Vault pueda almacenar la clave de cifrado de los discos y los secretos de las cuentas de administrador locales:

A continuación, vamos a crear unaclave aleatoriaque se renueve cada 30 días aproximadamente:

Por último, creamos elconjunto de cifrado de discos:

Vamos a asignar la identidad del conjunto de cifrado de disco a Key Vault para que pueda leer y escribir los valores.

Una vez hecho esto, creamos nuestras máquinas virtuales:

Por último, vinculamos nuestro AVD aAzure Active Directoryy no a un dominio específico o ya existente. También asociamos nuestras máquinas virtuales algrupo de hosts del AVD.

Para añadir un poco de complejidad a nuestro script, crearemos dos grupos que tendrán derechos de acceso a las máquinas virtuales AVD. Estos grupos se añadirán a los roles RBAC «Virtual Machine Administrator Login» y «Virtual Machine User Login»:

Una vez terminado el script, lo ejecutamos:
Ejecuta terraform init

Por último, ejecuta terraform apply -auto-approve o terraform apply para aplicar los cambios:


Si lo comprobamos en Azure, vemos que el grupo de recursos se ha creado correctamente, al igual que toda la infraestructura.

Nuestros grupos se han creado correctamente y se han asignado al RBAC. (No olvides añadir a estos grupos las cuentas que deban acceder a AVD.)

Nuestro Key Vault contiene la clave de cifrado del disco, así como las contraseñas de las cuentas de administrador locales.


El grupo de hosts se ha creado correctamente y se han añadido las máquinas virtuales.


Ahora vamos a iniciar un clienteRDWebo elcliente pesado:
Conéctese a Azure Virtual Desktop con el cliente web de Escritorio remoto – Azure | Microsoft Learn

Lo iniciamos y nos autenticamos con AAD (o Entra ID)

¡Bienvenido a tus máquinas de Azure Virtual Desktop!

Tal y como prometí, encontraréis todo mi script en mi Github. No dudéis en hacer modificaciones. Por mi parte, intentaré mantenerlo actualizado en la medida de lo posible.
Enlace: technicalandcloud/Secure-AzureVirtualDesktop-deployment-with-Terraform (github.com).
Nicolas VACCARO
Ingeniero de nube
