Landing Zone Builder
Assemble an Azure landing zone one component at a time. Tick a component to add it and its dependencies come with it; untick one and everything that needs it leaves too. Each component explains what it is for and what breaks without it, the diagram redraws as you build, and the Terraform beneath mirrors HashiCorp’s validated pattern for an Azure landing zone using the current Azure Verified Modules, pinned on 2026-09-25. The whole build is in this page’s address, so a landing zone is a link you can send. Nothing here touches a tenant.
Tick a component to add it and whatever it needs; untick one and everything that needs it leaves with it. The build is in this page’s address, so the link is the landing zone.
Platform component
The tree of management groups every subscription is placed in.
A management group is a container above subscriptions, and the tree of them is the skeleton of a landing zone: an "alz" root, a Platform branch for the shared services and a Landing zones branch for the workloads. Policy and role assignments made on a group flow down to every subscription beneath it, so one decision at the root governs hundreds of subscriptions without being repeated. The avm-ptn-alz module reads the "alz" architecture definition and creates the whole tree in one call, and its subscription_placement input is how every other component’s subscription lands in the right group. The architecture carries the policy baseline with it, so selecting only this component deploys the tree with every assignment present but set to DoNotEnforce; selecting Policy is what turns them on. Without the tree, each subscription is its own island: every guardrail has to be assigned again for each one, and nothing stops a new subscription from arriving with none.
- In this build
- Selected.
- Needs
- Nothing: this is where a landing zone starts.
- Deployed by
- Azure/avm-ptn-alz/azurerm version 0.21.0, the latest on the Terraform Registry when checked on 2026-09-25.
- Knobs
- Azure region and Parent management group.
The management group tree with the subscriptions and networks under it, redrawn as you build. Click a box to read about its component; drag to pan, Ctrl + scroll or pinch to zoom.
- Management group
- Policy baseline
- Log Analytics workspace
- Hub virtual network
- Spoke virtual network
- Azure Firewall
- Private DNS zones
- Peering to the hub
The files this build becomes, in the shape of the examples the Azure Verified Modules ship. Every module is pinned; the README says what to fill in before a plan.
# Generated by the HybridCloudWorks Landing Zone Builder for learning. Never applied here.
terraform {
required_version = ">= 1.12, < 2.0"
required_providers {
alz = {
source = "azure/alz"
version = "~> 0.21"
}
azapi = {
source = "Azure/azapi"
version = "~> 2.12"
}
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.35"
}
modtm = {
source = "azure/modtm"
version = "~> 0.3"
}
random = {
source = "hashicorp/random"
version = "~> 3.6"
}
time = {
source = "hashicorp/time"
version = "~> 0.9"
}
}
}
11 files. Generated for learning and never applied here: this page touches no tenant, and the README in the zip says the same.
The modules behind the files
Four Azure Verified Modules, each pinned to the latest release the Terraform Registry listed on 2026-09-25. The archived hub-networking pattern module is never emitted, and the application landing zone pattern module is not called because it had no published release on that date: a landing zone is a subscription placement plus a spoke from the virtual network module instead.
- Azure/avm-ptn-alz/azurermversion 0.21.0
- Azure/avm-ptn-alz-management/azurermversion 0.9.0
- Azure/avm-ptn-alz-connectivity-hub-and-spoke-vnet/azurermversion 0.17.5
- Azure/avm-res-network-virtualnetwork/azurermversion 0.22.2