Lesson 01 — Azure Resource Hierarchy
Why You Need to Understand This First
Everything in Azure — every policy, every RBAC role assignment, every network peering rule, every cost allocation — lives somewhere in a five-level hierarchy. If you do not have this hierarchy internalised, you will spend your entire Azure career making scope mistakes: applying a policy too broadly, assigning a role at the wrong level, failing to understand why a resource is or is not visible from a given context.
In production, this hierarchy is your governance model. In the exam, every scenario that mentions access control, policy, or resource management will implicitly test whether you know where in this hierarchy the action should happen.
The Five-Level Hierarchy
Azure organises every resource into a strict containment model. Each level inherits from everything above it.
Level 1 — The Tenant
A tenant is the top-level identity boundary in Azure. It maps 1:1 with a Microsoft Entra ID (formerly Azure Active Directory) instance. Every user, group, service principal, and managed identity lives in exactly one tenant.
| Concept | What it means in practice |
|---|---|
| Tenant ID | A GUID. This is what Azure uses internally to route all identity and access decisions. You'll often need it when configuring federation, API access, or external tools. |
| Home tenant vs. guest | A user can be a member of one tenant but a guest (B2B) in many others. Their permissions are independent in each. |
| Global Administrator | The most powerful role in the tenant. Can elevate to User Access Administrator at the root management group scope — effectively god mode over all subscriptions. Guard this role with your life. |
Level 2 — Management Groups
Management groups are purely a governance container. They hold subscriptions (and other management groups). They have no billing impact. Their only purpose is to apply Azure Policy and RBAC at scale, across many subscriptions at once.
Limits you must know for the exam
| Limit | Value |
|---|---|
| Max management group tree depth | 6 levels (beneath root) |
| Management groups per tenant | 10,000 |
| Children per management group | No published hard limit |
| Root management group | Always 1, cannot be deleted, name = Tenant Root Group |
Enterprise landing zone pattern
In real enterprise deployments, you will see a shallow hierarchy like this — never deep nesting:
Level 3 — Subscriptions
A subscription is the billing and scale unit in Azure. Every resource must live in exactly one subscription. Subscriptions have hard service limits — for example, 980 resource groups per subscription, or limits on vCPU quotas per region.
When to create a new subscription
This is a common architecture decision in enterprise environments:
| Reason | Example |
|---|---|
| Isolation boundary | Production vs. development — blast radius containment |
| Billing separation | Different departments or cost centres billed independently |
| Service limit avoidance | A workload that would exceed vCPU quotas in a shared subscription |
| Regulatory boundary | Workloads with PCI-DSS or HIPAA requirements need separate audit perimeters |
| Network isolation | Internet-facing vs. corp-connected workloads need separate VNet topologies |
Subscription types
| Type | Use |
|---|---|
| Pay-As-You-Go | Default. Billed monthly at list prices. |
| Enterprise Agreement (EA) | Large organisations. Volume discounts. Managed via EA portal. |
| Microsoft Customer Agreement (MCA) | Modern replacement for EA. Billing profile-based. |
| Dev/Test | Discounted rates for non-production. Must not run production workloads. |
| Free Trial | $200 credit for 30 days. |
Level 4 — Resource Groups
A resource group is the fundamental unit of deployment and lifecycle management in Azure. Every resource must belong to exactly one resource group. Resource groups are not a security boundary — they are an organisational and lifecycle container.
Key facts
- Resource groups have a location, but resources inside them can live in any Azure region — the resource group location only stores the metadata.
- Deleting a resource group deletes all resources inside it immediately and irreversibly (subject to soft-delete policies on individual services).
- RBAC applied at the resource group level is inherited by all resources inside it.
- Azure Policy assignments at the resource group level only affect that resource group (no downward children, since resources have no children).
- Resource groups cannot be nested.
Naming and grouping patterns
Enterprises use consistent naming conventions. Microsoft's Cloud Adoption Framework recommends a scheme like:
rg-<workload>-<environment>-<region>-<instance>
rg-payments-prod-eastus-001
rg-payments-dev-westus-001
rg-networking-shared-eastus-001
Level 5 — Resources
A resource is any Azure service instance: a VM, a storage account, a virtual network, a key vault, a function app. Resources are identified by a resource ID, which encodes the entire hierarchy:
/subscriptions/{subscriptionId}
/resourceGroups/{resourceGroupName}
/providers/{resourceProvider}
/{resourceType}/{resourceName}
Example — a virtual machine resource ID:
/subscriptions/a1b2c3d4-1234-5678-abcd-ef1234567890
/resourceGroups/rg-payments-prod-eastus-001
/providers/Microsoft.Compute
/virtualMachines/vm-payapi-prod-001
Resource providers
Resources belong to a resource provider (RP), which is the service namespace. Resource providers must be registered in a subscription before resources of that type can be created. Most common ones are auto-registered, but you may encounter this when using newer or less common services.
| Provider | Resources |
|---|---|
Microsoft.Compute | VMs, disks, availability sets, scale sets |
Microsoft.Network | VNets, NSGs, load balancers, public IPs |
Microsoft.Storage | Storage accounts, blob containers, file shares |
Microsoft.KeyVault | Key vaults, keys, secrets, certificates |
Microsoft.Insights | Metric alerts, diagnostic settings, action groups |
Scope: The Concept That Ties Everything Together
In Azure, scope is the specific point in the hierarchy where something is applied or measured. Scope is the answer to: "where does this permission/policy/budget take effect?"
| Action | Applied at scope | Inherits to |
|---|---|---|
| RBAC role assignment | MG / Subscription / RG / Resource | All children below |
| Azure Policy | MG / Subscription / RG | All children below |
| Azure Budget | Subscription / RG | N/A (reporting only) |
| Diagnostic settings | Resource | N/A (per-resource) |
| Resource Lock | Subscription / RG / Resource | All children below |
| Tags | Subscription / RG / Resource | Not inherited (by default) |
Hands-On: Navigate the Hierarchy in the Portal
Open portal.azure.com and follow these steps to see the hierarchy in action. If you don't have a subscription yet, use the Microsoft Learn sandbox.
- Find your Tenant ID: Search for Microsoft Entra ID in the portal. The Overview blade shows your Tenant ID and your primary domain. Copy the Tenant ID — you'll use it in later lessons.
- Find Management Groups: Search for Management groups. If your tenant has never used them, you'll see only the Root Management Group. This is where you'll build the governance hierarchy in a real enterprise deployment.
- Inspect a Subscription: Search for Subscriptions. Click on a subscription and look at the left menu — notice how RBAC (Access Control IAM), Policies, and Budgets all appear here. These are the subscription-level scope actions.
- Inspect Resource Groups: Inside a subscription, browse Resource Groups. Click one. Notice the same left-menu pattern — Access Control (IAM), Policies — but now scoped to the resource group.
- Find a Resource ID: Inside a resource group, click any resource → Properties → Resource ID. You should now be able to read this ID fluently and understand every segment of it.
Check Your Understanding
Click any option to see immediate feedback. Answers represent the correct behaviour in a real Azure environment.
1. You assign a Contributor role at the Subscription scope. An engineer creates a new resource group inside that subscription. What access does the Contributor have on that resource group?
2. You apply an Azure Policy with a Deny effect to a Management Group. A subscription owner inside that management group tries to deploy a resource that violates the policy. What happens?
3. You tag a resource group with CostCenter: Engineering. You then deploy a storage account into that resource group. What tag does the storage account have?
4. Which scope level in Azure is the billing and service-limits boundary?
5. What is the maximum depth of the management group hierarchy beneath the tenant root group?
6. You need to apply a baseline security policy across all subscriptions in your tenant, including subscriptions that will be created in the future. Where is the most operationally correct place to assign this policy?
This is Microsoft's canonical guidance on structuring the resource hierarchy for enterprise scale. Read the full design area and the linked subscription organization article before your next session.
This lesson covered the structure of the hierarchy. There are many things to go deeper on — ask your teacher to explore any of these:
- How do you move a subscription between management groups?
- What happens to resource locks during a resource group deletion?
- How does the root management group behave differently from child management groups for RBAC elevation?
- Walk me through designing a management group hierarchy for a company with 5 business units and 3 environments each.