Maîtriser Azure : Guide d'automatisation d'un Pare-feu avec Terraform et surveillance avancée

Maîtriser Azure : Guide d'automatisation d'un Pare-feu avec Terraform et surveillance avancée

Dans l'écosystème cloud en constante évolution d'Azure, l'automatisation des déploiements devient essentielle pour optimiser la gestion des services. Cet article explore le déploiement automatique d'un workbook dédié à la supervision du service Azure Firewall, en utilisant Terraform.

Découvrons ensemble les étapes clés de cette implémentation automatisée.

Déploiement du firewall

La première étape de notre démarche d'automatisation consiste à mettre en place l'infrastructure de base. À l'aide de Terraform, nous allons créer un groupe de ressources (Resource Group), configurer un réseau virtuel (VNET), et déployer un pare-feu (Firewall) avec un SKU standard. Cette architecture initiale établit les fondations nécessaires pour assurer la sécurité et la connectivité au sein de notre environnement Azure.

La simplicité de cette configuration initiale permet une mise en place rapide et efficace, préparant ainsi le terrain pour les étapes suivantes axées sur le déploiement des composants de surveillance spécifiques à notre pare-feu Azure.

Suivons pas à pas le processus de création de cette infrastructure de base, jetant ainsi les bases d'un environnement sécurisé et prêt à être supervisé.

resource "azurerm_resource_group" "rg" {
  name     = "firewall-resources"
  location = var.location
}

resource "azurerm_virtual_network" "vnet" {
  name                = "vnet"
  address_space       = ["10.0.0.0/16"]
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
}

resource "azurerm_subnet" "fw" {
  name                 = "AzureFirewallSubnet"
  resource_group_name  = azurerm_resource_group.rg.name
  virtual_network_name = azurerm_virtual_network.vnet.name
  address_prefixes     = ["10.0.1.0/24"]
}

resource "azurerm_public_ip" "fw" {
  name                = "fw-pip"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  allocation_method   = "Static"
  sku                 = "Standard"
}

resource "azurerm_firewall" "fw" {
  name                = "firewall"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  sku_name            = "AZFW_VNet"
  sku_tier            = "Standard"

  ip_configuration {
    name                 = "configuration"
    subnet_id            = azurerm_subnet.fw.id
    public_ip_address_id = azurerm_public_ip.fw.id
  }
}

Renforcez la surveillance du firewall

Dans cette deuxième phase de notre automatisation, nous allons élever notre niveau de surveillance en déployant un Azure Analytics Workspace. En parallèle, nous mettrons en place les paramètres de diagnostic spécifiques associés à notre pare-feu Azure fraîchement créé.

L'intégration d'Azure Analytics Workspace offre une plateforme centralisée pour l'analyse approfondie des journaux et des données de télémétrie. Associée aux paramètres de diagnostic du pare-feu, cette configuration permettra une visibilité accrue sur les activités du pare-feu, facilitant ainsi la détection précoce des menaces et la prise de décisions informées.

Suivez avec attention les étapes détaillées pour la mise en place de cette infrastructure de surveillance, renforçant ainsi la sécurité et la gestion proactive de votre pare-feu Azure.

resource "azurerm_log_analytics_workspace" "law" {
  name                = "firewall-log-analytics-workspace"
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  sku                 = "PerGB2018"
  retention_in_days   = var.retention_in_days
}

data "azurerm_monitor_diagnostic_categories" "fw" {
  resource_id = azurerm_firewall.fw.id
}

resource "azurerm_monitor_diagnostic_setting" "fw" {
  name                       = "diagnostic_setting"
  target_resource_id         = data.azurerm_monitor_diagnostic_categories.fw.resource_id
  log_analytics_workspace_id = azurerm_log_analytics_workspace.law.id

  dynamic "metric" {
    for_each = data.azurerm_monitor_diagnostic_categories.fw.metrics
    content {
      category = metric.value      
    }
  }

  dynamic "enabled_log" {
    for_each = data.azurerm_monitor_diagnostic_categories.fw.log_category_types
    content {
      category = enabled_log.value
    }
  }
}

Déploiement du workbook de supervision

Dans cette ultime étape de notre processus d'automatisation, nous franchissons le dernier jalon en déployant le workbook dédié à la supervision de notre pare-feu Azure. Ce workbook, spécialement conçu pour offrir une vue consolidée et intelligible des métriques et journaux de sécurité, constitue l'élément central de notre approche proactive en matière de gestion.

En combinant les données recueillies par l'Azure Analytics Workspace et les paramètres de diagnostic spécifiques, ce workbook offre une interface puissante pour l'analyse et la prise de décisions informées.

Suivez attentivement les étapes détaillées de déploiement, scellant ainsi le succès de notre démarche d'automatisation, et offrant une solution complète pour la surveillance avancée de votre pare-feu Azure.


resource "random_uuid" "firewall_workbook" {
}

resource "azurerm_application_insights_workbook" "firewall_workbook" {
  name                = random_uuid.firewall_workbook.result
  location            = azurerm_resource_group.rg.location
  resource_group_name = azurerm_resource_group.rg.name
  display_name        = "Azure Firewall Workbook"
  source_id           = lower(azurerm_log_analytics_workspace.law.id)
  category            = "workbook"

  data_json = jsonencode(templatefile("./workbooks/AzureFirewallWorkbookTemplate.json", { workbookSourceId = azurerm_log_analytics_workspace.law.id }))
}

Validation du déploiement

Pour confirmer le succès de notre démarche d'automatisation et assurer la fonctionnalité optimale du workbook de supervision, dirigeons-nous vers le Portail Azure pour une validation finale. À travers l'interface conviviale du portail, nous aurons l'opportunité de vérifier la création réussie du workbook, d'explorer ses fonctionnalités et de s'assurer que toutes les métriques et informations critiques sont correctement agrégées.

Une fois le workbook déployé avec succès, ne soyez pas surpris de constater qu'il semble initialement vide. Ceci s'explique par le fait qu'actuellement, aucun trafic n'a encore transité à travers le pare-feu, générant ainsi les traces nécessaires à l'alimentation du workbook. Cette situation est tout à fait normale à ce stade et vous devriez avoir ce rendu:

Pour éprouver pleinement les capacités du workbook, assurez-vous d'injecter du trafic à travers le pare-feu. Cela déclenchera la collecte de données en temps réel, peuplant ainsi le workbook avec des informations précieuses sur les activités de sécurité. Suivez les évolutions au fil du temps pour apprécier la puissance de votre solution de surveillance automatisée, prête à révéler des insights cruciaux dès que le trafic commencera à circuler.

Conclusion

En conclusion, notre parcours à travers l'automatisation du déploiement et de la surveillance du pare-feu Azure a démontré la puissance de Terraform en tant qu'outil d'infrastructure as code. En érigeant une base solide avec la création du groupe de ressources, du réseau virtuel, et du pare-feu, nous avons pavé la voie à une gestion sécurisée et efficace.

L'intégration intelligente de l'Azure Analytics Workspace et la mise en place des paramètres de diagnostic ont élevé notre niveau de surveillance, fournissant une toile de fond riche pour le dernier acte : le déploiement du workbook. Bien que celui-ci puisse paraître initiallement vide, rappelez-vous que son potentiel émerge pleinement avec le flux de trafic à travers le pare-feu.

En adoptant cette approche automatisée, nous avons non seulement gagné en efficacité opérationnelle, mais également renforcé notre capacité à anticiper et réagir face aux menaces potentielles. Continuez à explorer les possibilités d'automatisation pour optimiser votre environnement Azure, et que cette aventure technique serve de catalyseur pour des déploiements futurs. 🚀

Liens

Did you find this article valuable?

Support Antoine LOIZEAU by becoming a sponsor. Any amount is appreciated!