Skip to main content
Version: Next

Task 03: Create Resource Groups

Runbook Azure

DOCUMENT CATEGORY: Runbook SCOPE: Full CAF/WAF resource group structure PURPOSE: Create multi-subscription resource group organization MASTER REFERENCE: Microsoft Learn — Resource Groups

Status: Active


Overview

Create resource groups within each subscription following the full CAF/WAF deployment model. Each subscription gets resource groups organized by function, providing granular access control, cost tracking, and lifecycle management.

What This Accomplishes

  • Resource organization — logical grouping of related Azure resources per subscription
  • Access control — resource group-level RBAC boundaries within each subscription
  • Cost tracking — granular cost allocation using subscription + resource group + tags
  • Lifecycle management — coordinated resource deployment and cleanup per function

Prerequisites

PrerequisiteDetail
SubscriptionsAll subscriptions created and associated with management groups (Task 02)
PermissionsContributor or Owner role on each target subscription
Authenticated Azure sessionSee Authentication
variables.ymlConfigured with resource group names per subscription

Resource Group Plan

Platform Identity Subscription

Subscription: iic-platform-identity-001 (config: azure.subscriptions.platform_identity.name)

Resource GroupPurposeConfig Path
rg-identity-entraconnect-eus-01Entra ID Connect serversazure_resources.platform_identity.rg_entraconnect
rg-identity-pim-eus-01Privileged Identity Managementazure_resources.platform_identity.rg_pim

Platform Management Subscription

Subscription: iic-platform-management-001 (config: azure.subscriptions.platform_management.name)

Resource GroupPurposeConfig Path
rg-mgmt-monitoring-eus-01Azure Monitor, Log Analyticsazure_resources.platform_management.rg_monitoring
rg-mgmt-automation-eus-01Automation accounts, runbooksazure_resources.platform_management.rg_automation
rg-mgmt-backup-eus-01Recovery Services vaultsazure_resources.platform_management.rg_backup

Platform Connectivity Subscription

Subscription: iic-platform-connectivity-001 (config: azure.subscriptions.platform_connectivity.name)

Resource GroupPurposeConfig Path
rg-connectivity-hub-eus-01Hub VNet, Azure Firewallazure_resources.platform_connectivity.rg_hub
rg-connectivity-dns-eus-01Private DNS zonesazure_resources.platform_connectivity.rg_dns
rg-connectivity-bastion-eus-01Azure Bastion hostsazure_resources.platform_connectivity.rg_bastion

Landing Zone Subscriptions

Each landing zone subscription (e.g., iic-lz-azurelocal-corp-001) gets a single resource group per cluster — the same pattern as simplified deployment:

Resource GroupPurposeConfig Path
rg-c01-azl-eus-01Azure Local cluster + Arc resourcesazure_resources.resource_group_name
Scaling Landing Zones

For multiple clusters in the same subscription, increment the cluster identifier: rg-c01-azl-eus-01, rg-c02-azl-eus-01, etc.

Variables from variables.yml

VariableConfig PathExample (IIC)
Identity — Entra Connect RGazure_resources.platform_identity.rg_entraconnectrg-identity-entraconnect-eus-01
Identity — PIM RGazure_resources.platform_identity.rg_pimrg-identity-pim-eus-01
Management — Monitoring RGazure_resources.platform_management.rg_monitoringrg-mgmt-monitoring-eus-01
Management — Automation RGazure_resources.platform_management.rg_automationrg-mgmt-automation-eus-01
Management — Backup RGazure_resources.platform_management.rg_backuprg-mgmt-backup-eus-01
Connectivity — Hub RGazure_resources.platform_connectivity.rg_hubrg-connectivity-hub-eus-01
Connectivity — DNS RGazure_resources.platform_connectivity.rg_dnsrg-connectivity-dns-eus-01
Connectivity — Bastion RGazure_resources.platform_connectivity.rg_bastionrg-connectivity-bastion-eus-01
Cluster RGazure_resources.resource_group_namerg-c01-azl-eus-01

Execution Options

Azure Portal

When to use: Single deployment, prefer visual interface

Procedure

  1. Navigate to Resource Groups:
  • In Azure Portal, search for Resource groups
  • Click + Create
  1. Create Platform Identity RGs:
  • Subscription: Select iic-platform-identity-001
  • Resource group: Enter name from the table above
  • Region: Per config (azure.region or cluster.location)
  • Click Review + createCreate
  • Repeat for each RG in the Platform Identity table
  1. Create Platform Management RGs:
  • Subscription: Select iic-platform-management-001
  • Create each RG from the Platform Management table
  1. Create Platform Connectivity RGs:
  • Subscription: Select iic-platform-connectivity-001
  • Create each RG from the Platform Connectivity table
  1. Create Landing Zone RGs:
  • Subscription: Select each landing zone subscription (e.g., iic-lz-azurelocal-corp-001)
  • Create the cluster RG: rg-c01-azl-eus-01
  • Repeat for each landing zone subscription

Validation

  • All resource groups created in the correct subscriptions
  • Resource group names match variables.yml
  • Resource groups are in the correct region

Troubleshooting

SymptomErrorResolution
Permission deniedAuthorizationFailedVerify Contributor or Owner role on the target subscription
Duplicate nameResourceGroupAlreadyExistsRG already exists — verify it's in the correct subscription and region, then move on
Invalid locationLocationNotAllowedCheck Azure Policy allowed-locations constraints on the subscription or management group
Wrong subscription contextRG created in wrong subAlways run Set-AzContext -Subscription before New-AzResourceGroup

Next Steps

After resource groups are deployed:

  • Proceed to the next phase of the Azure Foundation deployment
  • Apply tagging policies at the management group or subscription level
  • Configure RBAC assignments on each resource group as needed

References


PreviousUpNext
Task 02 — Create SubscriptionsFull Deployment OverviewPhase 02 — Resource Providers

Version Control

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