Inicio rápido: Implementación de Azure Firewall con Availability Zones (Terraform)
Artículo
En este inicio rápido, se usa Terraform para implementar una instancia de Azure Firewall en tres zonas de disponibilidad.
Terraform habilita la definición, vista previa e implementación de la infraestructura en la nube. Con Terraform, se crean archivos de configuración mediante la sintaxis de HCL. La sintaxis de HCL permite especificar el proveedor de la nube, como Azure, y los elementos que componen la infraestructura de la nube. Después de crear los archivos de configuración, se crea un plan de ejecución que permite obtener una vista previa de los cambios de infraestructura antes de implementarlos. Una vez que compruebe los cambios, aplique el plan de ejecución para implementar la infraestructura.
La configuración de Terraform crea un entorno de red de prueba con un firewall. La red tiene una red virtual (VNet) con tres subredes: AzureFirewallSubnet, subnet-server y subnet-jump. Cada una de las subredes subnet-server y subnet-jump tiene una única máquina virtual Windows Server de doble núcleo.
El firewall está en la subred AzureFirewallSubnet y tiene una colección de reglas de aplicación con una única regla que permite el acceso a www.microsoft.com.
Una ruta definida por el usuario señala el tráfico de red desde la subred subnet-server a través del firewall, en donde se aplican las reglas de firewall.
Cree un archivo denominado variables.tf e inserte el siguiente código:
Terraform
variable"resource_group_location" {
type = string
description = "Location for all resources."
default = "eastus"
}
variable"resource_group_name_prefix" {
type = string
description = "Prefix for the Resource Group Name that's combined with a random id so name is unique in your Azure subcription."
default = "rg"
}
variable"firewall_sku_tier" {
type = string
description = "Firewall SKU."
default = "Premium"# Valid values are Standard and Premium
validation {
condition = contains(["Standard", "Premium"], var.firewall_sku_tier)
error_message = "The SKU must be one of the following: Standard, Premium"
}
}
variable"virtual_machine_size" {
type = string
description = "Size of the virtual machine."
default = "Standard_D2_v3"
}
variable"admin_username" {
type = string
description = "Value of the admin username."
default = "azureuser"
}
Cree un archivo denominado outputs.tf e inserte el siguiente código:
Terraform
output"resource_group_name" {
value = azurerm_resource_group.rg.name
}
output"firewall_name" {
value = azurerm_firewall.fw.name
}
Inicialización de Terraform
Para inicializar la implementación de Terraform, ejecute terraform init. Este comando descarga el proveedor de Azure necesario para administrar los recursos de Azure.
Consola
terraform init -upgrade
Puntos clave:
El parámetro -upgrade actualiza los complementos de proveedor necesarios a la versión más reciente que cumpla con las restricciones de versión de la configuración.
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
Aplicación de un plan de ejecución de Terraform
Ejecute terraform apply para aplicar el plan de ejecución a su infraestructura en la nube.
Consola
terraform apply main.tfplan
Puntos clave:
El comando terraform apply de ejemplo asume que ejecutó terraform plan -out main.tfplan previamente.
Si especificó un nombre de archivo diferente para el parámetro -out, use ese mismo nombre de archivo en la llamada a terraform apply.
Si no ha utilizado el parámetro -out, llame a terraform apply sin ningún parámetro.
az network firewall show --name$firewall_name--resource-group$resource_group_name--query"{Zones:zones"}
Limpieza de recursos
Cuando ya no necesite los recursos creados a través de Terraform, realice los pasos siguientes:
Ejecute el comando terraform plan y especifique la marca destroy.
Consola
terraform plan -destroy -out main.destroy.tfplan
Puntos clave:
El comando terraform plan crea un plan de ejecución, pero no lo ejecuta. En su lugar, determina qué acciones son necesarias para crear la configuración especificada en los archivos de configuración. Este patrón le permite comprobar si el plan de ejecución coincide con sus expectativas antes de realizar cambios en los recursos reales.
El parámetro -out opcional permite especificar un archivo de salida para el plan. El uso del parámetro -out garantiza que el plan que ha revisado es exactamente lo que se aplica.
Demostrar conocimientos fundamentales de los conceptos de la nube, los servicios principales de Azure, además de las características y herramientas de gobernanza y administración de Azure.