azure-mg-root-tenant-link
match (record)
{
"field": "properties.details.parent == null",
"resource_type": "Microsoft.Management/managementGroups"
}
where
emit
| source type | AdministrativeBoundary |
|---|---|
| target type | * |
| source | <tenant node> |
| target | <root management group node> |
Narrative
Tenant {tenant.name} contains the root management group {rootmg.name} (ID == tenant ID).
Raw rule rules/explicit/azure-mgmtgroups.yaml
id: azure-mg-root-tenant-link
emits: Contains
applies_to:
- azure
match_record:
resource_type: Microsoft.Management/managementGroups
field: properties.details.parent == null
where:
- management group id == Entra tenant id (root Tenant Root Group)
emit:
source_type: AdministrativeBoundary
target_type: '*'
source: <tenant node>
target: <root management group node>
api_source: Microsoft.Management/managementGroups GET | getEntities
evidence_field: id
note: The root MG (display name 'Tenant Root Group') has ID == Entra tenant ID and no parent; it is
the tenant control root. Anything assigned here applies to the entire directory. Modeled as Tenant
Contains rootMG so descent from the tenant reaches all MGs.
narrative: Tenant {tenant.name} contains the root management group {rootmg.name} (ID == tenant ID).