Company: TechCorp Enterprise (500+ employees)
TechCorp has grown from startup to enterprise scale. Three departments now manage their own Azure infrastructure independently:
The Challenge:
The Problem:
Current (Broken):├─ Everything goes through IT (bottleneck)
├─ IT is hiring just to handle access requests
├─ Departments frustrated with slow change management
├─ No financial accountability per department
└─ Risk: Finance accessing Engineering data by mistake
Your Challenge: Implement department-based delegation with isolation
The Solution You'll Build:
MANAGEMENT GROUP HIERARCHY:Root (TechCorp)
├── Finance Department (MG)
│ ├── Finance-Prod (Sub)
│ ├── Finance-Staging (Sub)
│ └── Finance-Dev (Sub)
├── Engineering Department (MG)
│ ├── Eng-Prod (Sub)
│ ├── Eng-Staging (Sub)
│ ├── Eng-Dev (Sub)
│ └── Eng-ML (Sub)
└── Operations (MG)
├── Ops-Infrastructure (Sub)
└── Ops-Security (Sub)
ACCESS MODEL:
Finance VP:
├─ Can see: Finance Department subscriptions ONLY
├─ Cannot see: Engineering or Operations data
├─ Role: Contributor on Finance MG (affects all Finance subs)
└─ Result: Manages Finance independently
Engineering VP:
├─ Can see: Engineering Department subscriptions ONLY
├─ Cannot see: Finance or Operations data
├─ Role: Contributor on Engineering MG
└─ Result: Manages Engineering independently
IT Director:
├─ Can see: EVERYTHING (Root scope)
├─ Role: Owner at Root
└─ Result: Central oversight + emergency access
RESULT: Departments autonomous + Isolated + Auditable
Required Knowledge:
Required Permissions:
Scope: Tenant-wide (affects all subscriptions)
Total: 100 minutes
Difficulty: Advanced
Before you build the hierarchy, design it. Poor design = painful refactoring later.
Step 1: Understand the Requirements
TechCorp needs:
DESIGN REQUIREMENTS:├─ 3 departments with autonomous management
├─ Each department sees only their subscriptions
├─ Each department has Prod/Staging/Dev environments
├─ IT maintains central control
├─ Policies cascade to all departments
└─ Cost tracking by department
Step 2: Design the Hierarchy
Create your MG design:
ROOT (TechCorp Tenant Root Group)└── Purpose: Apply tenant-wide policies
├── mg-finance (Finance Department)
│ ├── Purpose: Isolate Finance resources
│ ├── Subscriptions:
│ │ ├─ finance-prod
│ │ ├─ finance-staging
│ │ └─ finance-dev
│ └── Owner: Finance VP (Contributor role)
│
├── mg-engineering (Engineering Department)
│ ├── Purpose: Isolate Engineering resources
│ ├── Subscriptions:
│ │ ├─ eng-prod
│ │ ├─ eng-staging
│ │ ├─ eng-dev
│ │ └─ eng-ml
│ └── Owner: Engineering VP (Contributor role)
│
└── mg-operations (Operations Department)
├── Purpose: Infrastructure/security
├── Subscriptions:
│ ├─ ops-infrastructure
│ └─ ops-security
└── Owner: Operations Director (Contributor role)
Step 3: Plan RBAC Assignments
Document which groups get which roles at which scopes:
RBAC PLAN:ROOT SCOPE:
├─ grp-it-admins: Owner (view everything, override anything)
├─ grp-auditors: Reader (audit everything)
└─ Security policy: Applied to all subscriptions
FINANCE MG:
├─ grp-finance-admins: Contributor (manage Finance subs)
├─ grp-finance-users: Reader (view Finance resources)
└─ Finance-specific policies
ENGINEERING MG:
├─ grp-engineering-admins: Contributor (manage Eng subs)
├─ grp-engineering-users: Reader (view Eng resources)
└─ Engineering-specific policies
OPERATIONS MG:
├─ grp-ops-admins: Contributor (manage Ops subs)
├─ grp-ops-users: Reader (view Ops resources)
└─ Ops-specific policies
Step 4: Document Design
Create a design document:
MANAGEMENT GROUP DESIGN DOCUMENT════════════════════════════════════════════════════════════
DESIGNED FOR: TechCorp Enterprise
HIERARCHY STRUCTURE:
(paste your hierarchy diagram)
DEPARTMENT DETAILS:
Finance Department:
├─ Subscriptions: 3 (prod, staging, dev)
├─ Expected cost: $15K/month
├─ Admin group: grp-finance-admins
├─ Member count: 50 people
└─ Isolation: Complete (no cross-access)
Engineering Department:
├─ Subscriptions: 4 (prod, staging, dev, ml)
├─ Expected cost: $28K/month
├─ Admin group: grp-engineering-admins
├─ Member count: 100 people
└─ Isolation: Complete (no cross-access)
Operations Department:
├─ Subscriptions: 2 (infrastructure, security)
├─ Expected cost: $4K/month
├─ Admin group: grp-ops-admins
├─ Member count: 25 people
└─ Isolation: Complete (no cross-access)
APPROVAL: Design reviewed and approved ☐
✅ Complete: Clear MG hierarchy designed
✅ Department isolation planned
✅ RBAC assignment strategy defined
✅ Ready to implement
Implement your design by creating the management group hierarchy.
Step 1: Create Top-Level Department Groups
Name: mg-financeDisplay Name: Finance Department
Parent: Root Management Group
Description: Finance department subscriptions and access
Name: mg-engineeringDisplay Name: Engineering Department
Parent: Root Management Group
Description: Engineering department subscriptions and access
Name: mg-operationsDisplay Name: Operations Department
Parent: Root Management Group
Description: Operations subscriptions and access
Step 2: Verify Hierarchy
Tenant Root Group├── mg-finance
├── mg-engineering
└── mg-operations
Step 3: Document Creation
MANAGEMENT GROUP CREATION LOG════════════════════════════════════════════════════════════
Created: mg-finance
├─ Display Name: Finance Department
├─ Parent: Root Management Group
├─ Created: _______<em><strong> (date)
└─ Status: ✓ Created
Created: mg-engineering
├─ Display Name: Engineering Department
├─ Parent: Root Management Group
├─ Created: </strong></em>____<em><strong> (date)
└─ Status: ✓ Created
Created: mg-operations
├─ Display Name: Operations Department
├─ Parent: Root Management Group
├─ Created: </strong></em>____<em><strong> (date)
└─ Status: ✓ Created
HIERARCHY STATUS: ✓ Complete
✅ Complete: All 3 department MGs created
✅ Hierarchy matches design
✅ All MGs visible in Azure Portal
Move existing subscriptions into the right management groups.
Step 1: Identify Your Subscriptions
List which subscriptions you'll move to each MG:
SUBSCRIPTION ASSIGNMENT PLAN:Finance Department (mg-finance):
├─ Subscription 1: finance-prod
├─ Subscription 2: finance-staging
└─ Subscription 3: finance-dev
Engineering Department (mg-engineering):
├─ Subscription 4: eng-prod
├─ Subscription 5: eng-staging
├─ Subscription 6: eng-dev
└─ Subscription 7: eng-ml
Operations (mg-operations):
├─ Subscription 8: ops-infrastructure
└─ Subscription 9: ops-security
OR use existing subscriptions if you have them
Step 2: Move Subscriptions to Finance MG
Repeat for each Finance subscription.
Step 3: Move Subscriptions to Engineering MG
Step 4: Move Subscriptions to Operations MG
Step 5: Verify Subscription Organization
For each MG:
SUBSCRIPTION ORGANIZATION VERIFICATION:mg-finance subscriptions:
├─ finance-prod: ✓ Present
├─ finance-staging: ✓ Present
└─ finance-dev: ✓ Present
└─ Status: COMPLETE
mg-engineering subscriptions:
├─ eng-prod: ✓ Present
├─ eng-staging: ✓ Present
├─ eng-dev: ✓ Present
└─ eng-ml: ✓ Present
└─ Status: COMPLETE
mg-operations subscriptions:
├─ ops-infrastructure: ✓ Present
└─ ops-security: ✓ Present
└─ Status: COMPLETE
✅ Complete: All subscriptions in correct MGs
✅ No subscriptions under Root
✅ Department isolation at subscription level
You need groups to assign roles. Create groups for each department.
Step 1: Create Finance Groups
Name: grp-finance-adminsType: Security
Description: Finance department administrators (can manage Finance subscriptions)
Members: Add Finance VPs, Finance IT staff
Name: grp-finance-usersType: Security
Description: Finance department users (read-only access to Finance)
Members: Add Finance employees
Step 2: Create Engineering Groups
Name: grp-engineering-adminsType: Security
Description: Engineering department administrators
Members: Add Engineering VPs, Engineering leads
Name: grp-engineering-usersType: Security
Description: Engineering department users (read-only)
Members: Add Engineering employees
Step 3: Create Operations Groups
Name: grp-ops-adminsType: Security
Description: Operations administrators
Members: Add Operations director, senior ops engineers
Name: grp-ops-usersType: Security
Description: Operations staff (read-only)
Members: Add Operations team members
Step 4: Create IT & Auditor Groups
Name: grp-it-adminsType: Security
Description: IT administrators with Root scope access
Members: Add IT directors, cloud architects
Name: grp-auditorsType: Security
Description: Auditors and compliance team (read-only everywhere)
Members: Add internal auditors, compliance officers
Step 5: Document Groups
ENTRA GROUPS CREATED:Department Admin Groups:
├─ grp-finance-admins (Members: </strong></em><strong>)
├─ grp-engineering-admins (Members: </strong><em><strong>)
└─ grp-ops-admins (Members: </strong></em><strong>)
Department User Groups:
├─ grp-finance-users (Members: </strong><em><strong>)
├─ grp-engineering-users (Members: </strong></em><strong>)
└─ grp-ops-users (Members: </strong><em><strong>)
Infrastructure Groups:
├─ grp-it-admins (Members: </strong></em><strong>)
└─ grp-auditors (Members: </strong><em><strong>)
TOTAL: 8 groups created ✓
✅ Complete: 8 groups created
✅ Department groups properly scoped
✅ Clear naming convention
Assign roles to groups at management group scope so they have access only to their department.
Step 1: Assign Finance Department Roles
Role: ContributorScope: mg-finance (management group)
Members: grp-finance-admins
Effect: Can create, modify, delete Finance resources
Result: Finance VP controls Finance subscriptions
Role: ReaderScope: mg-finance
Members: grp-finance-users
Effect: Can view Finance resources (read-only)
Step 2: Assign Engineering Department Roles
Role: ContributorScope: mg-engineering
Members: grp-engineering-admins
Effect: Can manage Engineering subscriptions
Role: ReaderScope: mg-engineering
Members: grp-engineering-users
Effect: Read-only access to Engineering
Step 3: Assign Operations Roles
Role: ContributorScope: mg-operations
Members: grp-ops-admins
Role: ReaderScope: mg-operations
Members: grp-ops-users
Step 4: Assign IT and Auditor Roles at Root
Role: OwnerScope: Root (all subscriptions)
Members: grp-it-admins
Effect: IT has complete control everywhere
Reason: Emergency access, central oversight
Role: ReaderScope: Root (can view everything)
Members: grp-auditors
Effect: Can audit all departments
Reason: Compliance and audit trail review
Step 5: Document RBAC Configuration
RBAC ASSIGNMENT MATRIX - FINAL════════════════════════════════════════════════════════════
FINANCE DEPARTMENT (mg-finance):
├─ grp-finance-admins: Contributor ✓
├─ grp-finance-users: Reader ✓
└─ Result: Finance autonomous, isolated
ENGINEERING DEPARTMENT (mg-engineering):
├─ grp-engineering-admins: Contributor ✓
├─ grp-engineering-users: Reader ✓
└─ Result: Engineering autonomous, isolated
OPERATIONS (mg-operations):
├─ grp-ops-admins: Contributor ✓
├─ grp-ops-users: Reader ✓
└─ Result: Operations autonomous, isolated
CENTRAL IT (Root):
├─ grp-it-admins: Owner ✓
├─ grp-auditors: Reader ✓
└─ Result: IT maintains oversight + audit access
ISOLATION VERIFIED:
├─ Finance VP: Sees Finance subs ONLY ✓
├─ Engineering VP: Sees Engineering subs ONLY ✓
├─ Operations Director: Sees Operations subs ONLY ✓
├─ IT Director: Sees EVERYTHING (Root) ✓
└─ Auditors: Sees EVERYTHING (read-only) ✓
✅ Complete: All RBAC assignments configured
✅ Department isolation enforced via RBAC
✅ Central IT maintains Root control
✅ Auditors have read-only Root access
Verify that isolation actually works. Don't trust configuration - test it!
Step 1: Test Finance Admin Access
Simulate Finance VP signing in:
TEST: Finance VP can see Finance subscriptionsMethod 1: Use "Check access" in IAM
├─ Go to any subscription > Access control (IAM) > Check access
├─ Enter Finance VP email
└─ Verify: Can access Finance subs, CANNOT access Engineering/Ops
Method 2: Sign in as Finance VP
├─ Open new browser (InPrivate/Incognito)
├─ Sign in as Finance VP user
├─ Navigate to Subscriptions blade
├─ Record which subscriptions are visible
Expected Results:
Finance VP (grp-finance-admins):Can See:
├─ finance-prod ✓
├─ finance-staging ✓
└─ finance-dev ✓
Cannot See:
├─ eng-prod ✗
├─ eng-staging ✗
├─ eng-dev ✗
├─ eng-ml ✗
├─ ops-infrastructure ✗
└─ ops-security ✗
Result: ISOLATION VERIFIED ✓
Step 2: Test Engineering Admin Access
TEST: Engineering VP can see Engineering subscriptions ONLYExpected Results:
Can See:
├─ eng-prod ✓
├─ eng-staging ✓
├─ eng-dev ✓
└─ eng-ml ✓
Cannot See:
├─ finance-prod ✗
├─ finance-staging ✗
├─ finance-dev ✗
├─ ops-infrastructure ✗
└─ ops-security ✗
Result: ISOLATION VERIFIED ✓
Step 3: Test Operations Admin Access
TEST: Operations Director can see Operations subs ONLYExpected Results:
Can See:
├─ ops-infrastructure ✓
└─ ops-security ✓
Cannot See:
├─ finance-<em> ✗
├─ eng-</em> ✗
└─ All other subscriptions ✗
Result: ISOLATION VERIFIED ✓
Step 4: Test IT Admin Access (Should see everything)
TEST: IT Director can see ALL subscriptionsExpected Results:
Can See: ALL subscriptions ✓
├─ finance-<em> ✓
├─ eng-</em> ✓
├─ ops-* ✓
└─ Any other subscriptions ✓
Result: Central oversight verified ✓
Step 5: Test Auditor Access (Read-only everywhere)
TEST: Auditor can view everything but not modifyExpected Results:
Can See: ALL subscriptions (read-only) ✓
Can Modify: NOTHING ✗
├─ Cannot create resources
├─ Cannot delete resources
├─ Cannot change policies
└─ Can only view and audit ✓
Result: Read-only auditing verified ✓
Step 6: Create Isolation Test Report
DEPARTMENT ISOLATION TEST REPORT════════════════════════════════════════════════════════════
Test Date: </strong></em>_________<em><strong>
Tester: </strong></em>_________<em><strong>
FINANCE ADMIN ISOLATION:
├─ Can see Finance subs: ✓ PASS / ✗ FAIL
├─ Cannot see Engineering: ✓ PASS / ✗ FAIL
├─ Cannot see Operations: ✓ PASS / ✗ FAIL
└─ Result: ✓ ISOLATED / ✗ FAILED
ENGINEERING ADMIN ISOLATION:
├─ Can see Engineering subs: ✓ PASS / ✗ FAIL
├─ Cannot see Finance: ✓ PASS / ✗ FAIL
├─ Cannot see Operations: ✓ PASS / ✗ FAIL
└─ Result: ✓ ISOLATED / ✗ FAILED
OPERATIONS ADMIN ISOLATION:
├─ Can see Operations subs: ✓ PASS / ✗ FAIL
├─ Cannot see Finance: ✓ PASS / ✗ FAIL
├─ Cannot see Engineering: ✓ PASS / ✗ FAIL
└─ Result: ✓ ISOLATED / ✗ FAILED
IT ADMIN OVERVIEW:
├─ Can see all subscriptions: ✓ PASS / ✗ FAIL
├─ Can modify resources: ✓ PASS / ✗ FAIL
└─ Result: ✓ CENTRAL CONTROL / ✗ FAILED
AUDITOR ACCESS:
├─ Can view all subscriptions: ✓ PASS / ✗ FAIL
├─ Cannot modify anything: ✓ PASS / ✗ FAIL
└─ Result: ✓ READ-ONLY AUDIT / ✗ FAILED
OVERALL: ✓ ALL TESTS PASS / ✗ SOME FAILURES
✅ Complete: All isolation tests passed
✅ Department admins cannot see other departments
✅ IT maintains central oversight
✅ Auditors have read-only access
After completing all 6 parts, verify everything is in place:
DEPARTMENT DELEGATION & ISOLATION FINAL CHECKLIST════════════════════════════════════════════════════════════
DESIGN & PLANNING
├─ [ ] MG hierarchy designed
├─ [ ] Subscription organization planned
├─ [ ] RBAC strategy documented
└─ [ ] Status: ✓ COMPLETE
MANAGEMENT GROUPS
├─ [ ] mg-finance created
├─ [ ] mg-engineering created
├─ [ ] mg-operations created
└─ [ ] Status: ✓ COMPLETE
SUBSCRIPTIONS
├─ [ ] Finance subs moved to mg-finance
├─ [ ] Engineering subs moved to mg-engineering
├─ [ ] Operations subs moved to mg-operations
└─ [ ] Status: ✓ COMPLETE
ENTRA GROUPS
├─ [ ] 3 department admin groups created
├─ [ ] 3 department user groups created
├─ [ ] IT admin group created
├─ [ ] Auditor group created
└─ [ ] Status: ✓ COMPLETE
RBAC ASSIGNMENTS
├─ [ ] Finance admins: Contributor on mg-finance
├─ [ ] Engineering admins: Contributor on mg-engineering
├─ [ ] Operations admins: Contributor on mg-operations
├─ [ ] IT admins: Owner at Root
├─ [ ] Auditors: Reader at Root
└─ [ ] Status: ✓ COMPLETE
ISOLATION TESTING
├─ [ ] Finance VP: Isolated to Finance subs
├─ [ ] Engineering VP: Isolated to Engineering subs
├─ [ ] Operations Director: Isolated to Operations subs
├─ [ ] IT Director: Can see everything
├─ [ ] Auditors: Read-only everywhere
└─ [ ] Status: ✓ COMPLETE
DOCUMENTATION
├─ [ ] Design document created
├─ [ ] MG creation log completed
├─ [ ] Subscription organization verified
├─ [ ] RBAC matrix documented
├─ [ ] Isolation test report completed
└─ [ ] Status: ✓ COMPLETE
OVERALL COMPLETION: </strong></em> 100% ___ Partial (identify gaps)
✅ Management Groups enable delegation - Each department manages their own scope
✅ Scope isolation prevents data leaks - Finance VP cannot see Engineering data
✅ RBAC at MG level cascades to subscriptions - Changes at MG level affect all child subscriptions
✅ Central IT maintains overview - Root Owner role provides emergency access
✅ Auditors need Root Reader access - Can see everything for compliance
You've now implemented patterns used by: