Moving Azure Resources Across Resource Groups, Subscriptions, Regions, and Tenants
Azure resources don't always end up where they should stay: a resource group gets restructured, a workload moves to a different subscription for billing reasons, or a region needs to change for latency or compliance. Azure supports several of these moves natively, but "moving a resource" means something different depending on what's actually changing — and the supported resource types differ accordingly.
Resource group and subscription moves
Moving a resource to a different resource group or a different subscription — while staying in the same region — is the most broadly supported case. Most resource types support this: select the resources in the portal and use the "Move" option (the three-dots menu), choose the destination type (another subscription or another resource group), and specify the target. Azure validates that the selected resources are actually eligible for the move before letting it proceed, and moving a resource often involves its dependencies too — a virtual machine's network interface, for instance, needs to move with it. Not every dependent resource is guaranteed to move, though; support is still determined per resource type.
Region moves: where Azure Resource Mover actually applies
Moving a resource to a different region is a narrower case, and it's specifically what Azure Resource Mover is for — it isn't the same tool as the resource group/subscription move described above. Resource Mover's supported resource types are concentrated around virtual machines: VMs and their disks, network interfaces, network security groups, and availability sets. Disks specifically are copied during a region move rather than moved outright, which takes time and incurs storage costs for the duplicate.
Many other resource types that move freely between resource groups or subscriptions don't support a region move at all. App Service and Azure Functions are the clearest example of this distinction: both can move between resource groups and subscriptions without issue, but neither supports moving to a new region — for those, you'll need to redeploy manually in the target region.
Cross-tenant moves
You can't move an individual resource directly between Microsoft Entra tenants — resources are intrinsically tied to the tenant of the subscription they sit in, and no simple "move" operation crosses that boundary. The supported path is to transfer the entire subscription from the source tenant to the destination tenant instead (via the subscription's "Change directory" option). That's a bigger operation than it might sound: transferring a subscription's tenant permanently removes all existing Azure role assignments on it, and only the recipient who accepts the transfer keeps access — roles need reassigning afterwards in the new tenant, and resources like key vaults need their tenant ID updated to match.
Lab walkthrough
- Initiate the move. Select the resources to move and choose "Move" from the three-dots menu.
- Choose the destination type. Another region, another subscription, or another resource group.
- Select the target. The specific region, subscription, or resource group to move into.
- Validate compatibility. Azure checks that the selected resources (and any dependencies) are eligible for the chosen move type before anything happens — this is where a disk being copied rather than moved, for example, would surface.
- Confirm and execute. Once validation passes, confirm to trigger the actual move (or copy, for anything that can't be moved outright).
Common issues and troubleshooting
- Disk movement isn't a true move. Disks are copied to the new location during a region move, which takes time and adds temporary storage cost for the duplicate.
- Unsupported resource types. Services like
App ServiceandAzure Functionsdon't support region moves — redeploy manually instead. - Validation failures. Usually a dependency or configuration blocking the move; the error messages point at the specific resource.
- Subscription moves aren't universal either. Not every resource type that supports a resource group move also supports a subscription move — check the specific resource type before assuming.