Skip to main content
Version: Next

Task 01: Configure Management Groups

Runbook Azure

DOCUMENT CATEGORY: Runbook
SCOPE: Full CAF/WAF management group hierarchy
PURPOSE: Deploy complete CAF-aligned management group structure
MASTER REFERENCE: Azure Landing Zones — Enterprise-Scale Architecture

Status: Active


Overview

Create the complete management group hierarchy following the Azure Landing Zone conceptual architecture. This establishes the enterprise-grade governance structure for multi-subscription Azure Local environments, with hierarchical policy inheritance and RBAC boundaries.

The management group hierarchy is the backbone of Azure governance — every policy, role assignment, and budget you define at the MG level cascades to all subscriptions and resources beneath it. Getting this right from the start means your Azure Local clusters inherit consistent security, compliance, and operational controls automatically.

What This Accomplishes

  • Governance structure — complete CAF Enterprise-Scale management group hierarchy
  • Policy inheritance — hierarchical policy and RBAC inheritance from your organization root down through platform and landing zone scopes
  • Landing zone organization — structured landing zones for corporate (Azure Local) and online workloads
  • Lifecycle management — sandbox and decommissioned MGs for experimentation and teardown
Tenant Root Group vs. Organization Root

Every Azure tenant has a built-in Tenant Root Group that cannot be renamed or deleted. In this task, you create your organization root management group (e.g., cmp-iic-root) directly beneath it, then build the full hierarchy under that. This keeps your organization's structure cleanly separated from the tenant default.

Management Group Naming

Management groups have two identifiers:

PropertyDescriptionCan Change?
ID (GroupName)Used in ARM/Bicep, CLI, and policy assignmentsNo — immutable once created
Display NameShown in Azure PortalYes — editable anytime

Target Hierarchy (IIC Example)

Tenant Root Group
└── cmp-iic-root # already exists
├── cmp-platform-iic # Platform Services
│ ├── cmp-platform-identity-iic # Identity
│ ├── cmp-platform-management-iic # Management
│ └── cmp-platform-connectivity-iic # Connectivity
├── cmp-landing-zones-iic # Landing Zones
│ ├── cmp-lz-corp-iic # Corp Landing Zone
│ └── cmp-lz-online-iic # Online Landing Zone
├── cmp-sandbox-iic # Sandbox
└── cmp-decommissioned-iic # Decommissioned

Complete Hierarchy Table

LevelDisplay NameMG ID (IIC)Config Path
1IIC Rootcmp-iic-rootazure.management_groups.tenant_root.name
2Platformcmp-platform-iicazure.management_groups.platform.name
3Platform — Identitycmp-platform-identity-iicazure.management_groups.platform_identity.name
3Platform — Managementcmp-platform-management-iicazure.management_groups.platform_management.name
3Platform — Connectivitycmp-platform-connectivity-iicazure.management_groups.platform_connectivity.name
2Landing Zonescmp-landing-zones-iicazure.management_groups.landing_zone.name
3Corp Landing Zonecmp-lz-corp-iicazure.management_groups.lz_corp.name
3Online Landing Zonecmp-lz-online-iicazure.management_groups.lz_online.name
2Sandboxcmp-sandbox-iicazure.management_groups.sandbox.name
2Decommissionedcmp-decommissioned-iicazure.management_groups.decommissioned.name

Prerequisites

  • Tenant access — you must have Owner or User Access Administrator role at the tenant root management group scope (see Elevate access to manage all Azure subscriptions)
  • Permissions — Management Group Contributor (or Owner) at the scope where you'll create the hierarchy
  • Authenticated Azure session — see Authentication
  • variables.yml — configured with the full management group hierarchy names and display names

Variables from variables.yml

VariableConfig PathExample (IIC)
Root MG IDazure.management_groups.tenant_root.namecmp-iic-root
Platform MG IDazure.management_groups.platform.namecmp-platform-iic
Platform Identity MG IDazure.management_groups.platform_identity.namecmp-platform-identity-iic
Platform Management MG IDazure.management_groups.platform_management.namecmp-platform-management-iic
Platform Connectivity MG IDazure.management_groups.platform_connectivity.namecmp-platform-connectivity-iic
Landing Zones MG IDazure.management_groups.landing_zone.namecmp-landing-zones-iic
Corp Landing Zone MG IDazure.management_groups.lz_corp.namecmp-lz-corp-iic
Online Landing Zone MG IDazure.management_groups.lz_online.namecmp-lz-online-iic
Sandbox MG IDazure.management_groups.sandbox.namecmp-sandbox-iic
Decommissioned MG IDazure.management_groups.decommissioned.namecmp-decommissioned-iic

Execution Options

Azure Portal

When to use: Single deployment, prefer visual interface

Procedure

  1. Navigate to Management Groups:
  • In Azure Portal, search for Management groups
  • Locate the root management group (azure.management_groups.tenant_root.name)
  1. Create Platform Management Groups:
  • Select root MG → + Add management group
  • Create the platform container:
FieldValueConfig Path
MG IDcmp-platform-iicazure.management_groups.platform.name
Display NamePlatformazure.management_groups.platform.display_name
  • Select the platform MG → + Add management group for each child:
MG IDDisplay NameConfig Path
cmp-platform-identity-iicPlatform — Identityazure.management_groups.platform_identity.*
cmp-platform-management-iicPlatform — Managementazure.management_groups.platform_management.*
cmp-platform-connectivity-iicPlatform — Connectivityazure.management_groups.platform_connectivity.*
  1. Create Landing Zone Management Groups:
  • Select root MG → + Add management group
  • Create the landing zones container:
FieldValueConfig Path
MG IDcmp-landing-zones-iicazure.management_groups.landing_zone.name
Display NameLanding Zonesazure.management_groups.landing_zone.display_name
  • Select the landing zones MG → + Add management group for each child:
MG IDDisplay NameConfig Path
cmp-lz-corp-iicCorp Landing Zoneazure.management_groups.lz_corp.*
cmp-lz-online-iicOnline Landing Zoneazure.management_groups.lz_online.*
  1. Create Auxiliary Management Groups:
  • Select root MG → + Add management group for each:
MG IDDisplay NameConfig Path
cmp-sandbox-iicSandboxazure.management_groups.sandbox.*
cmp-decommissioned-iicDecommissionedazure.management_groups.decommissioned.*

Validation

  • Platform hierarchy complete (platform + identity, management, connectivity)
  • Landing zones hierarchy complete (landing-zones + corp, online)
  • Sandbox and Decommissioned MGs created under root
  • All IDs and display names match variables.yml

Troubleshooting

IssueSymptomResolution
Permission deniedAuthorizationFailedVerify Management Group Contributor or Owner role on the root MG
Duplicate IDManagementGroupAlreadyExistsThe MG already exists — verify it's under the correct parent and move on
Parent not foundParentManagementGroupNotFoundCreate parent MGs first (platform before platform children, etc.)
Hierarchy depth exceededHierarchyDepthExceededAzure limits MG depth to 6 levels — this hierarchy uses 3, well within limits

Next Steps

Proceed to Task 02: Create Subscriptions

References


PreviousUpNext
Full Deployment OverviewFull Deployment OverviewTask 02 — Create Subscriptions

Version Control

  • Created: 2026-01-15 by Hybrid Cloud Solutions
  • Last Updated: 2026-03-19 by Hybrid Cloud Solutions
  • Version: 3.0.0