En el vertiginoso mundo de la nube, la correcta organización, gestión y operación de tus recursos puede ser la diferencia entre un proyecto exitoso y uno que enfrenta constantes desafíos. Es aquí donde las Azure Landing Zones (ALZ) emergen como un faro de guía y eficiencia.
¿Qué son las Azure Landing Zones?
Las Azure Landing Zones no son meramente herramientas o servicios en Azure, son una estrategia. Representan un conjunto de directrices, prácticas recomendadas y recursos que garantizan una base sólida para desplegar soluciones en Azure de manera eficiente y segura.
Algunas ventajas clave de empezar con una base sólida:
- Reducir la Complejidad: Azure es un mundo en sí mismo y, sin una guía clara, es fácil perderse. Las ALZ ofrecen un mapa y una estructura para navegar por este entorno.
- Rápida Implementación: Con los recursos y directrices ya configurados en las ALZ, puedes desplegar soluciones más rápidamente, lo que significa un tiempo de valorización más corto.
- Adherencia a las Mejores Prácticas: Azure Landing Zones están diseñadas siguiendo las mejores prácticas de Microsoft. Esto asegura que, desde el inicio, estás en el camino correcto.
Desde Verne Tech podemos ayudarte a implementar tu propia Azure Landing Zone.
Habla con uno de nuestros técnicos y cuéntanos las necesidades de tu empresa.
Desplegar Azure Landing Zones paso a paso
Ahora que ya hemos tocado un poco la teoría, pasemos a la práctica. Aquí os proporcionamos una guía rápida para desplegar ALZ Lite en lenguaje Terraform para aquellos que se inician en Azure o para entornos pequeños.
1. Necesidades y componentes del ALZ Lite
Antes de la implementación, es crucial comprender los recursos y servicios que se van a desplegar. Para la ALZ Lite de esta publicación, se va a necesitar una suscripción activa solamente (en otras ALZ con más recursos, se usan diferentes subscripciones para organizar los recursos de forma más eficiente). En cuanto a los componentes, se desplegarán los siguientes:
a. Nivel Managements groups
Los Management groups son contenedores de alto nivel que permiten gestionar el acceso, las políticas y el cumplimiento normativo a través de varias suscripciones. Todos los ajustes aplicados a un Grupo de Administración se heredan automáticamente por todas las suscripciones que están dentro de ese grupo. En esta ALZ, desplegaremos la estructura de Management groups ideal para poder seguir creciendo, aunque al principio sólo usaremos uno. Tendrá la siguiente estructura:
A nivel de management group desplegaremos las definiciones de varias políticas, las comentaremos más abajo.
b. Nivel Suscripción
Como ya comentamos antes, en esta ALZ usaremos una sola suscripción para el despliegue. En esta suscripción, desplegaremos 3 grupos de recursos:
- i. rg-wk01-network-01: Grupo de recursos para las redes de la carga de trabajo 1. Se despliega una vnet y un nsg que está asociado a las subnets de la vnet.
- ii. rg-wk01-management-001: Grupo de recursos para la administración de la carga de trabajo 1. Se despliega un log analytics y un automation account.
- iii. rg-wk01-workload-001: Grupo de recursos para almacenar los recursos relacionados con la carga de trabajo 1. En este caso, sólo desplegaremos un storage account.
El diagrama sería este:
c. Políticas de Azure
Establecen y refuerzan reglas en tus recursos, garantizando el cumplimiento con estándares corporativos y regulaciones. Para esta ALZ, desplegaremos las siguientes:
- i. pol-neu-01-denyRDP-CustomDef: Esta política niega cualquier regla de seguridad de red que permita el acceso RDP desde Internet.
- ii. pol-neu-02-nomRG-CustomDef: Esta política describe las reglas de nomenclatura para los grupos de recursos. Cada grupo de recursos debe empezar por “rg-“.
- iii. pol-neu-03-inhrTagsSubscription-CustomDef: Hablita la herencia de las etiquetas que estén puestas en la subscripción.
- iv. pol-neu-04-sqltls: Establecer la versión de TLS en 1.2 en las Azure SQL Database.
- v. pol-neu-05-reslocallow: Esta directiva le permite restringir las ubicaciones que su organización puede especificar al implementar los recursos. (En este caso se ha puesto Norte y Oeste de Europa)
- vi. pol-neu-06-rglocallow: Esta directiva le permite restringir las ubicaciones que su organización puede especificar al implementar los grupos de recursos. (En este caso se ha puesto Norte y Oeste de Europa)
2. Preparación del Entorno
Asegúrate de tener una suscripción activa de Azure, de configurar tu entorno Azure CLI o Azure PowerShell y de tener instalado Terraform.
Para poder hacer despliegues a nivel de tenant necesitarás tener habilitado unos permisos específicos sobre el usuario/identidad que hará el despliegue. Esto está explicado en el siguiente enlace: ALZ Setup azure · Azure/Enterprise-Scale Wiki · GitHub
3. Implementación del Template
Clona o descarga el template específico para ALZ Lite desde nuestro repositorio en GitHub. Ejecuta el script de implementación personalizando las variables necesarias.
URL al repositorio: https://github.com/ccondev/alzlite
4. Configuración de las variables del archivo Terraform.tfvars
Establece los valores correctos en las variables del archivo terraform.tfvars. Esto incluye valores como el id del Management root y los nombres de los recursos que se desplegarán.
5. Validación y Pruebas
Una vez preparado el entorno y descargado el Código, podremos hacer el despliegue. En mi caso, he instalado Terraform en VS Code y he lanzado el despliegue desde ahí:
- Iniciamos terraform con el comando “Terraform init”:
- Una vez iniciado, validamos el código con el comando “Terraform validate”:
- Tras validarlo, ejecutaremos el comando “Terraform plan -var-file=”terraform.tfvars“”. Este comando validará también el código y nos mostrará los recursos que se van a desplegar.
(He puesto una captura del inicio y otra del final del output, para no poner muchas capturas de lo mismo)
- Si el comando anterior se ha ejecutado correctamente, ejecutaremos el comando de despliegue “Terraform apply -auto-approve”:
(La salida es similar al anterior comando, pero con la diferencia de que irá indicando los recursos que va desplegando)
- e. En el caso de que queráis eliminar los recursos que se han desplegado, podéis hacerlo con el siguiente comando “Terraform destroy -auto-approve”:
(La salida es similar al anterior comando, pero con la diferencia de que irá indicando los recursos que va desplegando)