AZURE LANDING ZONE → STACKIT · ARCHITECTUUR
Azure landing zones en de STACKIT-doelarchitectuur
Een Azure landing zone is een platformlaag van management groups, subscriptions, een hubnetwerk, policy en centrale logging. STACKIT kent folders, projecten en een Network Area, maar geen policy-engine en geen beheerde firewall in de Terraform-provider. Deze pagina laat zien wat StackToIT per onderdeel van een hub-and-spoke-zone opstelt en welke ontwerpvragen bij uw architecten blijven.
Management groups worden folders
Een voor deze pagina opgestelde demo-landing-zone, op 4 november 2026 beoordeeld door StackToIT: twee management groups, een policytoewijzing, een hub- en een spoke-netwerk met peering, een firewall, een routetabel, een Log Analytics-workspace en een roltoewijzing. Links: de invoer. Rechts: de resourceblokken van de STACKIT-Terraform die de engine schreef; de beoordelingsopmerkingen boven elk blok zijn hier weggelaten.
resource "azurerm_management_group" "platform" {
display_name = "Platform"
name = "mg-platform"
}
resource "azurerm_management_group" "landing_zones" {
display_name = "Landing Zones"
name = "mg-landing-zones"
parent_management_group_id = azurerm_management_group.platform.id
}resource "stackit_resourcemanager_folder" "platform" {
name = "Platform"
parent_container_id = var.folder_parent_container_id
owner_email = var.folder_owner_email
}
resource "stackit_resourcemanager_folder" "landing_zones" {
name = "landing-zones"
parent_container_id = stackit_resourcemanager_folder.platform.container_id
owner_email = var.folder_owner_email
}De hiërarchie blijft behouden
De onderliggende management group wordt een onderliggende folder, via de verwijzing naar de bovenliggende folder. Controleer dat aan de hand van de documentatie van STACKIT Resource Manager, die (per november 2026) meldt dat STACKIT momenteel één niveau folderhiërarchie ondersteunt: een folder in een folder is mogelijk niet toepasbaar zoals opgesteld, dus vlak de boomstructuur af of plaats de tweede folder direct onder de organisatie. De run vermeldt dat roltoewijzingen op een STACKIT-folder gelden voor de projecten daarin; de pagina over toegangsbeheer van STACKIT die voor deze gids is geraadpleegd, beschrijft die overerving niet, dus test dit voordat u erop vertrouwt.
De identifier blijft niet behouden
De ID van de management group wordt niet overgenomen, omdat STACKIT zelf de folder-ID toekent. De weergavenaam wordt omgezet in een geldige STACKIT-naam, dus Landing Zones wordt landing-zones.
Waarden die u aanlevert
De bovenliggende container en een e-mailadres van de eigenaar hebben geen standaardwaarde: de folders komen onder de organisatie of onder een bestaande folder die u noemt.
Peering wordt een Network Area
Uit dezelfde run. Twee VNets en hun peerings worden vervangen door één Network Area voor de organisatie. Netwerken van projecten in het gebied routeren onderling privé.
resource "azurerm_virtual_network_peering" "hub_to_spoke" {
name = "hub-to-spoke-orders"
resource_group_name = azurerm_resource_group.hub.name
virtual_network_name = azurerm_virtual_network.hub.name
remote_virtual_network_id = azurerm_virtual_network.spoke.id
}
resource "azurerm_virtual_network_peering" "spoke_to_hub" {
name = "spoke-orders-to-hub"
resource_group_name = azurerm_resource_group.spoke.name
virtual_network_name = azurerm_virtual_network.spoke.name
remote_virtual_network_id = azurerm_virtual_network.hub.id
}resource "stackit_network_area" "migrated" {
organization_id = var.organization_id
name = "migrated-network-area"
}
resource "stackit_network_area_region" "migrated" {
organization_id = var.organization_id
network_area_id = stackit_network_area.migrated.network_area_id
ipv4 = {
network_ranges = [for p in var.network_area_ranges : { prefix = p }]
transfer_network = var.network_area_transfer_network
}
}Instellingen per peering vervallen
Het gebied kent geen instellingen per peering, dus de namen, gateway transit, doorgestuurd verkeer en subnetselectie van de peerings worden niet gegenereerd. De run vraagt u de routering van het gebied te controleren.
Projecten sluiten bij het aanmaken aan
De opmerking in het bestand meldt dat de projecten van de gemigreerde netwerken in het gebied moeten worden aangemaakt met een networkArea-label, en dat dit niet meer kan worden gewijzigd zodra het project bestaat. Bepaal het gebied voordat u projecten aanmaakt.
Bereiken en transfernetwerk
Het gebied neemt standaard de adresruimten van de VNets over als bereiken. Het transfernetwerk, een CIDR-bereik dat de netwerken niet gebruiken, heeft geen standaardwaarde.
Wat de engine aan een architect overdraagt
De firewall, de routetabel en de policytoewijzing worden geen resourceblokken. Links: de drie invoerblokken. Rechts: golf 1 en 3 uit het sequencingbestand van de run, migration/technical-sequencing.md, met de klasse en het zekerheidsniveau van elke eenheid; golf 2 is hier weggelaten. De invoerblokken staan niet naast elkaar in main.tf, dus elk heeft een eigen paneel, letterlijk weergegeven.
resource "azurerm_subscription_policy_assignment" "allowed_locations" {
name = "allowed-locations"
subscription_id = "/subscriptions/00000000-0000-0000-0000-000000000000"
policy_definition_id = "/providers/Microsoft.Authorization/policyDefinitions/e56962a6-4747-49cd-b67b-bf8b01975c4c"
parameters = jsonencode({
listOfAllowedLocations = { value = ["germanywestcentral", "northeurope"] }
})
}resource "azurerm_firewall" "hub" {
name = "fw-hub"
location = azurerm_resource_group.hub.location
resource_group_name = azurerm_resource_group.hub.name
sku_name = "AZFW_VNet"
sku_tier = "Standard"
ip_configuration {
name = "primary"
subnet_id = azurerm_subnet.firewall.id
public_ip_address_id = azurerm_public_ip.firewall.id
}
}
resource "azurerm_route_table" "spoke" {
name = "rt-spoke-orders"
location = azurerm_resource_group.spoke.location
resource_group_name = azurerm_resource_group.spoke.name
route {
name = "default-via-firewall"
address_prefix = "0.0.0.0/0"
next_hop_type = "VirtualAppliance"
next_hop_in_ip_address = "10.0.0.4"
}
}## Wave 1 — 7 unit(s)
| Unit | Class | Target |
|---|---|---|
| `azurerm_log_analytics_workspace.platform` | RECONFIGURE / MEDIUM | STACKIT Logs / Observability |
| `azurerm_management_group.platform` | RECONFIGURE / MEDIUM | STACKIT folder |
| `azurerm_public_ip.firewall` | RECONFIGURE / MEDIUM | implicit (belongs to the gateway, firewall or load balancer) |
| `azurerm_route_table.spoke` | MANUAL_REVIEW / LOW | — |
| `azurerm_subscription_policy_assignment.allowed_locations` | REDESIGN / MEDIUM | none managed — policy as code in the delivery pipeline (e.g. OPA/Conftest, Checkov) |
| `azurerm_virtual_network.hub` | RECONFIGURE / MEDIUM | STACKIT project networking / Network Area (SNA) |
| `azurerm_virtual_network.spoke` | RECONFIGURE / MEDIUM | STACKIT project networking / Network Area (SNA) |
## Wave 3 — 1 unit(s)
| Unit | Class | Target |
|---|---|---|
| `azurerm_firewall.hub` | MANUAL_REVIEW / LOW | — |Azure Firewall: MANUAL_REVIEW
De run meldt dat Azure Firewall geen STACKIT-equivalent in general availability heeft. STACKIT Unified Firewall is een opt-in-functie die nog kan veranderen en nog niet in de Terraform-provider zit, dus het ontwerp kiest tussen die functie, security groups of een firewall-appliance op STACKIT-servers.
Routetabel: MANUAL_REVIEW
De routes die de scan toont, vormen een ondergrens, omdat BGP-routepropagatie standaard aanstaat en routes kan toevoegen die de configuratie niet beschrijft. Een tabel die uit de vermelde routes wordt opgesteld, zou smaller zijn dan de bron, dus er wordt geen tabel opgesteld en de Network Architect beslist.
Policytoewijzing: REDESIGN
STACKIT kent geen equivalent van een policy-engine. De guardrails gaan naar de pipeline die de Terraform toepast (policy as code, bijvoorbeeld OPA of Checkov) en naar het rollenontwerp van de organisatie.
Hoe de landing zone wordt gekoppeld
| Azure-resource | STACKIT-doel | Migratieklasse |
|---|---|---|
| Management groups | STACKIT-folders | Herconfiguratie |
| Policytoewijzing | Geen beheerde tegenhanger: policy as code in de deliverypipeline | Redesign |
| Hub- en spoke-VNets | Network Area en STACKIT-netwerken | Herconfiguratie |
| VNet-peerings | Network Area, regio en routes | Herconfiguratie |
| Workload-subnet | STACKIT-netwerk met hetzelfde IPv4-prefix | Herconfiguratie |
| Firewall-subnet en openbaar IP-adres | Geen resource: ze horen bij de Azure-firewall | Herconfiguratie |
| Azure Firewall | Door een architect te bepalen | Beslissing van de architect |
| Routetabel met een route naar een virtuele appliance | Routingtabel, te bepalen zodra de set routes bekend is | Beslissing van de architect |
| Log Analytics-workspace | STACKIT Logs-instance (en Observability voor metrics) | Herconfiguratie |
Klassen zoals de run ze bepaalde: 10 RECONFIGURE, 2 MANUAL_REVIEW en 1 REDESIGN over 13 eenheden. Daarvan zijn er 6 opgesteld, hebben er 4 geen resource nodig en worden er 3 voor een medewerker aangehouden.
Drie manieren om het doel te bouwen
De run stelt per eenheid één doel voor, geen organisatie. Dit zijn de indelingen die architecten gewoonlijk afwegen, en wat elke indeling betekent voor de bovenstaande eenheden. De indelingen komen uit de praktijk; de beoordeling van elke eenheid komt uit de run.
| Indeling | Wat het betekent | Let op |
|---|---|---|
| Folders en één project per workloadomgeving, verbonden via een Network Area | Het dichtst bij een landing zone: platform- en workloadfolders, privéroutering tussen projecten, rollen op folders. De run stelt deze vorm op. | Het gebied en het projectlabel liggen vast bij het aanmaken. Het gebied wordt per regio ingeschakeld, en de STACKIT-documentatie meldt dat verkeer tussen regio's momenteel via het openbare internet gaat. |
| Folders en projecten zonder Network Area | Elk project behoudt een eigen netwerk en wordt bereikt via service endpoints en toegangslijsten. | Hub-and-spoke-routering en centrale egress hebben geen equivalent, dus workloads die op de hub steunden, worden opnieuw ontworpen. |
| Network Area met een firewall-appliance op servers | Geforceerde routering via een centrale appliance, zoals de hubfirewall deed. | U beheert en patcht de appliance zelf, en de run stelt die niet op. Bepaal eerst de routes. |
Beslis in deze volgorde
1. Organisatie en folders
De network area en de routingtabellen zijn organisatieresources, en de folders staan onder de container die u noemt. Leg dit eerst vast; de andere stappen hebben de ID's ervan nodig.
2. De network area en de bereiken
Kies de bereiken en het transfernetwerk en maak daarna de projecten aan binnen het gebied. Maak ze niet eerder aan.
3. Projecten en rollen
De scope van de resourcegroep van elke resource is een openstaande instelling. STACKIT kent geen resourcegroepen, dus u koppelt de grenzen van de oude groepen aan projecten en aan rollen op folders en projecten.
4. Routes en egress
Neem de routeringsbeslissing die de run opwierp en bepaal hoe uitgaand verkeer de netwerken verlaat. De run kon niet aantonen hoe het workload-subnet in Azure het internet bereikte.
5. Logging
Het concept maakt een Logs-instance met 90 dagen retentie. Maak, voordat een bron ernaar schrijft, een schrijftoegangstoken aan en stel de toegangslijst in; het concept doet geen van beide.
6. Guardrails als code
Zet de policytoewijzing over naar de pipeline die de Terraform toepast, voordat de eerste workload wordt toegepast.
Wat de Azure landing zone biedt en STACKIT niet
Subscriptions als uitgifte-eenheid
De run behandelt elke subscription en resourcegroep als een indelingsvraag. STACKIT-projecten vervullen die rol, en het aanmaken ervan is een proces dat u zelf ontwerpt.
Centrale policy
Geen beheerde engine toetst resources aan regels. Uw deliverypipeline doet dat wel.
Beheerde centrale firewall
Niet beschikbaar als opgestelde resource; het ontwerp beslist.
Monitoring op basis van workspaces
KQL-query's, workbooks en alerts worden herschreven voor de tools van de STACKIT-diensten Logs en Observability.
Vragen die platformteams stellen
Wordt een management group één op één gekoppeld aan een folder?
De run schrijft een folder voor elke management group en behoudt de relatie met de bovenliggende. STACKIT documenteert per november 2026 één niveau folderhiërarchie, dus een diepere boom van management groups moet worden afgevlakt. De ID van de management group wordt niet overgenomen en de folder wordt genoemd naar de weergavenaam.
Wat vervangt VNet-peering?
Een STACKIT Network Area voor de organisatie. Netwerken van projecten in het gebied routeren privé naar elkaar, en het platform past de routingtabellen van de projectrouters aan. Het gebied wordt per regio ingeschakeld.
Waar gaan de regels van Azure Policy naartoe?
Naar policy as code in de pipeline die de Terraform toepast, en naar het rollenontwerp. De run classificeert een policytoewijzing als REDESIGN omdat er geen equivalente engine is.
Maakt een firewall deel uit van het concept?
Nee. Azure Firewall is geclassificeerd als MANUAL_REVIEW met zekerheidsniveau LOW, en het concept bevat geen firewallresource. De architecten kiezen tussen een opt-in-firewallfunctie van STACKIT, security groups of een appliance.
Bronnen
Uw volgende stap: STACKIT.
Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.
Laat uw gegevens achter, onze specialisten nemen contact met u op.
Liever zelf een e-mail sturen? connect@stacktoit.com
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.