Manage your Azure subscriptions at scale with management groups

If your organization has many subscriptions, you might need a way to efficiently manage access, policies, and compliance for those subscriptions. Azure management groups provide a level of scope above subscriptions. You organize subscriptions into containers called management groups and apply your governance conditions to the management groups. All subscriptions within a management group automatically inherit the conditions applied to the management group.

Management groups give you enterprise-grade management at a large scale no matter what type of subscription you have. To learn more about management groups, see Organize your resources with Azure management groups.

Note

This article provides steps about how to delete personal data from the device or service and can be used to support your obligations under the GDPR. For general information about GDPR, see the GDPR section of the Microsoft Trust Center and the GDPR section of the Service Trust portal.

Important

Azure Resource Manager user tokens and management group cache last for 30 minutes before they're forced to refresh. Any action like moving a management group or subscription might take up to 30 minutes to appear. To see the updates sooner, you need to update your token by refreshing the browser, signing in and out, or requesting a new token.

For the Azure PowerShell actions in this article, keep in mind that AzManagementGroup-related cmdlets mention that -GroupId is an alias of the -GroupName parameter. You can use either of them to provide the management group ID as a string value.

Change the name of a management group

You can change the name of the management group by using the Azure portal, Azure PowerShell, or the Azure CLI.

Change the name in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. Select the management group that you want to rename.

  4. Select details.

  5. Select the Rename Group option at the top of the pane.

    Screenshot of the action bar and the Rename Group button on the management group page.

  6. On the Rename Group pane, enter the new name that you want to display.

    Screenshot of the options to rename a management group.

  7. Select Save.

Change the name in Azure PowerShell

To update the display name, use Update-AzManagementGroup in Azure PowerShell. For example, to change a management group's display name from Contoso IT to Contoso Group, run the following command:

Update-AzManagementGroup -GroupId 'ContosoIt' -DisplayName 'Contoso Group'

Change the name in the Azure CLI

For the Azure CLI, use the update command:

az account management-group update --name 'Contoso' --display-name 'Contoso Group'

Delete a management group

To delete a management group, you must meet the following requirements:

  • There are no child management groups or subscriptions under the management group. To move a subscription or management group to another management group, see Move management groups and subscriptions later in this article.

  • You need write permissions on the management group (Owner, Contributor, or Management Group Contributor). To see what permissions you have, select the management group and then select IAM. To learn more on Azure roles, see What is Azure role-based access control (Azure RBAC)?.

Delete a management group in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. Select the management group that you want to delete.

  4. Select details.

  5. Select Delete.

    Screenshot of the management group page with the Delete button.

    Tip

    If the Delete button is unavailable, hovering over the button shows you the reason.

  6. A dialog opens and asks you to confirm that you want to delete the management group.

    Screenshot of the confirmation dialog for deleting a management group.

  7. Select Yes.

Delete a management group in Azure PowerShell

To delete a management group, use the Remove-AzManagementGroup command in Azure PowerShell:

Remove-AzManagementGroup -GroupId 'Contoso'

Delete a management group in the Azure CLI

With the Azure CLI, use the command az account management-group delete:

az account management-group delete --name 'Contoso'

View management groups

You can view any management group if you have a direct or inherited Azure role on it.

View management groups in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. The page for management group hierarchy appears. On this page, you can explore all the management groups and subscriptions that you have access to. Selecting the group name takes you to a lower level in the hierarchy. The navigation works the same as a file explorer does.

  4. To see the details of the management group, select the (details) link next to the title of the management group. If this link isn't available, you don't have permissions to view that management group.

    Screenshot of the management groups page that shows child management groups and subscriptions.

View management groups in Azure PowerShell

You use the Get-AzManagementGroup command to retrieve all groups. For the full list of GET PowerShell commands for management groups, see the Az.Resources modules.

Get-AzManagementGroup

For a single management group's information, use the -GroupId parameter:

Get-AzManagementGroup -GroupId 'Contoso'

To return a specific management group and all the levels of the hierarchy under it, use the -Expand and -Recurse parameters:

PS C:\> $response = Get-AzManagementGroup -GroupId TestGroupParent -Expand -Recurse
PS C:\> $response

Id                : /providers/Microsoft.Management/managementGroups/TestGroupParent
Type              : /providers/Microsoft.Management/managementGroups
Name              : TestGroupParent
TenantId          : 00000000-0000-0000-0000-000000000000
DisplayName       : TestGroupParent
UpdatedTime       : 2/1/2018 11:15:46 AM
UpdatedBy         : 00000000-0000-0000-0000-000000000000
ParentId          : /providers/Microsoft.Management/managementGroups/00000000-0000-0000-0000-000000000000
ParentName        : 00000000-0000-0000-0000-000000000000
ParentDisplayName : 00000000-0000-0000-0000-000000000000
Children          : {TestGroup1DisplayName, TestGroup2DisplayName}

PS C:\> $response.Children[0]

Type        : /managementGroup
Id          : /providers/Microsoft.Management/managementGroups/TestGroup1
Name        : TestGroup1
DisplayName : TestGroup1DisplayName
Children    : {TestRecurseChild}

PS C:\> $response.Children[0].Children[0]

Type        : /managementGroup
Id          : /providers/Microsoft.Management/managementGroups/TestRecurseChild
Name        : TestRecurseChild
DisplayName : TestRecurseChild
Children    :

View management groups in the Azure CLI

You use the list command to retrieve all groups:

az account management-group list

For a single management group's information, use the show command:

az account management-group show --name 'Contoso'

To return a specific management group and all the levels of the hierarchy under it, use the -Expand and -Recurse parameters:

az account management-group show --name 'Contoso' -e -r

Move management groups and subscriptions

One reason to create a management group is to bundle subscriptions together. Only management groups and subscriptions can become children of another management group. A subscription that moves to a management group inherits all user access and policies from the parent management group.

You can move subscriptions between management groups. A subscription can have only one parent management group.

When you move a management group or subscription to be a child of another management group, three rules need to be evaluated as true.

If you're doing the move action, you need permission at each of the following layers:

  • Child subscription or management group
    • Microsoft.management/managementgroups/write
    • Microsoft.management/managementgroups/subscriptions/write (only for subscriptions)
    • Microsoft.Authorization/roleAssignments/write
    • Microsoft.Authorization/roleAssignments/delete
    • Microsoft.Management/register/action
  • Target parent management group
    • Microsoft.management/managementgroups/write
  • Current parent management group
    • Microsoft.management/managementgroups/write

There's an exception: if the target or the existing parent management group is the root management group, the permission requirements don't apply. Because the root management group is the default landing spot for all new management groups and subscriptions, you don't need permissions on it to move an item.

If the Owner role on the subscription is inherited from the current management group, your move targets are limited. You can move the subscription only to another management group where you have the Owner role. You can't move the subscription to a management group where you're only a Contributor because you would lose ownership of the subscription. If you're directly assigned to the Owner role for the subscription, you can move it to any management group where you have the Contributor role.

To see what permissions you have in the Azure portal, select the management group and then select IAM. To learn more about Azure roles, see What is Azure role-based access control (Azure RBAC)?.

Add an existing subscription to a management group in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. Select the management group that you want to be the parent.

  4. At the top of the page, select Add subscription.

  5. Select the subscription in the list with the correct ID.

    Screenshot of the box for selecting an existing subscription to add to a management group.

  6. Select Save.

Remove a subscription from a management group in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. Select the management group that's the current parent.

  4. Select the ellipsis (...) at the end of the row for the subscription in the list that you want to move.

    Screenshot of the menu that includes the move option for a subscription.

  5. Select Move.

  6. On Move pane, select the value for New parent management group ID.

    Screenshot of the pane for moving a subscription to a different management group.

  7. Select Save.

Move a subscription in Azure PowerShell

To move a subscription in PowerShell, you use the New-AzManagementGroupSubscription command:

New-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'

To remove the link between the subscription and the management group, use the Remove-AzManagementGroupSubscription command:

Remove-AzManagementGroupSubscription -GroupId 'Contoso' -SubscriptionId '12345678-1234-1234-1234-123456789012'

Move a subscription in the Azure CLI

To move a subscription in the Azure CLI, you use the add command:

az account management-group subscription add --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'

To remove the subscription from the management group, use the subscription remove command:

az account management-group subscription remove --name 'Contoso' --subscription '12345678-1234-1234-1234-123456789012'

Move a subscription in an ARM template

To move a subscription in an Azure Resource Manager template (ARM template), use the following template and deploy it at the tenant level:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-08-01/managementGroupDeploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "targetMgId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the management group that you want to move the subscription to."
            }
        },
        "subscriptionId": {
            "type": "string",
            "metadata": {
                "description": "Provide the ID of the existing subscription to move."
            }
        }
    },
    "resources": [
        {
            "scope": "/",
            "type": "Microsoft.Management/managementGroups/subscriptions",
            "apiVersion": "2020-05-01",
            "name": "[concat(parameters('targetMgId'), '/', parameters('subscriptionId'))]",
            "properties": {
            }
        }
    ],
    "outputs": {}
}

Or, use the following Bicep file:

targetScope = 'managementGroup'

@description('Provide the ID of the management group that you want to move the subscription to.')
param targetMgId string

@description('Provide the ID of the existing subscription to move.')
param subscriptionId string

resource subToMG 'Microsoft.Management/managementGroups/subscriptions@2020-05-01' = {
  scope: tenant()
  name: '${targetMgId}/${subscriptionId}'
}

Move a management group in the portal

  1. Sign in to the Azure portal.

  2. Select All services > Management groups.

  3. Select the management group that you want to be the parent.

  4. At the top of the page, select Add management group.

  5. On the Add management group pane, choose whether you want to use a new or existing management group:

    • Selecting Create new creates a new management group.
    • Selecting Use existing presents you with a dropdown list of all the management groups that you can move to this management group.

    Screenshot of the pane for adding a management group.

  6. Select Save.

Move a management group in Azure PowerShell

To move a management group under a different group, use the Update-AzManagementGroup command in Azure PowerShell:

$parentGroup = Get-AzManagementGroup -GroupId ContosoIT
Update-AzManagementGroup -GroupId 'Contoso' -ParentId $parentGroup.id

Move a management group in the Azure CLI

To move a management group in the Azure CLI, use the update command:

az account management-group update --name 'Contoso' --parent ContosoIT

Audit management groups by using activity logs

Management groups are supported in Azure Monitor activity logs. You can query all events that happen to a management group in the same central location as other Azure resources. For example, you can see all role assignments or policy assignment changes made to a particular management group.

Screenshot of activity logs and operations related to a selected management group.

When you want to query on management groups outside the Azure portal, the target scope for management groups looks like "/providers/Microsoft.Management/managementGroups/{yourMgID}".

Reference management groups from other resource providers

When you're referencing management groups from another resource provider's actions, use the following path as the scope. This path applies when you're using Azure PowerShell, the Azure CLI, and REST APIs.

/providers/Microsoft.Management/managementGroups/{yourMgID}

An example of using this path is when you're assigning a new role to a management group in Azure PowerShell:

New-AzRoleAssignment -Scope "/providers/Microsoft.Management/managementGroups/Contoso"

You use the same scope path to retrieve a policy definition for a management group:

GET https://management.azure.com/providers/Microsoft.Management/managementgroups/MyManagementGroup/providers/Microsoft.Authorization/policyDefinitions/ResourceNaming?api-version=2019-09-01

To learn more about management groups, see: