Enterprise Azure Terraform Lab Phase 1 Part 3 : Network, Storage, and Monitoring Baseline

๐Ÿ“… Created: 2026-04-27 | โฑ๏ธ Read Time: 3 mins

๐Ÿ“ GitHub Repository: lwc-wk/enterprise-azure-lab1

Enterprise Azure Terraform Lab Phase 1 Part 3 : Network, Storage, and Monitoring Baseline

๐Ÿงฉ Background

After creating the Terraform foundation, the next step was to build the core Azure infrastructure baseline.

This part focuses on:

  • Virtual Network design
  • Subnet segmentation
  • Network Security Group baseline
  • Storage Account security
  • Log Analytics Workspace

The goal is not to create a huge enterprise network. The goal is to show that even a small lab can follow enterprise design principles.


๐ŸŒ Virtual Network and Subnet Segmentation

The lab uses a simple VNet:

Address space: 10.10.0.0/16

Two subnets are created:

subnet-app        10.10.1.0/24
subnet-management 10.10.2.0/24

Purpose:

  • Demonstrate subnet segmentation
  • Separate application-facing and management-oriented resources
  • Prepare for future private endpoints or more advanced network controls

Screenshot

Screenshot


๐Ÿ›ก๏ธ Network Security Group Baseline

A Network Security Group is created and associated with both subnets.

The custom rule denies inbound Internet traffic:

Name: Deny-Inbound-Internet
Priority: 4000
Direction: Inbound
Access: Deny
Source: Internet
Destination: *
Port: *
Protocol: *

Phase 1 does not deploy:

  • VM
  • Bastion
  • Public SSH
  • Public RDP

Why?

Because there is no reason to expose management ports when the lab does not need them.

Screenshot Screenshot

Use Azure CLI:

az network nsg list \
    --resource-group rg-infra-dev-azlab \
    --output table

Inspect NSG rule:

az network nsg rule list \
    --resource-group rg-infra-dev-azlab \
    --nsg-name nsg-infra-dev-azlab \
    --output table

๐Ÿ’พ Storage Account Security Baseline

The lab creates an ephemeral Storage Account separate from the Terraform backend Storage Account.

Security baseline:

  • Standard tier
  • LRS replication
  • Minimum TLS 1.2
  • HTTPS-only traffic
  • Public blob access disabled
  • Terraform-managed tags

Why LRS?

LRS is cost-efficient and enough for a lab.

Screenshot Screenshot

If you forgot the Storage Account name Run:

az storage account list l
    --resource-group rg-tfstate-enterprise-lab \
    --query "[].name"
    --output table

๐Ÿ“Š Log Analytics Workspace

The Log Analytics Workspace is the monitoring foundation.

Current settings:

SKU: PerGB2018
Retention: 30 days

Important distinction:

Log Analytics Workspace = monitoring destination
Diagnostic Settings     = pipeline that sends resource logs into it

Screenshot Screenshot


๐Ÿงพ Summary

This part of the lab created the infrastructure baseline:

  • VNet with separated subnets
  • NSG baseline rule to deny inbound Internet traffic
  • Secure Storage Account settings
  • Log Analytics Workspace as the monitoring destination

This is where the lab starts to look like real infrastructure instead of a cloud-themed screenshot collection.