Azure
Azure
Azure Resource Manager is the deployment and management service for Azure. It provides a management layer
that enables you to create, update, and delete resources in your Azure account. You use management features,
like access control, locks, and tags, to secure and organize your resources after deployment.
To learn about Azure Resource Manager templates (ARM templates), see the ARM template overview. To learn
about Bicep, see Bicep overview.
All capabilities that are available in the portal are also available through PowerShell, Azure CLI, REST APIs, and
client SDKs. Functionality initially released through APIs will be represented in the portal within 180 days of
initial release.
Terminology
If you're new to Azure Resource Manager, there are some terms you might not be familiar with.
resource - A manageable item that is available through Azure. Virtual machines, storage accounts, web
apps, databases, and virtual networks are examples of resources. Resource groups, subscriptions,
management groups, and tags are also examples of resources.
resource group - A container that holds related resources for an Azure solution. The resource group
includes those resources that you want to manage as a group. You decide which resources belong in a
resource group based on what makes the most sense for your organization. See Resource groups.
resource provider - A service that supplies Azure resources. For example, a common resource provider is
Microsoft.Compute , which supplies the virtual machine resource. Microsoft.Storage is another common
resource provider. See Resource providers and types.
declarative syntax - Syntax that lets you state "Here's what I intend to create" without having to write the
sequence of programming commands to create it. ARM templates and Bicep files are examples of declarative
syntax. In those files, you define the properties for the infrastructure to deploy to Azure.
ARM template - A JavaScript Object Notation (JSON) file that defines one or more resources to deploy to a
resource group, subscription, management group, or tenant. The template can be used to deploy the
resources consistently and repeatedly. See Template deployment overview.
Bicep file - A file for declaratively deploying Azure resources. Bicep is a language that's been designed to
provide the best authoring experience for infrastructure as code solutions in Azure. See Bicep overview.
Understand scope
Azure provides four levels of scope: management groups, subscriptions, resource groups, and resources. The
following image shows an example of these layers.
You apply management settings at any of these levels of scope. The level you select determines how widely the
setting is applied. Lower levels inherit settings from higher levels. For example, when you apply a policy to the
subscription, the policy is applied to all resource groups and resources in your subscription. When you apply a
policy on the resource group, that policy is applied to the resource group and all its resources. However, another
resource group doesn't have that policy assignment.
For information about managing identities and access, see Azure Active Directory.
You can deploy templates to tenants, management groups, subscriptions, or resource groups.
Resource groups
There are some important factors to consider when defining your resource group:
All the resources in your resource group should share the same lifecycle. You deploy, update, and delete
them together. If one resource, such as a server, needs to exist on a different deployment cycle it should
be in another resource group.
Each resource can exist in only one resource group.
You can add or remove a resource to a resource group at any time.
You can move a resource from one resource group to another group. For more information, see Move
resources to new resource group or subscription.
The resources in a resource group can be located in different regions than the resource group.
When you create a resource group, you need to provide a location for that resource group.
You may be wondering, "Why does a resource group need a location? And, if the resources can have
different locations than the resource group, why does the resource group location matter at all?"
The resource group stores metadata about the resources. When you specify a location for the resource
group, you're specifying where that metadata is stored. For compliance reasons, you may need to ensure
that your data is stored in a particular region.
If a resource group's region is temporarily unavailable, you can't update resources in the resource group
because the metadata is unavailable. The resources in other regions will still function as expected, but you
can't update them. This condition doesn't apply to global resources like Azure Content Delivery Network,
Azure DNS, Azure Traffic Manager, and Azure Front Door.
For more information about building reliable applications, see Designing reliable Azure applications.
A resource group can be used to scope access control for administrative actions. To manage a resource
group, you can assign Azure Policies, Azure roles, or resource locks.
You can apply tags to a resource group. The resources in the resource group don't inherit those tags.
A resource can connect to resources in other resource groups. This scenario is common when the two
resources are related but don't share the same lifecycle. For example, you can have a web app that
connects to a database in a different resource group.
When you delete a resource group, all resources in the resource group are also deleted. For information
about how Azure Resource Manager orchestrates those deletions, see Azure Resource Manager resource
group and resource deletion.
You can deploy up to 800 instances of a resource type in each resource group. Some resource types are
exempt from the 800 instance limit. For more information, see resource group limits.
Some resources can exist outside of a resource group. These resources are deployed to the subscription,
management group, or tenant. Only specific resource types are supported at these scopes.
To create a resource group, you can use the portal, PowerShell, Azure CLI, or an ARM template.
Next steps
To learn about limits that are applied across Azure services, see Azure subscription and service limits,
quotas, and constraints.
To learn about moving resources, see Move resources to new resource group or subscription.
To learn about tagging resources, see Use tags to organize your Azure resources.
To learn about locking resources, see Lock resources to prevent unexpected changes.
Azure subscription and service limits, quotas, and
constraints
2/23/2022 • 125 minutes to read • Edit Online
This document lists some of the most common Microsoft Azure limits, which are also sometimes called quotas.
To learn more about Azure pricing, see Azure pricing overview. There, you can estimate your costs by using the
pricing calculator. You also can go to the pricing details page for a particular service, for example, Windows VMs.
For tips to help manage your costs, see Prevent unexpected costs with Azure billing and cost management.
Managing limits
NOTE
Some services have adjustable limits.
When a service doesn't have adjustable limits, the following tables use the header Limit . In those cases, the default and
the maximum limits are the same.
When the limit can be adjusted, the tables include Default limit and Maximum limit headers. The limit can be raised
above the default limit but not above the maximum limit.
If you want to raise the limit or quota above the default limit, open an online customer support request at no charge.
The terms soft limit and hard limit often are used informally to describe the current, adjustable limit (soft limit) and the
maximum limit (hard limit). If a limit isn't adjustable, there won't be a soft limit, only a hard limit.
Free Trial subscriptions aren't eligible for limit or quota increases. If you have a Free Trial subscription, you can
upgrade to a Pay-As-You-Go subscription. For more information, see Upgrade your Azure Free Trial subscription
to a Pay-As-You-Go subscription and the Free Trial subscription FAQ.
Some limits are managed at a regional level.
Let's use vCPU quotas as an example. To request a quota increase with support for vCPUs, you must decide how
many vCPUs you want to use in which regions. You then request an increase in vCPU quotas for the amounts
and regions that you want. If you need to use 30 vCPUs in West Europe to run your application there, you
specifically request 30 vCPUs in West Europe. Your vCPU quota isn't increased in any other region--only West
Europe has the 30-vCPU quota.
As a result, decide what your quotas must be for your workload in any one region. Then request that amount in
each region into which you want to deploy. For help in how to determine your current quotas for specific
regions, see Resolve errors for resource quotas.
General limits
For limits on resource names, see Naming rules and restrictions for Azure resources.
For information about Resource Manager API read and write limits, see Throttling Resource Manager requests.
Management group limits
The following limits apply to management groups.
RESO URC E L IM IT
RESO URC E L IM IT
1You can apply up to 50 tags directly to a subscription. However, the subscription can contain an unlimited
number of tags that are applied to resource groups and resources within the subscription. The number of tags
per resource or resource group is limited to 50. Resource Manager returns a list of unique tag name and values
in the subscription only when the number of tags is 80,000 or less. You still can find a resource by tag when the
number exceeds 80,000.
2Deployments are automatically deleted from the history as you near the limit. For more information, see
Automatic deletions from deployment history.
Resource group limits
RESO URC E L IM IT
Resources per resource group Resources aren't limited by resource group. Instead, they're
limited by resource type in a resource group. See next row.
Resources per resource group, per resource type 800 - Some resource types can exceed the 800 limit. See
Resources not limited to 800 instances per resource group.
1Deployments are automatically deleted from the history as you near the limit. Deleting an entry from the
deployment history doesn't affect the deployed resources. For more information, see Automatic deletions from
deployment history.
Template limits
VA L UE L IM IT
Parameters 256
Variables 256
Outputs 64
Template size 4 MB
You can exceed some template limits by using a nested template. For more information, see Use linked
templates when you deploy Azure resources. To reduce the number of parameters, variables, or outputs, you can
combine several values into an object. For more information, see Objects as parameters.
You may get an error with a template or parameter file of less than 4 MB, if the total size of the request is too
large. For more information about how to simplify your template to avoid a large request, see Resolve errors for
job size exceeded.
C AT EGO RY L IM IT
Access Panel There's no limit to the number of applications per user that
can be displayed in the Access Panel, regardless of the
number of assigned licenses.
1 Scaling limits depend on the pricing tier. For details on the pricing tiers and their scaling limits, see API
Management pricing.
2 Per unit cache size depends on the pricing tier. To see the pricing tiers and their scaling limits, see API
Management pricing.
3 Connections are pooled and reused unless explicitly closed by the back end.
4 This limit is per unit of the Basic, Standard, and Premium tiers. The Developer tier is limited to 1,024. This limit
limited to 16 KiB.
6 Multiple custom domains are supported in the Developer and Premium tiers only.
7 CA certificates are not supported in the Consumption tier.
8 This limit applies to the Consumption tier only. There are no limits in these categories for other tiers.
9 Applies to the Consumption tier only. Includes an up to 2048-bytes long query string.
10 To increase this limit, contact support.
11 Self-hosted gateways are supported in the Developer and Premium tiers only. The limit applies to the number
of self-hosted gateway resources. To raise this limit contact support. Note, that the number of nodes (or replicas)
associated with a self-hosted gateway resource is unlimited in the Premium tier and capped at a single node in
the Developer tier.
App Service limits
P REM IUM
RESO URC E F REE SH A RED B A SIC STA N DA RD ( V1- V3) ISO L AT ED
App Service 10 per region 10 per 100 per 100 per 100 per 100 per
plan resource resource resource resource resource
group group group group group
The available
storage quota
is 999 GB.
Concurrent 1 1 1 5 5 5
debugger
connections
per
application
Custom Not Not Unlimited SNI Unlimited SNI Unlimited SNI Unlimited SNI
domain SSL supported, supported, SSL SSL and 1 IP SSL and 1 IP SSL and 1 IP
support wildcard wildcard connections SSL SSL SSL
certificate for certificate for connections connections connections
*.azurewebsit *.azurewebsit included included included
es.net es.net
available by available by
default default
Hybrid 5 per plan 25 per plan 220 per app 220 per app
connections
Virtual X X X
Network
Integration
Integrated X X X X X9
load balancer
Access 512 rules per 512 rules per 512 rules per 512 rules per 512 rules per 512 rules per
restrictions app app app app app app
Always On X X X X
Autoscale X X X
P REM IUM
RESO URC E F REE SH A RED B A SIC STA N DA RD ( V1- V3) ISO L AT ED
WebJobs10 X X X X X X
Endpoint X X X X
monitoring
Staging slots 5 20 20
per app
Testing in X X X
Production
Diagnostic X X X X X X
Logs
Kudu X X X X X X
Authenticatio X X X X X X
n and
Authorization
App Service X X X X
Managed
Certificates11
1 Apps and storage quotas are per App Service plan unless noted otherwise.
2 The actual number of apps that you can host on these machines depends on the activity of the apps, the size of
the machine instances, and the corresponding resource utilization.
3 Dedicated instances can be of different sizes. For more information, see App Service pricing.
4 More are allowed upon request.
5 The storage limit is the total content size across all apps in the same App service plan. The total content size of
all apps across all App service plans in a single resource group and region cannot exceed 500 GB. The file
system quota for App Service hosted apps is determined by the aggregate of App Service plans created in a
region and resource group.
6 These resources are constrained by physical resources on the dedicated instances (the instance size and the
number of instances).
7 If you scale an app in the Basic tier
to two instances, you have 350 concurrent connections for each of the two
instances. For Standard tier and above, there are no theoretical limits to web sockets, but other factors can limit
the number of web sockets. For example, maximum concurrent requests allowed (defined by
maxConcurrentRequestsPerCpu ) are: 7,500 per small VM, 15,000 per medium VM (7,500 x 2 cores), and 75,000
per large VM (18,750 x 4 cores).
8 The maximum IP connections are per instance and depend on the instance size: 1,920 per B1/S1/P1V3
instance, 3,968 per B2/S2/P2V3 instance, 8,064 per B3/S3/P3V3 instance.
9 App Service Isolated SKUs can be internally load balanced (ILB) with Azure Load Balancer, so there's no public
connectivity from the internet. As a result, some features of an ILB Isolated App Service must be used from
machines that have direct access to the ILB network endpoint.
10 Run custom executables and/or scripts on demand, on a schedule, or continuously as a background task
within your App Service instance. Always On is required for continuous WebJobs execution. There's no
predefined limit on the number of WebJobs that can run in an App Service instance. There are practical limits
that depend on what the application code is trying to do.
11 Only issuing standard certificates (wildcard certificates aren't available). Limited to only one free certificate
Automation limits
Process automation
RESO URC E L IM IT N OT ES
Maximum number of new jobs that 100 When this limit is reached, the
can be submitted every 30 seconds subsequent requests to create a job
per Azure Automation account fail. The client receives an error
(nonscheduled jobs) response.
Maximum storage size of job metadata 10 GB (approximately 4 million jobs) When this limit is reached, the
for a 30-day rolling period subsequent requests to create a job
fail.
Maximum job stream limit 1 MiB A single stream cannot be larger than
1 MiB.
Job run time, Free tier 500 minutes per subscription per
calendar month
1A sandbox is a shared environment that can be used by multiple jobs. Jobs that use the same sandbox are
RESO URC E L IM IT N OT ES
File 500
File size 5 MB
Registry 250
Services 250
Daemon 250
Update Management
The following table shows the limits for Update Management.
RESO URC E L IM IT N OT ES
Configuration store requests for Free 1,000 requests per day Once the quota is exhausted, HTTP
tier status code 429 will be returned for all
requests until the end of the day
Configuration store requests for 30,000 per hour Once the quota is exhausted, requests
Standard tier may return HTTP status code 429
indicating Too Many Requests - until
the end of the hour
Databases 64
Azure Cache for Redis limits and sizes are different for each pricing tier. To see the pricing tiers and their
associated sizes, see Azure Cache for Redis pricing.
For more information on Azure Cache for Redis configuration limits, see Default Redis server configuration.
Because configuration and management of Azure Cache for Redis instances is done by Microsoft, not all Redis
commands are supported in Azure Cache for Redis. For more information, see Redis commands not supported
in Azure Cache for Redis.
1Each Azure Cloud Service with web or worker roles can have two deployments, one for production and one for
staging. This limit refers to the number of distinct roles, that is, configuration. This limit doesn't refer to the
number of instances per role, that is, scaling.
Maximu 1 16 16 8 6 6 6 6
m
services
Maximu N/A 3 SU 36 SU 36 SU 36 SU 36 SU 36 SU 36 SU
m scale in
search
units
(SU)2
1 Free is based on infrastructure that's shared with other customers. Because the hardware isn't dedicated, scale-
up isn't supported on the free tier.
2 Search units are billing units, allocated as either
a replica or a partition. You need both resources for storage,
indexing, and query operations. To learn more about SU computations, see Scale resource levels for query and
index workloads.
Limits per search ser vice
A search service is constrained by disk space or by a hard limit on the maximum number of indexes or indexers,
whichever comes first. The following table documents storage limits. For maximum object limits, see Limits by
resource.
RESO URC
E F REE B A SIC 1 S1 S2 S3 S3 H D L1 L2
Partitions N/A 1 12 12 12 3 12 12
per
service
Replicas N/A 3 12 12 12 12 12 12
1 Basic has one fixed partition. Additional search units can be used to add replicas for larger query volumes.
2 Service level agreements are in effect forbillable services on dedicated resources. Free services and preview
features have no SLA. For billable services, SLAs take effect when you provision sufficient redundancy for your
service. Two or more replicas are required for query (read) SLAs. Three or more replicas are required for query
and indexing (read-write) SLAs. The number of partitions isn't an SLA consideration.
To learn more about limits on a more granular level, such as document size, queries per second, keys, requests,
and responses, see Service limits in Azure Cognitive Search.
Azure Cognitive Services limits
The following limits are for the number of Cognitive Services resources per Azure subscription. There is a limit
of only one allowed 'Free' account, per Cognitive Service type, per subscription. Each of the Cognitive Services
may have other limitations, for more information, see Azure Cognitive Services.
TYPE L IM IT EXA M P L E
A mixture of Cognitive Services Maximum of 200 total Cognitive 100 Computer Vision resources in
resources Services resources per region. West US, 50 Speech Service resources
in West US, and 50 Text Analytics
resources in West US.
A single type of Cognitive Services Maximum of 100 resources per region 100 Computer Vision resources in
resources. West US 2, and 100 Computer Vision
resources in East US.
RESO URC E L IM IT
The following table describes the limits on management operations performed on Azure Data Explorer clusters.
SC O P E O P ERAT IO N L IM IT
App Service 100 per region 100 per resource 100 per resource - -
plans group group
Custom domain unbounded SNI unbounded SNI unbounded SNI unbounded SNI n/a
SSL support SSL connection SSL and 1 IP SSL SSL and 1 IP SSL SSL and 1 IP SSL
included connections connections connections
included included included
1 By default, the timeout for the Functions 1.x runtime in an App Service plan is unbounded.
2 Requires the App Service plan be set to Always On. Pay at standard rates.
3 These limits are set in the host.
4 The actual number of function apps that you can host depends on the activity of the apps, the size of the
machine instances, and the corresponding resource utilization.
5 The storage limit is the total content size in temporary storage across all apps in the same App Service plan.
apps in a Premium plan or an App Service plan, you can map a custom domain using either a CNAME or an A
record.
7 Guaranteed for up to 60 minutes.
8 Workers are roles that host customer apps. Workers are available in three fixed sizes: One vCPU/3.5 GB RAM;
Request Units (RUs) 10,000 RUs Contact support Maximum You need a minimum of
available is 1,000,000. 400 RUs or 40 RUs/GB,
whichever is larger.
Maximum nodes per cluster with Virtual Machine Scale Sets 1000 (across all node pools)
and Standard Load Balancer SKU
Maximum pods per node: Basic networking with Kubenet Maximum: 250
Azure CLI default: 110
Azure Resource Manager template default: 110
Azure portal deployment default: 30
Maximum pods per node: Advanced networking with Azure Maximum: 250
Container Networking Interface Default: 30
Open Service Mesh (OSM) AKS addon Kubernetes Cluster Version: 1.19+
OSM controllers per cluster: 1
Pods per OSM controller: 500
Kubernetes service accounts managed by OSM: 50
K UB ERN ET ES C O N T RO L P L A N E T IER L IM IT
The following table shows the cumulative data size limit for Azure Maps accounts in an Azure subscription. The
Azure Maps Data service is available only at the S1 pricing tier.
RESO URC E L IM IT
Metric alerts (classic) 100 active alert rules per subscription. Call support
Activity log alerts 100 active alert rules per subscription Same as default
(cannot be increased).
Alert processing rules 1000 active rules per subscription. Call support
Alert rules and alert processing rules Log search alerts 4096 characters Same as default
description length All other 2048 characters
Alerts API
Azure Monitor Alerts have several throttling limits to protect against users making an excessive number of calls.
Such behavior can potentially overload the system backend resources and jeopardize service responsiveness.
The following limits are designed to protect customers from interruptions and ensure consistent service level.
The user throttling and limits are designed to impact only extreme usage scenario and should not be relevant
for typical usage.
Alerts - Get Summary 50 calls per minute per subscription Same as default
Alerts - Get All (not "Get By Id") 100 calls per minute per subscription Same as default
All other alerts calls 1000 calls per minute per subscription Same as default
Action groups
You may have an unlimited number of action groups in a subscription.
Azure app push 10 Azure app actions per action group. Same as Default
Email ARM role 10 Email ARM role actions per action Same as Default
group.
Autoscale
RESO URC E DEFA ULT L IM IT M A XIM UM L IM IT
Query language Azure Monitor uses the same Kusto query language as
Azure Data Explorer. See Azure Monitor log query language
differences for KQL language elements not supported in
Azure Monitor.
Azure regions Log queries can experience excessive overhead when data
spans Log Analytics workspaces in multiple Azure regions.
See Query limits for details.
Cross resource queries Maximum number of Application Insights resources and Log
Analytics workspaces in a single query limited to 100.
Cross-resource query is not supported in View Designer.
Cross-resource query in log alerts is supported in the new
scheduledQueryRules API.
See Cross-resource query limits for details.
Time in concurrency queue 3 minutes If a query sits in the queue for more
than 3 minutes without being started,
it will be terminated with an HTTP
error response with code 429.
Total queries in concurrency queue 200 Once the number of queries in the
queue reach 200, the next query will
be rejected with an HTTP error code
429. This number is in addition to the
five queries that can be running
simultaneously.
Query rate 200 queries per 30 seconds Overall rate of queries that can be
submitted by a single user to all
workspaces. This limit applies to
programmatic queries or queries
initiated by visualization parts such as
Azure dashboards and the Log
Analytics workspace summary page.
Current Per GB pricing tier No limit 30 - 730 days Data retention beyond 31
(introduced April 2018) days is available for
additional charges. Learn
more about Azure Monitor
pricing.
Legacy Per Node (OMS) No limit 30 to 730 days Data retention beyond 31
(introduced April 2016) days is available for
additional charges. Learn
more about Azure Monitor
pricing.
Maximum records returned by a log 30,000 Reduce results using query scope, time
query range, and filters in the query.
C AT EGO RY L IM IT C O M M EN T S
Maximum size for a single post 30 MB Split larger volumes into multiple
posts.
Maximum size for field values 32 KB Fields longer than 32 KB are truncated.
Quer y API
C AT EGO RY L IM IT C O M M EN T S
Maximum request rate 200 requests per 30 seconds per See Log queries and language.
Azure AD user or client IP address
C AT EGO RY L IM IT C O M M EN T S
Max size of data ~16.7 MB (~16 MiB) The connector infrastructure dictates
that limit is set lower than query API
limit
C AT EGO RY L IM IT C O M M EN T S
NOTE
Depending on how long you've been using Log Analytics, you might have access to legacy pricing tiers. Learn more about
Log Analytics legacy pricing tiers.
Application Insights
There are some limits on the number of metrics and events per application, that is, per instrumentation key.
Limits depend on the pricing plan that you choose.
Total data per day 100 GB You can reduce data by setting a cap. If
you need more data, you can increase
the limit in the portal, up to 1,000 GB.
For capacities greater than 1,000 GB,
send email to
[email protected].
Availability multi-step test detailed 90 days This resource provides detailed results
results retention of each step.
For more information, see About pricing and quotas in Application Insights.
Concurrent Data Integration Units1 Region group 12 : 6,000 Region group 12 : 6,000
consumption per subscription per Region group 22 : 3,000 Region group 22 : 3,000
Azure Integration Runtime region Region group 32 : 1,500 Region group 32 : 1,500
Managed virtual network2 : 2,400 Managed virtual network: Contact
support.
ForEach parallelism 20 50
1 The data integration unit (DIU) is used in a cloud-to-cloud copy operation, learn more from Data integration
units (version 2). For information on billing, see Azure Data Factory pricing.
2 Azure Integration Runtime is globally available to ensure data compliance, efficiency, and reduced network
egress costs.
Region group 1 Central US, East US, East US 2, North Europe, West Europe,
West US, West US 2
If managed virtual network is enabled, the data integration unit (DIU) in all region groups are 2,400.
3 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
4 The payload for each activity run includes the activity configuration, the associated dataset(s) and linked
service(s) configurations if any, and a small portion of system properties generated per activity type. Limit for
this payload size doesn't relate to the amount of data you can move and process with Azure Data Factory. Learn
about the symptoms and recommendation if you hit this limit.
Version 1
RESO URC E DEFA ULT L IM IT M A XIM UM L IM IT
Retry count for pipeline activity runs 1,000 MaxInt (32 bit)
1 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
2 On-demand HDInsight cores are allocated out of the subscription that contains the data factory. As a result, the
previous limit is the Data Factory-enforced core limit for on-demand HDInsight cores. It's different from the core
limit that's associated with your Azure subscription.
3 The cloud data movement unit (DMU) for version 1 is used in a cloud-to-cloud copy operation, learn more
from Cloud data movement units (version 1). For information on billing, see Azure Data Factory pricing.
W H ERE W H AT M A XIM UM C O UN T
Policy rules have additional limits to the number of conditions and their complexity. See Policy rule limits for
more details.
RESO URC E L IM IT
Solver hours 1,000 hours per month up to 50,000 hours per month
RESO URC E L IM IT
1If you require over 500 Application groups then please raise a support ticket via the Azure portal.
All other Azure resources used in Azure Virtual Desktop such as Virtual Machines, Storage, Networking etc. are
all subject to their own resource limitations documented in the relevant sections of this article.
To get started with Azure Virtual Desktop, use the getting started guide. For deeper architectural content for
Azure Virtual Desktop, use the Azure Virtual Desktop section of the Cloud Adoption Framework. For pricing
information for Azure Virtual Desktop, add "Azure Virtual Desktop" within the Compute section of the Azure
Pricing Calculator.
RESO URC E L IM IT
vSAN capacity limits 75% of total usable (keep 25% available for SLA)
For other VMware-specific limits, use the VMware configuration maximum tool!.
Backup limits
For a summary of Azure Backup support settings and limitations, see Azure Backup Support Matrices.
Batch limits
RESO URC E DEFA ULT L IM IT M A XIM UM L IM IT
NOTE
Default limits vary depending on the type of subscription you use to create a Batch account. Cores quotas shown are for
Batch accounts in Batch service mode. View the quotas in your Batch account.
IMPORTANT
To help us better manage capacity during the global health pandemic, the default core quotas for new Batch accounts in
some regions and for some types of subscription have been reduced from the above range of values, in some cases to
zero cores. When you create a new Batch account, check your core quota and request a core quota increase, if required.
Alternatively, consider reusing Batch accounts that already have sufficient quota.
1Extra small instances count as one vCPU toward the vCPU limit despite using a partial CPU core.
2The storage account limit includes both Standard and Premium storage accounts.
Standard sku cores (CPUs) for K80 GPU per region per 181,2
subscription
Standard sku cores (CPUs) for P100 or V100 GPU per region 01,2
per subscription
Ports per IP 5
1To request a limit increase, create an Azure Support request. Free subscriptions including Azure Free Account
and Azure for Students aren't eligible for limit or quota increases. If you have a free subscription, you can
upgrade to a Pay-As-You-Go subscription.
2Default limit for Pay-As-You-Go subscription. Limit may differ for other category types.
Webhooks 2 10 500
1 Storage included in the daily rate for each tier. Additional storage may be used, up to the registry storage limit,
at an additional daily rate per GiB. For rate information, see Azure Container Registry pricing. If you need
storage beyond the registry storage limit, please contact Azure Support.
2ReadOps, WriteOps, and Bandwidth are minimum estimates. Azure Container Registry strives to improve
performance as usage requires.
3A docker pull translates to multiple read operations based on the number of layers in the image, plus the
manifest retrieval.
4A docker push translates to multiple write operations, based on the number of layers that must be pushed. A
docker push includes ReadOps to retrieve a manifest for an existing image.
Content Delivery Network limits
RESO URC E L IM IT
A Content Delivery Network subscription can contain one or more Content Delivery Network profiles. A Content
Delivery Network profile can contain one or more Content Delivery Network endpoints. You might want to use
multiple profiles to organize your Content Delivery Network endpoints by internet domain, web application, or
some other criteria.
RESO URC E L IM IT C O M M EN T S
Concurrent Data Integration Units1 Region group 12 : 6,000 Region group 12 : 6,000
consumption per subscription per Region group 22 : 3,000 Region group 22 : 3,000
Azure Integration Runtime region Region group 32 : 1,500 Region group 32 : 1,500
Managed virtual network2 : 2,400 Managed virtual network: Contact
support.
ForEach parallelism 20 50
1 The data integration unit (DIU) is used in a cloud-to-cloud copy operation, learn more from Data integration
units (version 2). For information on billing, see Azure Data Factory pricing.
2
2 Azure Integration Runtime is globally available to ensure data compliance, efficiency, and reduced network
egress costs.
Region group 1 Central US, East US, East US 2, North Europe, West Europe,
West US, West US 2
If managed virtual network is enabled, the data integration unit (DIU) in all region groups are 2,400.
3 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
4 The payload for each activity run includes the activity configuration, the associated dataset(s) and linked
service(s) configurations if any, and a small portion of system properties generated per activity type. Limit for
this payload size doesn't relate to the amount of data you can move and process with Azure Data Factory. Learn
about the symptoms and recommendation if you hit this limit.
Version 1
RESO URC E DEFA ULT L IM IT M A XIM UM L IM IT
Retry count for pipeline activity runs 1,000 MaxInt (32 bit)
1 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Data Factory. Data Factory is
designed to scale to handle petabytes of data.
2 On-demand HDInsight cores are allocated out of the subscription that contains the data factory. As a result, the
previous limit is the Data Factory-enforced core limit for on-demand HDInsight cores. It's different from the core
limit that's associated with your Azure subscription.
3
3 The cloud data movement unit (DMU) for version 1 is used in a cloud-to-cloud copy operation, learn more
from Cloud data movement units (version 1). For information on billing, see Azure Data Factory pricing.
RESO URC E L IM IT C O M M EN T S
Maximum number of access ACLs, per 32 This is a hard limit. Use groups to
file or folder manage access with fewer entries.
Maximum number of default ACLs, per 32 This is a hard limit. Use groups to
file or folder manage access with fewer entries.
RESO URC E L IM IT
RESO URC E L IM IT C O M M EN T S
This table provides the limits for the Device Update for IoT Hub resource in Azure Resource Manager:
This table provides the various limits associated with the operations within Device Update for IoT Hub:
Number of update 25 25 No
providers per instance
Functional limits
The following table lists the functional limits of Azure Digital Twins.
TIP
For modeling recommendations to operate within these functional limits, see Modeling best practices.
Other limits
Limits on data types and fields within DTDL documents for Azure Digital Twins models can be found within its
spec documentation in GitHub: Digital Twins Definition Language (DTDL) - version 2.
Query latency details are described in Query language. Limitations of particular query language features can be
found in the query reference documentation.
NOTE
These limits are per region.
RESO URC E L IM IT
Publish rate for a custom or a partner topic (ingress) 5,000 events/sec or 5 MB/sec (whichever is met first)
Event size 1 MB
RESO URC E L IM IT
Publish rate for an event domain (ingress) 5,000 events/sec or 5 MB/sec (whichever is met first)
L IM IT N OT ES VA L UE
Size of a consumer group name Kafka protocol doesn't require the Kafka: 256 characters
creation of a consumer group.
AMQP: 50 characters
NOTE
In the table, CU is capacity unit, PU is processing unit, and TU is throughput unit.
You can configure TUs for a basic or standard tier namespace or PUs for a premium tier namespace.
When you create a dedicated cluster, 1 CU is assigned to the cluster. To have more CUs for the cluster, submit a ticket.
Number of partitions 32 32 100 per event hub, 1024 per event hub
per event hub but there is a limit of 2000 per CU
200 per PU at the
namespace level.
For example, if a
namespace is
assigned 2 PUs, the
limit for total number
of partitions in all
event hubs in the
namespace is 2 * 200
= 400.
Throughput per unit Ingress - 1 MB/s or Ingress - 1 MB/s or No limits per PU * No limits per CU *
1000 events per 1000 events per
second second
Egress – 2 MB/s or Egress – 2 MB/s or
4096 events per 4096 events per
second second
* Depends on various factors such as resource allocation, number of partitions, storage, and so on.
NOTE
You can publish events individually or batched. The publication limit (according to SKU) applies regardless of whether it is
a single event or a batch. Publishing events larger than the maximum threshold will be rejected.
NOTE
If you anticipate using more than 200 units with an S1 or S2 tier hub or 10 units with an S3 tier hub, contact Microsoft
Support.
The following table lists the limits that apply to IoT Hub resources.
RESO URC E L IM IT
Maximum size of device-to-cloud batch AMQP and HTTP: 256 KB for the entire batch
MQTT: 256 KB for each message
Maximum size of device twin 8 KB for tags section, and 32 KB for desired and reported
properties sections each
Maximum additional endpoints (beyond built-in endpoints) 10 (for S1, S2, and S3)
Maximum message routing rules 100 (for S1, S2, and S3)
Maximum number of concurrently connected device streams 50 (for S1, S2, S3, and F1 only)
Maximum device stream data transfer 300 MB per day (for S1, S2, S3, and F1 only)
NOTE
If you need more than 50 paid IoT hubs in an Azure subscription, contact Microsoft Support.
NOTE
Currently, the total number of devices plus modules that can be registered to a single IoT hub is capped at 1,000,000. If
you want to increase this limit, contact Microsoft Support.
IoT Hub throttles requests when the following quotas are exceeded.
T H ROT T L E P ER- H UB VA L UE
Device connections 6,000/sec/unit (for S3), 120/sec/unit (for S2), 12/sec/unit (for
S1).
Minimum of 100/sec.
Device-to-cloud sends 6,000/sec/unit (for S3), 120/sec/unit (for S2), 12/sec/unit (for
S1).
Minimum of 100/sec.
T H ROT T L E P ER- H UB VA L UE
Direct methods 24 MB/sec/unit (for S3), 480 KB/sec/unit (for S2), 160
KB/sec/unit (for S1).
Based on 8-KB throttling meter size.
Device twin updates 250/sec/unit (for S3), Maximum of 50/sec or 5/sec/unit (for
S2), 50/sec (for S1)
Jobs per-device operation throughput 50/sec/unit (for S3), maximum of 10/sec or 1/sec/unit (for
S2), 10/sec (for S1).
Device stream initiation rate 5 new streams/sec (for S1, S2, S3, and F1 only).
The following table lists the limits that apply to Azure IoT Hub Device Provisioning Service resources.
TIP
If the hard limit on symmetric key enrollment groups is a blocking issue, it is recommended to use individual enrollments
as a workaround.
NOTE
For Azure US Government cloud and Azure China, the limits are half from what is documented below.
Key transactions (maximum transactions allowed in 10 seconds, per vault per region 1):
H SM K EY SO F T WA RE K EY
H SM K EY A L L OT H ER SO F T WA RE K EY A L L OT H ER
K EY T Y P E C REAT E K EY T RA N SA C T IO N S C REAT E K EY T RA N SA C T IO N S
NOTE
In the previous table, we see that for RSA 2,048-bit software keys, 4,000 GET transactions per 10 seconds are allowed. For
RSA 2,048-bit HSM-keys, 2,000 GET transactions per 10 seconds are allowed.
The throttling thresholds are weighted, and enforcement is on their sum. For example, as shown in the previous table,
when you perform GET operations on RSA HSM-keys, it's eight times more expensive to use 4,096-bit keys compared to
2,048-bit keys. That's because 2,000/250 = 8.
In a given 10-second interval, an Azure Key Vault client can do only one of the following operations before it encounters a
429 throttling HTTP status code:
For information on how to handle throttling when these limits are exceeded, see Azure Key Vault throttling
guidance.
1 A subscription-wide limit forall transaction types is five times per key vault limit. For example, HSM-other
transactions per subscription are limited to 10,000 transactions in 10 seconds per subscription.
Backup keys, secrets, certificates
When you back up a key vault object, such as a secret, key, or certificate, the backup operation will download the
object as an encrypted blob. This blob cannot be decrypted outside of Azure. To get usable data from this blob,
you must restore the blob into a key vault within the same Azure subscription and Azure geography
NOTE
The number of key vaults with private endpoints enabled per subscription is an adjustable limit. The limit shown below is
the default limit. If you would like to request a limit increase for your service, please create a support request and it will be
assessed on a case by case basis.
RESO URC E L IM IT
IT EM L IM IT S
Transaction limits for administrative operations (number of operations per second per HSM instance)
Transaction limits for cryptographic operations (number of operations per second per HSM instance)
Each Managed HSM instance constitutes three load balanced HSM partitions. The throughput limits are a
function of underlying hardware capacity allocated for each partition. The tables below show maximum
throughput with at least one partition available. Actual throughput may be up to 3x higher if all three
partitions are available.
Throughput limits noted assume that one single key is being used to achieve maximum throughput. For
example, if a single RSA-2048 key is used the maximum throughput will be 1100 sign operations. If you use
1100 different keys with one transaction per second each, they will not be able to achieve the same
throughput.
R SA k e y o p e r a t i o n s (n u m b e r o f o p e r a t i o n s p e r se c o n d p e r H SM i n st a n c e )
Create Key 1 1 1
Purge Key 10 10 10
Backup Key 10 10 10
Restore Key 10 10 10
E C k e y o p e r a t i o n s (n u m b e r o f o p e r a t i o n s p e r se c o n d p e r H SM i n st a n c e )
This table describes number of operations per second for each curve type.
Create Key 1 1 1 1
Purge Key 10 10 10 10
Backup Key 10 10 10 10
Restore Key 10 10 10 10
A E S k e y o p e r a t i o n s (n u m b e r o f o p e r a t i o n s p e r se c o n d p e r H SM i n st a n c e )
Create Key 1 1 1
Purge Key 10 10 10
Backup Key 10 10 10
Restore Key 10 10 10
Account limits
RESO URC E DEFA ULT L IM IT
Asset limits
RESO URC E DEFA ULT L IM IT
File size In some scenarios, there is a limit on the maximum file size
supported for processing in Media Services. (1)
1 The maximum size supported for a single blob is currently up to 5 TB in Azure Blob Storage. Additional limits
apply in Media Services based on the VM sizes that are used by the service. The size limit applies to the files that
you upload and also the files that get generated as a result of Media Services processing (encoding or
analyzing). If your source file is larger than 260-GB, your Job will likely fail.
2 The storage accounts must be from the same Azure subscription.
Jobs (encoding & analyzing) limits
RESO URC E DEFA ULT L IM IT
3
3 This number includes queued, finished, active, and canceled Jobs. It does not include deleted Jobs.
Any Job record in your account older than 90 days will be automatically deleted, even if the total number of
records is below the maximum quota.
Live streaming limits
RESO URC E DEFA ULT L IM IT
4 For detailed information about Live Event limitations, see Live Event types comparison and limitations.
5 Live Outputs start on creation and stop when deleted.
6 When using a custom Streaming Policy, you should design a limited set of such policies for your Media Service
account, and re-use them for your StreamingLocators whenever the same encryption options and protocols are
needed. You should not be creating a new Streaming Policy for each Streaming Locator.
7 Streaming Locators are not designed for managing per-user access control. To give different access rights to
individual users, use Digital Rights Management (DRM) solutions.
Protection limits
RESO URC E DEFA ULT L IM IT
Licenses per month for each of the DRM types on Media 1,000,000
Services key delivery service per account
Support ticket
For resources that are not fixed, you may ask for the quotas to be raised, by opening a support ticket. Include
detailed information in the request on the desired quota changes, use-case scenarios, and regions required.
Do not create additional Azure Media Services accounts in an attempt to obtain higher limits.
Media Services v2 (legacy)
For limits specific to Media Services v2 (legacy), see Media Services v2 (legacy)
Mobile Services limits
T IER F REE B A SIC STA N DA RD
API calls 500,000 1.5 million per unit 15 million per unit
Push notifications Azure Notification Hubs Notification Hubs Basic tier Notification Hubs Standard
Free tier included, up to 1 included, up to 10 million tier included, up to 10
million pushes pushes million pushes
For more information on limits and pricing, see Azure Mobile Services pricing.
Networking limits
Networking limits - Azure Resource Manager
The following limits apply only for networking resources managed through Azure Resource Manager per
region per subscription. Learn how to view your current resource usage against your subscription limits.
NOTE
We recently increased all default limits to their maximum limits. If there's no maximum limit column, the resource doesn't
have adjustable limits. If you had these limits increased by support in the past and don't see updated limits in the
following tables, open an online customer support request at no charge
RESO URC E L IM IT
RESO URC E L IM IT
RESO URC E L IM IT
Concurrent TCP or UDP flows per NIC 500,000, up to 1,000,000 for two or 500,000, up to 1,000,000 for two or
of a virtual machine or role instance more NICs. more NICs.
ExpressRoute limits
RESO URC E L IM IT
Maximum number of ExpressRoute circuits linked to the 16 (For more information, see Gateway SKU.)
same virtual network in different peering locations
Number of virtual network links allowed per ExpressRoute See the Number of virtual networks per ExpressRoute circuit
circuit table.
N UM B ER O F VIRT UA L N ET W O RK L IN K S N UM B ER O F VIRT UA L N ET W O RK L IN K S
C IRC UIT SIZ E F O R STA N DA RD W IT H P REM IUM A DD- O N
50 Mbps 10 20
100 Mbps 10 25
200 Mbps 10 25
500 Mbps 10 40
1 Gbps 10 50
2 Gbps 10 60
5 Gbps 10 75
10 Gbps 10 100
40 Gbps* 10 100
NOTE
Global Reach connections count against the limit of virtual network connections per ExpressRoute Circuit. For example, a
10 Gbps Premium Circuit would allow for 5 Global Reach connections and 95 connections to the ExpressRoute Gateways
or 95 Global Reach connections and 5 connections to the ExpressRoute Gateways or any other combination up to the
limit of 100 connections for the circuit.
Local Network Gateway address prefixes 1000 per local network gateway
Throughput per Virtual WAN VPN connection (2 tunnels) 2 Gbps with 1 Gbps/IPsec tunnel
Aggregate throughput per Virtual WAN User VPN (Point-to- 200 Gbps
site) gateway
VNet connections per hub 500 minus total number of hubs in Virtual WAN
Aggregate throughput per Virtual WAN Hub Router 50 Gbps for VNet to VNet transit
VM workload across all VNets connected to a single Virtual 2000 (If you want to raise the limit or quota above the
WAN hub default limit, open an online customer support request.)
RESO URC E L IM IT N OT E
WAF body size limit (without files) V1 or V2 (with CRS 3.1 and older) -
128KB
V2 (with CRS 3.2 or newer) - 2MB3
1
1 In case of WAF-enabled SKUs, you must limit the number of resources to 40.
2 Limit is per Application Gateway instance not per Application Gateway resource.
3 Must define the value via WAF Policy for Application Gateway
Network Watcher limits
RESO URC E L IM IT N OT E
Packet capture sessions 10,000 per region Number of sessions only, not saved
captures.
RESO URC E L IM IT
Number of IP Configurations on a private link service 8 (This number is for the NAT IP addresses used per PLS)
Light 100
Medium 50
Heavy 5
RESO URC E L IM IT
RESO URC E L IM IT
Virtual Networks Links per private DNS zones with auto- 100
registration enabled
1These limits are applied to every individual virtual machine and not at the virtual network level. DNS queries
exceeding these limits are dropped.
Azure Firewall limits
RESO URC E L IM IT
Maximum DNAT rules 298 (for firewalls configured with a single Public IP address)
Public IP addresses 250 maximum. All public IP addresses can be used in DNAT
rules and they all contribute to available SNAT ports.
FQDNs in network rules For good performance, do not exceed more than 1000
FQDNs across all network rules per firewall.
Timeout values
Cl i en t t o Fr o n t Do o r
If the response is a chunked response, a 200 is returned if or when the first chunk is received.
After the HTTP request is forwarded to the back end, Front Door waits for 30 seconds for the first packet
from the back end. Then it returns a 503 error to the client. This value is configurable via the field
sendRecvTimeoutSeconds in the API.
If a request is cached and it takes more than 30 seconds for the first packet from Front Door or from
the backend, then a 504 error is returned to the client.
After the first packet is received from the back end, Front Door waits for 30 seconds in an idle timeout. Then
it returns a 503 error to the client. This timeout value is not configurable.
Front Door to the back-end TCP session timeout is 90 seconds.
Upload and download data limit
W IT H C H UN K ED T RA N SF ER
EN C O DIN G ( C T E) W IT H O UT H T T P C H UN K IN G
Download There's no limit on the download size. There's no limit on the download size.
Upload There's no limit as long as each CTE The size can't be larger than 2 GB.
upload is less than 2 GB.
Other limits
Maximum URL size - 8,192 bytes - Specifies maximum length of the raw URL (scheme + hostname + port +
path + query string of the URL)
Maximum Query String size - 4,096 bytes - Specifies the maximum length of the query string, in bytes.
Maximum HTTP response header size from health probe URL - 4,096 bytes - Specified the maximum length
of all the response headers of health probes.
Maximum rules engine action header value character: 640 characters.
Maximum rules engine condition header value character: 256 characters.
Maximum ETag header size: 128 bytes
For more information about limits that apply to Rules Engine configurations, see Rules Engine terminology
For more information on limits and pricing, see Notification Hubs pricing.
Q UOTA N A M E SC O P E VA L UE N OT ES
Number of topics or queues Namespace 10,000 for the Basic or Subsequent requests for
per namespace Standard tier. The total creation of a new topic or
number of topics and queue on the namespace
queues in a namespace are rejected. As a result, if
must be less than or equal configured through the
to 10,000. Azure portal, an error
message is generated. If
For the Premium tier, 1,000 called from the
per messaging unit (MU). management API, an
exception is received by the
calling code.
Number of partitioned Namespace Basic and Standard tiers: Subsequent requests for
topics or queues per 100. creation of a new
namespace partitioned topic or queue
Partitioned entities aren't in the namespace are
supported in the Premium rejected. As a result, if
tier. configured through the
Azure portal, an error
Each partitioned queue or message is generated. If
topic counts toward the called from the
quota of 1,000 entities per management API, the
namespace. exception
QuotaExceededExceptio
n is received by the calling
code.
If you want to have
more partitioned
entities in a basic or a
standard tier
namespace, create
additional namespaces.
Message size for a queue, Entity Incoming messages that 256 KB for Standard tier
topic, or subscription entity exceed these quotas are 100 MB for Premium tier.
rejected, and an exception is
received by the calling code. The message size includes
the size of properties
(system and user) and the
size of payload. The size of
system properties varies
depending on your
scenario.
Q UOTA N A M E SC O P E VA L UE N OT ES
Number of subscriptions Entity Subsequent requests for 2,000 per-topic for the
per topic creating additional Standard tier and Premium
subscriptions for the topic tier.
are rejected. As a result, if
configured through the
portal, an error message is
shown. If called from the
management API, an
exception is received by the
calling code.
Size of SQL filters or actions Namespace Subsequent requests for Maximum length of filter
creation of additional filters condition string: 1,024 (1
are rejected, and an K).
exception is received by the
calling code. Maximum length of rule
action string: 1,024 (1 K).
Maximum number of
expressions per rule action:
32.
Q UOTA N A M E SC O P E VA L UE N OT ES
Number of shared access Entity, namespace Subsequent requests for Maximum number of rules
authorization rules per creation of additional rules per entity type: 12.
namespace, queue, or topic are rejected, and an
exception is received by the Rules that are configured
calling code. on a Service Bus namespace
apply to all types: queues,
topics.
L IM IT IDEN T IF IER L IM IT
Concurrent Data Integration Units1 Region group 12 : 6,000 Region group 12 : 6,000
consumption per workspace per Azure Region group 22 : 3,000 Region group 22 : 3,000
Integration Runtime region Region group 32 : 1,500 Region group 32 : 1,500
Managed virtual network2 : 2,400 Managed virtual network: Contact
support.
ForEach parallelism 20 50
1 The data integration unit (DIU) is used in a cloud-to-cloud copy operation, learn more from Data integration
units (version 2). For information on billing, see Azure Synapse Analytics Pricing.
2 Azure Integration Runtime is globally available to ensure data compliance, efficiency, and reduced network
egress costs.
| Region group | Regions | | -------- | ------ | | Region group 1 | Central US, East US, East US 2, North Europe, West
Europe, West US, West US 2 | | Region group 2 | Australia East, Australia Southeast, Brazil South, Central India,
Japan East, North Central US, South Central US, Southeast Asia, West Central US | | Region group 3 | Other
regions | If managed virtual network is enabled, the data integration unit (DIU) in all region groups are 2,400.
3 Pipeline, data set, and linked service objects represent a logical grouping of your
workload. Limits for these
objects don't relate to the amount of data you can move and process with Azure Synapse Analytics. Synapse
Analytics is designed to scale to handle petabytes of data.
4 The payload for each activity run includes the activity configuration, the associated dataset(s) and linked
service(s) configurations if any, and a small portion of system properties generated per activity type. Limit for
this payload size doesn't relate to the amount of data you can move and process with Azure Synapse Analytics.
Learn about the symptoms and recommendation if you hit this limit.
Dedicated SQL pool limits
For details of capacity limits for dedicated SQL pools in Azure Synapse Analytics, see dedicated SQL pool
resource limits.
Web service call limits
Azure Resource Manager has limits for API calls. You can make API calls at a rate within the Azure Resource
Manager API limits.
Storage limits
The following table describes default limits for Azure general-purpose v2 (GPv2), general-purpose v1 (GPv1),
and Blob storage accounts. The ingress limit refers to all data that is sent to a storage account. The egress limit
refers to all data that is received from a storage account.
Microsoft recommends that you use a GPv2 storage account for most scenarios. You can easily upgrade a GPv1
or a Blob storage account to a GPv2 account with no downtime and without the need to copy data. For more
information, see Upgrade to a GPv2 storage account.
NOTE
You can request higher capacity and ingress limits. To request an increase, contact Azure Support.
RESO URC E L IM IT
Default maximum request rate per storage account 20,000 requests per second1
Maximum egress for general-purpose v1 storage accounts 20 Gbps if RA-GRS/GRS is enabled, 30 Gbps for LRS/ZRS2
(US regions)
Maximum egress for general-purpose v1 storage accounts 10 Gbps if RA-GRS/GRS is enabled, 15 Gbps for LRS/ZRS2
(non-US regions)
1 Azure Storage standard accounts support higher capacity limits and higher limits for ingress and egress by
request. To request an increase in account limits, contact Azure Support.
2 If yourstorage account has read-access enabled with geo-redundant storage (RA-GRS) or geo-zone-redundant
storage (RA-GZRS), then the egress targets for the secondary location are identical to the egress targets of the
primary location. For more information, see Azure Storage replication.
For more information on limits for standard storage accounts, see Scalability targets for standard storage
accounts.
Storage resource provider limits
The following limits apply only when you perform management operations by using Azure Resource Manager
with Azure Storage.
RESO URC E L IM IT
Storage account management operations (write) 10 per second / 1200 per hour
Maximum size of single blob container Same as maximum storage account capacity
Maximum size of a block blob 50,000 X 4000 MiB (approximately 190.7 TiB)
Target request rate for a single blob Up to 500 requests per second
Target throughput for a single block blob Up to storage account ingress/egress limits1
1 Throughput for a single blob depends on several factors, including, but not limited to: concurrency, request
size, performance tier, speed of source for uploads, and destination for downloads. To take advantage of the
performance enhancements of high-throughput block blobs, upload larger blobs or blocks. Specifically, call the
Put Blob or Put Block operation with a blob or block size that is greater than 4 MiB for standard storage
accounts. For premium block blob or for Data Lake Storage Gen2 storage accounts, use a block or blob size that
is greater than 256 KiB.
2 Page blobs are not yet supported in accounts that have the Hierarchical namespace setting on them.
The following table describes the maximum block and blob sizes permitted by service version.
M A XIM UM B LO B SIZ E VIA
M A XIM UM B LO C K SIZ E ( VIA M A XIM UM B LO B SIZ E ( VIA SIN GL E W RIT E O P ERAT IO N
SERVIC E VERSIO N P UT B LO C K ) P UT B LO C K L IST ) ( VIA P UT B LO B )
Version 2019-12-12 and 4000 MiB Approximately 190.7 TiB 5000 MiB (preview)
later (4000 MiB X 50,000 blocks)
Maximum request rate per storage account 20,000 messages per second, which assumes a 1-KiB
message size
Target throughput for a single queue (1-KiB messages) Up to 2,000 messages per second
Number of tables in an Azure storage account Limited only by the capacity of the storage account
Number of partitions in a table Limited only by the capacity of the storage account
Number of entities in a partition Limited only by the capacity of the storage account
Maximum number of properties in a table entity 255 (including the three system properties, Par titionKey ,
RowKey , and Timestamp )
Maximum total size of an individual property in an entity Varies by property type. For more information, see
Proper ty Types in Understanding the Table Service Data
Model.
Size of an entity group transaction A transaction can include at most 100 entities and the
payload must be less than 4 MiB in size. An entity group
transaction can include an update to an entity only once.
Maximum request rate per storage account 20,000 transactions per second, which assumes a 1-KiB
entity size
Target throughput for a single table partition (1 KiB-entities) Up to 2,000 entities per second
IMPORTANT
For optimal performance, limit the number of highly utilized disks attached to the virtual machine to avoid possible
throttling. If all attached disks aren't highly utilized at the same time, the virtual machine can support a larger number of
disks.
RESO URC E L IM IT
1 The total numberof full disk snapshots an individual disk may have is 200. An individual disk may also have
200 incremental snapshots, which are counted separately from full disk snapshots.
For standard storage accounts: A Standard storage account has a maximum total request rate of 20,000
IOPS. The total IOPS across all of your virtual machine disks in a Standard storage account should not exceed
this limit.
You can roughly calculate the number of highly utilized disks supported by a single standard storage account
based on the request rate limit. For example, for a Basic tier VM, the maximum number of highly utilized disks is
about 66, which is 20,000/300 IOPS per disk. The maximum number of highly utilized disks for a Standard tier
VM is about 40, which is 20,000/500 IOPS per disk.
For premium storage accounts: A premium storage account has a maximum total throughput rate of 50
Gbps. The total throughput across all of your VM disks should not exceed this limit.
For more information, see Virtual machine sizes.
Disk encryption sets
There's a limitation of 1000 disk encryption sets per region, per subscription. For more information, see the
encryption documentation for Linux or Windows virtual machines. If you need to increase the quota, contact
Azure support.
Managed virtual machine disks
Standard HDD managed disks
STA N
DA RD
DISK
TYPE S4 S6 S10 S15 S20 S30 S40 S50 S60 S70 S80
Disk 32 64 128 256 512 1,024 2,048 4,096 8,192 16,38 32,76
size in 4 7
GiB
IOPS Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to
per 500 500 500 500 500 500 500 500 1,300 2,000 2,000
disk
Throu Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to Up to
ghput 60 60 60 60 60 60 60 60 300 500 500
per MB/s MB/s MB/s MB/se MB/se MB/se MB/se MB/se MB/se MB/se MB/se
disk ec ec ec c c c c c c c c
Dis 4 8 16 32 64 128 256 512 1,0 2,0 4,0 8,1 16, 32,
k 24 48 96 92 384 767
size
in
GiB
IOP Up Up Up Up Up Up Up Up Up Up Up Up Up Up
S to to to to to to to to to to to to to to
per 500 500 500 500 500 500 500 500 500 500 500 2,0 4,0 6,0
disk 00 00 00
STA
ND
AR
D
SSD
SIZ
ES E1 E2 E3 E4 E6 E10 E15 E20 E30 E40 E50 E60 E70 E80
Thr Up Up Up Up Up Up Up Up Up Up Up Up Up Up
oug to to to to to to to to to to to to to to
hpu 60 60 60 60 60 60 60 60 60 60 60 400 600 750
t MB MB MB MB MB MB MB MB MB MB/ MB/ MB/ MB/ MB/
per /sec /sec /sec /sec /sec /sec /sec /sec /sec sec sec sec sec sec
disk
Ma 30 30 30 30 30 30 30 30 30
x min min min min min min min min min
bur
st
dur
atio
n
Dis 4 8 16 32 64 128 256 512 1,0 2,0 4,0 8,1 16, 32,
k 24 48 96 92 384 767
size
in
GiB
P RE
M IU
M
SSD
SIZ
ES P1 P2 P3 P4 P6 P 10 P 15 P 20 P 30 P 40 P 50 P 60 P 70 P 80
Pro 120 120 120 120 240 500 1,1 2,3 5,0 7,5 7,5 16, 18, 20,
visi 00 00 00 00 00 000 000 000
one
d
IOP
S
per
disk
Pro 25 25 25 25 50 100 125 150 200 250 250 500 750 900
visi MB MB MB MB MB MB MB MB MB MB/ MB/ MB/ MB/ MB/
one /sec /sec /sec /sec /sec /sec /sec /sec /sec sec sec sec sec sec
d
Thr
oug
hpu
t
per
disk
Ma 3,5 3,5 3,5 3,5 3,5 3,5 3,5 3,5 30, 30, 30, 30, 30, 30,
x 00 00 00 00 00 00 00 00 000 000 000 000 000 000
bur * * * * * *
st
IOP
S
per
disk
Ma 170 170 170 170 170 170 170 170 1,0 1,0 1,0 1,0 1,0 1,0
x MB MB MB MB MB MB MB MB 00 00 00 00 00 00
bur /sec /sec /sec /sec /sec /sec /sec /sec MB MB/ MB/ MB/ MB/ MB/
st /sec sec* sec* sec* sec* sec*
thr *
oug
hpu
t
per
disk
RESO URC E L IM IT
P REM IUM
STO RA GE DISK
TYPE P 10 P 20 P 30 P 40 P 50
Disk size 128 GiB 512 GiB 1,024 GiB (1 TB) 2,048 GiB (2 TB) 4,095 GiB (4 TB)
Maximum 100 MB/sec 150 MB/sec 200 MB/sec 250 MB/sec 250 MB/sec
throughput per
disk
Maximum 280 70 35 17 8
number of disks
per storage
account
Premium unmanaged vir tual machine disks: Per-VM limits
RESO URC E L IM IT
Maximum number of schedules per 168 A schedule for every hour, every day
bandwidth template of the week.
Maximum size of a tiered volume on 64 TB for StorSimple 8100 and StorSimple 8100 and StorSimple 8600
physical devices StorSimple 8600 are physical devices.
Maximum size of a tiered volume on 30 TB for StorSimple 8010 StorSimple 8010 and StorSimple 8020
virtual devices in Azure are virtual devices in Azure that use
64 TB for StorSimple 8020 Standard storage and Premium
storage, respectively.
Maximum size of a locally pinned 9 TB for StorSimple 8100 StorSimple 8100 and StorSimple 8600
volume on physical devices are physical devices.
24 TB for StorSimple 8600
Maximum number of snapshots of any 256 This amount includes local snapshots
type that can be retained per volume and cloud snapshots.
L IM IT IDEN T IF IER L IM IT C O M M EN T S
Restore and clone recover time for <2 minutes The volume is made available
tiered volumes within 2 minutes of a restore or
clone operation, regardless of
the volume size.
The volume performance might
initially be slower than normal
as most of the data and
metadata still resides in the
cloud. Performance might
increase as data flows from the
cloud to the StorSimple device.
The total time to download
metadata depends on the
allocated volume size.
Metadata is automatically
brought into the device in the
background at the rate of 5
minutes per TB of allocated
volume data. This rate might be
affected by Internet bandwidth
to the cloud.
The restore or clone operation
is complete when all the
metadata is on the device.
Backup operations can't be
performed until the restore or
clone operation is fully
complete.
L IM IT IDEN T IF IER L IM IT C O M M EN T S
Restore recover time for locally pinned <2 minutes The volume is made available
volumes within 2 minutes of the restore
operation, regardless of the
volume size.
The volume performance might
initially be slower than normal
as most of the data and
metadata still resides in the
cloud. Performance might
increase as data flows from the
cloud to the StorSimple device.
The total time to download
metadata depends on the
allocated volume size.
Metadata is automatically
brought into the device in the
background at the rate of 5
minutes per TB of allocated
volume data. This rate might be
affected by Internet bandwidth
to the cloud.
Unlike tiered volumes, if there
are locally pinned volumes, the
volume data is also
downloaded locally on the
device. The restore operation is
complete when all the volume
data has been brought to the
device.
The restore operations might
be long and the total time to
complete the restore will
depend on the size of the
provisioned local volume, your
Internet bandwidth, and the
existing data on the device.
Backup operations on the
locally pinned volume are
allowed while the restore
operation is in progress.
Maximum client read/write 920/720 MB/sec with a single 10- Up to two times with MPIO and two
throughput, when served from the gigabit Ethernet network interface network interfaces.
SSD tier*
*Maximum throughput per I/O type was measured with 100 percent read and 100 percent write scenarios.
Actual throughput might be lower and depends on I/O mix and network conditions.
Stream Analytics limits
L IM IT IDEN T IF IER L IM IT C O M M EN T S
Maximum number of inputs per job 60 There's a hard limit of 60 inputs per
Azure Stream Analytics job.
Maximum number of outputs per job 60 There's a hard limit of 60 outputs per
Stream Analytics job.
Maximum number of functions per job 60 There's a hard limit of 60 functions per
Stream Analytics job.
Maximum number of streaming units 192 There's a hard limit of 192 streaming
per job units per Stream Analytics job.
Maximum number of jobs per region 1,500 Each subscription can have up to
1,500 jobs per geographical region.
1 Virtual machines created by using the classic deployment model instead of Azure Resource Manager are
automatically stored in a cloud service. You can add more virtual machines to that cloud service for load
balancing and availability.
2 Input endpoints allow communications to a virtual machine from outside the virtual machine's cloud service.
Virtual machines in the same cloud service or virtual network can automatically communicate with each other.
Virtual Machines limits - Azure Resource Manager
The following limits apply when you use Azure Resource Manager and Azure resource groups.
RESO URC E L IM IT
VM total cores per subscription 201 per region. Contact support to increase limit.
RESO URC E L IM IT
Azure Spot VM total cores per subscription 201 per region. Contact support to increase limit.
VM per series, such as Dv2 and F, cores per subscription 201 per region. Contact support to increase limit.
1 Default limits vary by offercategory type, such as Free Trial and Pay-As-You-Go, and by series, such as Dv2, F,
and G. For example, the default for Enterprise Agreement subscriptions is 350. For security, subscriptions default
to 20 cores to prevent large core deployments. If you need more cores, submit a support ticket.
2 Properties such as SSH public keys are also pushed as certificates and count towards this limit. To bypass this
limit, use the Azure Key Vault extension for Windows or the Azure Key Vault extension for Linux to install
certificates.
3 With Azure Resource Manager, certificates are stored in the Azure Key Vault. The number of certificates is
unlimited for a subscription. There's a 1-MB limit of certificates per deployment, which consists of either a single
VM or an availability set.
NOTE
Virtual machine cores have a regional total limit. They also have a limit for regional per-size series, such as Dv2 and F.
These limits are separately enforced. For example, consider a subscription with a US East total VM core limit of 30, an A
series core limit of 30, and a D series core limit of 30. This subscription can deploy 30 A1 VMs, or 30 D1 VMs, or a
combination of the two not to exceed a total of 30 cores. An example of a combination is 10 A1 VMs and 20 D1 VMs.
This article summarizes naming rules and restrictions for Azure resources. For recommendations about how to
name resources, see Recommended naming and tagging conventions.
This article lists resources by resource provider namespace. For a list of how resource providers match Azure
services, see Resource providers for Azure services.
Resource names are case-insensitive unless noted in the valid characters column.
NOTE
When retrieving resource names using various APIs, returned values may display different case values than what is listed
in the valid characters table.
NOTE
All resources with a public endpoint can't include reserved words or trademarks in the name. For a list of the blocked
words, see Resolve reserved resource name errors.
Microsoft.AnalysisServices
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ApiManagement
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.AppConfiguration
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Authorization
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
policyAssignments scope of assignment 1-128 display name Display name can contain
any characters.
1-64 resource name
Resource name can't use:
1-24 resource name at <>*%&:\?.+/ or control
management group scope characters.
policyDefinitions scope of definition 1-128 display name Display name can contain
any characters.
1-64 resource name
Resource name can't use:
<>*%&:\?.+/ or control
characters.
policySetDefinitions scope of definition 1-128 display name Display name can contain
any characters.
1-64 resource name
Resource name can't use:
1-24 resource name at <>*%&:\?.+/ or control
management group scope characters.
Microsoft.Automation
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
NOTE
Automation account names are unique per region and resource group. Names for deleted Automation accounts might
not be immediately available.
Microsoft.Batch
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Blockchain
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.BotService
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Cache
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Cdn
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.CertificateRegistration
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.CognitiveServices
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Compute
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
NOTE
Azure virtual machines have two distinct names: resource name and host name. When you create a virtual machine in the
portal, the same value is used for both names. The restrictions in the preceding table are for the host name. The actual
resource name can have up to 64 characters.
Microsoft.Communication
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Consumption
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ContainerInstance
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ContainerRegistry
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ContainerService
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.CustomerInsights
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.CustomProviders
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DataBox
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Databricks
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DataFactory
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DataLakeAnalytics
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DataLakeStore
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DataMigration
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DBforMariaDB
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DBforMySQL
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DBforPostgreSQL
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Devices
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DevTestLab
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.DocumentDB
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.EventGrid
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.EventHub
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.HDInsight
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ImportExport
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Insights
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.IoTCentral
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.KeyVault
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Kusto
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Logic
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.MachineLearning
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.MachineLearningServices
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ManagedIdentity
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Maps
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Media
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Network
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.NotificationHubs
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Start alphanumeric.
Start alphanumeric.
Microsoft.OperationsManagement
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Portal
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.PowerBI
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.PowerBIDedicated
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.RecoveryServices
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Relay
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Resources
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Security
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ServiceBus
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.ServiceFabric
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.SignalRService
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Sql
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Storage
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.StorageSync
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.StorSimple
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.StreamAnalytics
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.TimeSeriesInsights
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
Microsoft.Web
EN T IT Y SC O P E L EN GT H VA L ID C H A RA C T ERS
NOTE
A web site must have a globally unique URL. When you create a web site that uses a hosting plan, the URL is
http://<app-name>.azurewebsites.net . The app name must be globally unique. When you create a web site that uses
an App Service Environment, the app name must be unique within the domain for the App Service Environment. For both
cases, the URL of the site is globally unique.
Azure Functions has the same naming rules and restrictions as Microsoft.Web/sites. However, prior to version 4.x of Azure
Functions Core Tools, the function name was truncated to 32 characters when generating the host ID. For version 4.x, this
limit no longer applies. For earlier versions, limit the function name to 32 characters to avoid naming collisions.
Next steps
For recommendations about how to name resources, see Ready: Recommended naming and tagging
conventions.
All resources with a public endpoint can't include reserved words or trademarks in the name. For a list of
the blocked words, see Resolve reserved resource name errors.
Azure Resource Manager vs. classic deployment:
Understand deployment models and the state of
your resources
2/23/2022 • 10 minutes to read • Edit Online
NOTE
The information provided in this article is only used when you migrate from the classic deployment to the Azure Resource
Manager deployment.
In this article, you learn about Azure Resource Manager and classic deployment models. The Resource Manager
and classic deployment models represent two different ways of deploying and managing your Azure solutions.
You work with them through two different API sets, and the deployed resources can contain important
differences. The two models aren't compatible with each other. This article describes those differences.
To simplify the deployment and management of resources, Microsoft recommends that you use Resource
Manager for all new resources. If possible, Microsoft recommends that you redeploy existing resources through
Resource Manager. If you've used Cloud Services, you can migrate your solution to Cloud Services (extended
support).
If you're new to Resource Manager, you may want to first review the terminology defined in the Azure Resource
Manager overview.
Name : ExampleClassicVM
ResourceId :
/subscriptions/{guid}/resourceGroups/ExampleGroup/providers/Microsoft.ClassicCompute/virtualMachines/Example
ClassicVM
ResourceName : ExampleClassicVM
ResourceType : Microsoft.ClassicCompute/virtualMachines
ResourceGroupName : ExampleGroup
Location : westus
SubscriptionId : {guid}
However, the Resource Manager cmdlet Get-AzVM only returns virtual machines deployed through Resource
Manager. The following command doesn't return the virtual machine created through classic deployment.
Only resources created through Resource Manager support tags. You can't apply tags to classic resources.
Cloud Service for Virtual Machines Cloud Service was a container for Cloud Service is no longer an object
holding the virtual machines that required for creating a Virtual Machine
required Availability from the platform using the new model.
and Load Balancing.
Virtual Networks A virtual network is optional for the Virtual machine requires a virtual
virtual machine. If included, the virtual network that has been deployed with
network can't be deployed with Resource Manager.
Resource Manager.
Storage Accounts The virtual machine requires a storage The virtual machine requires a storage
account that stores the virtual hard account to store its disks in blob
disks for the operating system, storage.
temporary, and additional data disks.
IT EM C L A SSIC RESO URC E M A N A GER
Availability Sets Availability to the platform was Availability Set is a resource exposed
indicated by configuring the same by Microsoft.Compute Provider. Virtual
"AvailabilitySetName" on the Virtual Machines that require high availability
Machines. The maximum count of fault must be included in the Availability Set.
domains was 2. The maximum count of fault domains
is now 3.
Affinity Groups Affinity Groups were required for To simplify, the Affinity Groups concept
creating Virtual Networks. However, doesn't exist in the APIs exposed
with the introduction of Regional through Azure Resource Manager.
Virtual Networks, that wasn't required
anymore.
Load Balancing Creation of a Cloud Service provides The Load Balancer is a resource
an implicit load balancer for the Virtual exposed by the Microsoft.Network
Machines deployed. provider. The primary network
interface of the Virtual Machines that
needs to be load balanced should be
referencing the load balancer. Load
Balancers can be internal or external. A
load balancer instance references the
backend pool of IP addresses that
include the NIC of a virtual machine
(optional) and references a load
balancer public or private IP address
(optional).
Virtual IP Address Cloud Services gets a default VIP Public IP address is a resource exposed
(Virtual IP Address) when a VM is by the Microsoft.Network provider.
added to a cloud service. The Virtual IP Public IP address can be static
Address is the address associated with (reserved) or dynamic. Dynamic public
the implicit load balancer. IPs can be assigned to a Load Balancer.
Public IPs can be secured using
Security Groups.
Reserved IP Address You can reserve an IP Address in Azure Public IP Address can be created in
and associate it with a Cloud Service to static mode and it offers the same
ensure that the IP Address is sticky. capability as a reserved IP address.
Public IP Address (PIP) per VM Public IP Addresses can also be Public IP address is a resource exposed
associated to a VM directly. by the Microsoft.Network provider.
Public IP Address can be static
(reserved) or dynamic.
DNS Name A cloud service would get an implicit DNS Names are optional parameters
globally unique DNS Name. For that can be specified on a Public IP
example: Address resource. The FQDN is in the
mycoffeeshop.cloudapp.net . following format -
<domainlabel>.
<region>.cloudapp.azure.com
.
IT EM C L A SSIC RESO URC E M A N A GER
To learn about connecting virtual networks from different deployment models, see Connect virtual networks
from different deployment models in the portal.
This article shows how resource provider namespaces map to Azure services. If you don't know the resource
provider, see Find resource provider.
Microsoft.Addons core
Microsoft.Automation Automation
Microsoft.AzureStack core
RESO URC E P RO VIDER N A M ESPA C E A Z URE SERVIC E
Microsoft.Batch Batch
Microsoft.Capacity core
Microsoft.HDInsight HDInsight
Microsoft.HybridData StorSimple
Microsoft.Marketplace core
Microsoft.MarketplaceApps core
Microsoft.PowerBI Power BI
Microsoft.SaaS core
Microsoft.Scheduler Scheduler
Microsoft.Services core
Microsoft.SoftwarePlan License
Microsoft.Storage Storage
Microsoft.StorageSync Storage
Microsoft.StorSimple StorSimple
Microsoft.Subscription core
Microsoft.Token Token
Registration
The resources providers above that are marked with - registered are registered by default for your
subscription. To use the other resource providers, you must register them. However, many resource providers
are registered for you when you take certain actions. For example, if you create a resource through the portal,
the portal automatically registers any unregistered resource providers that are needed. When deploy resources
through an Azure Resource Manager template, any required resource providers are also registered.
IMPORTANT
Only register a resource provider when you're ready to use it. The registration step enables you to maintain least
privileges within your subscription. A malicious user can't use resource providers that aren't registered.
The results include the resource type. The resource provider namespace is the first part of the resource type. The
following example shows the Microsoft.KeyVault resource provider.
[
{
...
"type": "Microsoft.KeyVault/vaults"
}
]
The results include the resource type. The resource provider namespace is the first part of the resource type. The
following example shows the Microsoft.KeyVault resource provider.
Name : examplekey
ResourceGroupName : examplegroup
ResourceType : Microsoft.KeyVault/vaults
...
Next steps
For more information about resource providers, including how to register a resource provider, see Azure
resource providers and types.
Azure control plane and data plane
2/23/2022 • 2 minutes to read • Edit Online
Azure operations can be divided into two categories - control plane and data plane. This article describes the
differences between those two types of operations.
You use the control plane to manage resources in your subscription. You use the data plane to use capabilities
exposed by your instance of a resource type.
For example:
You create a virtual machine through the control plane. After the virtual machine is created, you interact
with it through data plane operations, such as Remote Desktop Protocol (RDP).
You create a storage account through the control plane. You use the data plane to read and write data in
the storage account.
You create a Cosmos database through the control plane. To query data in the Cosmos database, you use
the data plane.
Control plane
All requests for control plane operations are sent to the Azure Resource Manager URL. That URL varies by the
Azure environment.
For Azure global, the URL is https://management.azure.com .
For Azure Government, the URL is https://management.usgovcloudapi.net/ .
For Azure Germany, the URL is https://management.microsoftazure.de/ .
For Microsoft Azure China 21Vianet, the URL is https://management.chinacloudapi.cn .
To discover which operations use the Azure Resource Manager URL, see the Azure REST API. For example, the
create or update operation for MySql is a control plane operation because the request URL is:
PUT
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Mic
rosoft.DBforMySQL/servers/{serverName}/databases/{databaseName}?api-version=2017-12-01
Azure Resource Manager handles all control plane requests. It automatically applies the Azure features you've
implemented to manage your resources, such as:
Azure role-based access control (Azure RBAC)
Azure Policy
Management Locks
Activity Logs
After authenticating the request, Azure Resource Manager sends it to the resource provider, which completes the
operation.
The control plane includes two scenarios for handling requests - "green field" and "brown field". Green field
refers to new resources. Brown field refers to existing resources. As you deploy resources, Azure Resource
Manager understands when to create new resources and when to update existing resources. You don't have to
worry that identical resources will be created.
Data plane
Requests for data plane operations are sent to an endpoint that's specific to your instance. For example, the
Detect Language operation in Cognitive Services is a data plane operation because the request URL is:
POST {Endpoint}/text/analytics/v2.0/languages
Data plane operations aren't limited to REST API. They may require other credentials such as logging in to a
virtual machine or database server.
Features that enforce management and governance might not apply to data plane operations. You need to
consider the different ways users interact with your solutions. For example, a lock that prevents users from
deleting a database doesn't prevent users from deleting data through queries.
You can use some policies to govern data plane operations. For more information, see Resource Provider modes
(preview) in Azure Policy.
Next steps
For an overview of Azure Resource Manager, see What is Azure Resource Manager?
To learn more about the effect of policy definitions on new resources and existing resources, see Evaluate
the impact of a new Azure Policy definition.
Resource types that extend capabilities of other
resources
2/23/2022 • 2 minutes to read • Edit Online
An extension resource is a resource that adds to another resource's capabilities. For example, resource lock is an
extension resource. You apply a resource lock to another resource to prevent it from being deleted or modified.
It doesn't make sense to create a resource lock by itself. An extension resource is always applied to another
resource.
Microsoft.Advisor
Microsoft.Advisor/configurations
Microsoft.Advisor/recommendations
Microsoft.Advisor/suppressions
Microsoft.AlertsManagement
Microsoft.AlertsManagement/alerts
Microsoft.Authorization
Microsoft.Authorization/batchResourceCheckAccess
Microsoft.Authorization/denyAssignments
Microsoft.Authorization/eligibleChildResources
Microsoft.Authorization/locks
Microsoft.Authorization/policyAssignments
Microsoft.Authorization/policyDefinitions
Microsoft.Authorization/policyExemptions
Microsoft.Authorization/policySetDefinitions
Microsoft.Authorization/privateLinkAssociations
Microsoft.Authorization/roleAssignmentApprovals
Microsoft.Authorization/roleAssignments
Microsoft.Authorization/roleAssignmentScheduleInstances
Microsoft.Authorization/roleAssignmentScheduleRequests
Microsoft.Authorization/roleAssignmentSchedules
Microsoft.Authorization/roleDefinitions
Microsoft.Authorization/roleEligibilityScheduleInstances
Microsoft.Authorization/roleEligibilityScheduleRequests
Microsoft.Authorization/roleEligibilitySchedules
Microsoft.Authorization/roleManagementPolicies
Microsoft.Authorization/roleManagementPolicyAssignments
Microsoft.Automanage
Microsoft.Automanage/configurationProfileAssignmentIntents
Microsoft.Automanage/configurationProfileAssignments
Microsoft.Billing
Microsoft.Billing/billingPeriods
Microsoft.Billing/billingPermissions
Microsoft.Billing/billingRoleAssignments
Microsoft.Billing/billingRoleDefinitions
Microsoft.Billing/createBillingRoleAssignment
Microsoft.Blueprint
Microsoft.Blueprint/blueprintAssignments
Microsoft.Blueprint/blueprints
Microsoft.Capacity
Microsoft.Capacity/listSkus
Microsoft.ChangeAnalysis
Microsoft.ChangeAnalysis/changes
Microsoft.ChangeAnalysis/changeSnapshots
Microsoft.ChangeAnalysis/computeChanges
Microsoft.Consumption
Microsoft.Consumption/AggregatedCost
Microsoft.Consumption/Balances
Microsoft.Consumption/Budgets
Microsoft.Consumption/Charges
Microsoft.Consumption/CostTags
Microsoft.Consumption/credits
Microsoft.Consumption/events
Microsoft.Consumption/Forecasts
Microsoft.Consumption/lots
Microsoft.Consumption/Marketplaces
Microsoft.Consumption/Pricesheets
Microsoft.Consumption/products
Microsoft.Consumption/ReservationDetails
Microsoft.Consumption/ReservationRecommendationDetails
Microsoft.Consumption/ReservationRecommendations
Microsoft.Consumption/ReservationSummaries
Microsoft.Consumption/ReservationTransactions
Microsoft.ContainerInstance
Microsoft.ContainerInstance/serviceAssociationLinks
Microsoft.CostManagement
Microsoft.CostManagement/Alerts
Microsoft.CostManagement/Budgets
Microsoft.CostManagement/CheckNameAvailability
Microsoft.CostManagement/Dimensions
Microsoft.CostManagement/Exports
Microsoft.CostManagement/ExternalSubscriptions
Microsoft.CostManagement/Forecast
Microsoft.CostManagement/GenerateDetailedCostReport
Microsoft.CostManagement/Insights
Microsoft.CostManagement/OperationResults
Microsoft.CostManagement/OperationStatus
Microsoft.CostManagement/Query
Microsoft.CostManagement/Reportconfigs
Microsoft.CostManagement/Reports
Microsoft.CostManagement/ScheduledActions
Microsoft.CostManagement/Views
Microsoft.CustomProviders
Microsoft.CustomProviders/associations
Microsoft.DataMigration
Microsoft.DataMigration/DatabaseMigrations
Microsoft.Diagnostics
Microsoft.Diagnostics/InsightDiagnostics
Microsoft.Diagnostics/solutions
Microsoft.EventGrid
Microsoft.EventGrid/eventSubscriptions
Microsoft.EventGrid/extensionTopics
Microsoft.GuestConfiguration
Microsoft.GuestConfiguration/configurationProfileAssignments
Microsoft.GuestConfiguration/guestConfigurationAssignments
Microsoft.GuestConfiguration/software
Microsoft.HybridConnectivity
Microsoft.HybridConnectivity/endpoints
microsoft.insights
microsoft.insights/baseline
microsoft.insights/dataCollectionRuleAssociations
microsoft.insights/diagnosticSettings
microsoft.insights/diagnosticSettingsCategories
microsoft.insights/eventtypes
microsoft.insights/extendedDiagnosticSettings
microsoft.insights/guestDiagnosticSettingsAssociation
microsoft.insights/logDefinitions
microsoft.insights/logs
microsoft.insights/metricbaselines
microsoft.insights/metricDefinitions
microsoft.insights/metricNamespaces
microsoft.insights/metrics
microsoft.insights/myWorkbooks
microsoft.insights/topology
microsoft.insights/transactions
Microsoft.IoTSecurity
Microsoft.IoTSecurity/sensors
Microsoft.IoTSecurity/sites
Microsoft.KubernetesConfiguration
Microsoft.KubernetesConfiguration/extensions
Microsoft.KubernetesConfiguration/fluxConfigurations
Microsoft.KubernetesConfiguration/sourceControlConfigurations
Microsoft.Maintenance
Microsoft.Maintenance/applyUpdates
Microsoft.Maintenance/configurationAssignments
Microsoft.Maintenance/updates
Microsoft.ManagedIdentity
Microsoft.ManagedIdentity/Identities
Microsoft.ManagedServices
Microsoft.ManagedServices/registrationAssignments
Microsoft.ManagedServices/registrationDefinitions
Microsoft.OperationalInsights
Microsoft.OperationalInsights/storageInsightConfigs
Microsoft.OperationsManagement
Microsoft.OperationsManagement/managementassociations
Microsoft.PolicyInsights
Microsoft.PolicyInsights/attestations
Microsoft.PolicyInsights/eventGridFilters
Microsoft.PolicyInsights/policyEvents
Microsoft.PolicyInsights/policyStates
Microsoft.PolicyInsights/policyTrackedResources
Microsoft.PolicyInsights/remediations
Microsoft.Quota
Microsoft.Quota/operationsStatus
Microsoft.Quota/quotaRequests
Microsoft.Quota/quotas
Microsoft.Quota/usages
Microsoft.RecoveryServices
Microsoft.RecoveryServices/backupProtectedItems
Microsoft.RecoveryServices/replicationEligibilityResults
Microsoft.ResourceHealth
Microsoft.ResourceHealth/childResources
Microsoft.ResourceHealth/events
Microsoft.ResourceHealth/impactedResources
Microsoft.Resources
Microsoft.Resources/links
Microsoft.Resources/tags
Microsoft.Security
Microsoft.Security/adaptiveNetworkHardenings
Microsoft.Security/advancedThreatProtectionSettings
Microsoft.Security/antiMalwareSettings
Microsoft.Security/assessmentMetadata
Microsoft.Security/assessments
Microsoft.Security/Compliances
Microsoft.Security/dataCollectionAgents
Microsoft.Security/deviceSecurityGroups
Microsoft.Security/InformationProtectionPolicies
Microsoft.Security/insights
Microsoft.Security/jitPolicies
Microsoft.Security/serverVulnerabilityAssessments
Microsoft.Security/sqlVulnerabilityAssessments
Microsoft.SecurityInsights
Microsoft.SecurityInsights/aggregations
Microsoft.SecurityInsights/alertRules
Microsoft.SecurityInsights/alertRuleTemplates
Microsoft.SecurityInsights/automationRules
Microsoft.SecurityInsights/bookmarks
Microsoft.SecurityInsights/cases
Microsoft.SecurityInsights/dataConnectors
Microsoft.SecurityInsights/dataConnectorsCheckRequirements
Microsoft.SecurityInsights/enrichment
Microsoft.SecurityInsights/entities
Microsoft.SecurityInsights/entityQueryTemplates
Microsoft.SecurityInsights/incidents
Microsoft.SecurityInsights/listrepositories
Microsoft.SecurityInsights/metadata
Microsoft.SecurityInsights/onboardingStates
Microsoft.SecurityInsights/settings
Microsoft.SecurityInsights/sourceControls
Microsoft.SecurityInsights/threatIntelligence
Microsoft.SecurityInsights/watchlists
Microsoft.SerialConsole
Microsoft.SerialConsole/serialPorts
Microsoft.ServiceLinker
Microsoft.ServiceLinker/linkers
Microsoft.SoftwarePlan
Microsoft.SoftwarePlan/hybridUseBenefits
Microsoft.Subscription
Microsoft.Subscription/policies
microsoft.support
microsoft.support/supporttickets
Microsoft.WorkloadMonitor
Microsoft.WorkloadMonitor/monitors
Next steps
To get the resource ID for an extension resource in an Azure Resource Manager template, use the
extensionResourceId.
For an example of creating an extension resource in a template, see Event Grid Event Subscriptions.
Resources not limited to 800 instances per resource
group
2/23/2022 • 2 minutes to read • Edit Online
By default, you can deploy up to 800 instances of a resource type in each resource group. However, some
resource types are exempt from the 800 instance limit. This article lists the Azure resource types that can have
more than 800 instances in a resource group. All other resources types are limited to 800 instances.
For some resource types, you need to contact support to have the 800 instance limit removed. Those resource
types are noted in this article.
Some resources have a limit on the number instances per region. This limit is different than the 800 instances
per resource group. To check your instances per region, use the Azure portal. Select your subscription and
Usage + quotas in the left pane. For more information, see Check resource usage against limits.
Microsoft.AlertsManagement
resourceHealthAlertRules
smartDetectorAlertRules
Microsoft.Automation
automationAccounts
Microsoft.AzureStack
linkedSubscriptions
registrations
registrations/customerSubscriptions
registrations/products
Microsoft.BotService
botServices - By default, limited to 800 instances. That limit can be increased by contacting support.
Microsoft.Compute
disks
galleries
galleries/images
galleries/images/versions
images
snapshots
virtualMachineScaleSets - By default, limited to 800 instances. That limit can be increased by contacting
support.
virtualMachines
virtualMachines/extensions - Supports an unlimited number of VM extension instances.
Microsoft.ContainerInstance
containerGroups
Microsoft.ContainerRegistry
registries/buildTasks
registries/buildTasks/listSourceRepositoryProperties
registries/buildTasks/steps
registries/buildTasks/steps/listBuildArguments
registries/eventGridFilters
registries/replications
registries/tasks
registries/webhooks
Microsoft.D365CustomerInsights
instances
Microsoft.DBforMariaDB
servers
Microsoft.DBforMySQL
flexibleServers
servers
Microsoft.DBforPostgreSQL
flexibleServers
serverGroups
serverGroupsv2
servers
serversv2
Microsoft.DevTestLab
schedules
Microsoft.EnterpriseKnowledgeGraph
services
Microsoft.EventHub
clusters
namespaces
Microsoft.Experimentation
experimentWorkspaces
Microsoft.GuestConfiguration
autoManagedVmConfigurationProfiles
configurationProfileAssignments
guestConfigurationAssignments
software
softwareUpdateProfile
softwareUpdates
Microsoft.HybridCompute
machines - Supports up to 5,000 instances.
machines/extensions - Supports an unlimited number of VM extension instances.
microsoft.insights
metricalerts
scheduledqueryrules
Microsoft.Logic
integrationAccounts
workflows
Microsoft.Media
mediaservices/liveEvents
Microsoft.NetApp
netAppAccounts
netAppAccounts/capacityPools
netAppAccounts/capacityPools/volumes
netAppAccounts/capacityPools/volumes/mountTargets
netAppAccounts/capacityPools/volumes/snapshots
netAppAccounts/capacityPools/volumes/subvolumes
netAppAccounts/snapshotPolicies
netAppAccounts/volumeGroups
Microsoft.Network
applicationGatewayWebApplicationFirewallPolicies
applicationSecurityGroups
bastionHosts
ddosProtectionPlans
dnszones
dnszones/A
dnszones/AAAA
dnszones/CAA
dnszones/CNAME
dnszones/MX
dnszones/NS
dnszones/PTR
dnszones/SOA
dnszones/SRV
dnszones/TXT
dnszones/all
dnszones/recordsets
networkIntentPolicies
networkInterfaces
privateDnsZones
privateDnsZones/A
privateDnsZones/AAAA
privateDnsZones/CNAME
privateDnsZones/MX
privateDnsZones/PTR
privateDnsZones/SOA
privateDnsZones/SRV
privateDnsZones/TXT
privateDnsZones/all
privateDnsZones/virtualNetworkLinks
privateEndpoints
privateLinkServices
publicIPAddresses
serviceEndpointPolicies
trafficmanagerprofiles
virtualNetworkTaps
Microsoft.PortalSdk
rootResources
Microsoft.PowerBI
workspaceCollections - By default, limited to 800 instances. That limit can be increased by contacting
support.
Microsoft.PowerBIDedicated
autoScaleVCores - By default, limited to 800 instances. That limit can be increased by contacting support.
capacities - By default, limited to 800 instances. That limit can be increased by contacting support.
Microsoft.Relay
namespaces
Microsoft.Scheduler
jobcollections
Microsoft.ServiceBus
namespaces
Microsoft.Singularity
accounts
accounts/accountQuotaPolicies
accounts/groupPolicies
accounts/jobs
accounts/models
accounts/storageContainers
Microsoft.Sql
servers/databases
Microsoft.Storage
storageAccounts
Microsoft.StreamAnalytics
streamingjobs - By default, limited to 800 instances. That limit can be increased by contacting support.
Next steps
For a complete list of quotas and limits, see Azure subscription and service limits, quotas, and constraints.
Azure Policy Regulatory Compliance controls for
Azure Resource Manager
2/23/2022 • 101 minutes to read • Edit Online
Regulatory Compliance in Azure Policy provides Microsoft created and managed initiative definitions, known as
built-ins, for the compliance domains and security controls related to different compliance standards. This
page lists the compliance domains and security controls for Azure Resource Manager. You can assign the
built-ins for a security control individually to help make your Azure resources compliant with the specific
standard.
The title of each built-in policy definition links to the policy definition in the Azure portal. Use the link in the
Policy Version column to view the source on the Azure Policy GitHub repo.
IMPORTANT
Each control below is associated with one or more Azure Policy definitions. These policies may help you assess compliance
with the control; however, there often is not a one-to-one or complete match between a control and one or more policies.
As such, Compliant in Azure Policy refers only to the policies themselves; this doesn't ensure you're fully compliant with
all requirements of a control. In addition, the compliance standard includes controls that aren't addressed by any Azure
Policy definitions at this time. Therefore, compliance in Azure Policy is only a partial view of your overall compliance status.
The associations between controls and Azure Policy Regulatory Compliance definitions for these compliance standards
may change over time.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Guidelines for Media 947 Using media for data MFA should be 3.0.0
- Media usage transfers - 947 enabled on accounts
with read
permissions on your
subscription
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.3
Detection detection capabilities App Service should
be enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.2
Detection detection capabilities Azure SQL Database
servers should be
enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.0
Detection detection capabilities DNS should be
enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.3
Detection detection capabilities Key Vault should be
enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.0
Detection detection capabilities open-source
relational databases
should be enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.0
Detection detection capabilities Resource Manager
should be enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.3
Detection detection capabilities servers should be
enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.2
Detection detection capabilities SQL servers on
machines should be
enabled
Logging and Threat LT-1 Enable threat Azure Defender for 1.0.3
Detection detection capabilities Storage should be
enabled
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.3
Detection detection for identity App Service should
and access be enabled
management
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.2
Detection detection for identity Azure SQL Database
and access servers should be
management enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.0
Detection detection for identity DNS should be
and access enabled
management
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.3
Detection detection for identity Key Vault should be
and access enabled
management
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.0
Detection detection for identity open-source
and access relational databases
management should be enabled
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.0
Detection detection for identity Resource Manager
and access should be enabled
management
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.3
Detection detection for identity servers should be
and access enabled
management
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.2
Detection detection for identity SQL servers on
and access machines should be
management enabled
Logging and Threat LT-2 Enable threat Azure Defender for 1.0.3
Detection detection for identity Storage should be
and access enabled
management
Identity and Access 3.10 Regularly review and Deprecated accounts 3.0.0
Control reconcile user access should be removed
from your
subscription
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Identity and Access 3.10 Regularly review and Deprecated accounts 3.0.0
Control reconcile user access with owner
permissions should
be removed from
your subscription
Identity and Access 3.10 Regularly review and External accounts 3.0.0
Control reconcile user access with owner
permissions should
be removed from
your subscription
Identity and Access 3.10 Regularly review and External accounts 3.0.0
Control reconcile user access with read
permissions should
be removed from
your subscription
Identity and Access 3.10 Regularly review and External accounts 3.0.0
Control reconcile user access with write
permissions should
be removed from
your subscription
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled accounts
Benchmark is enabled for all with write
recommendation 1.1 privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled on accounts
Benchmark is enabled for all with owner
recommendation 1.1 privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled on accounts
Benchmark is enabled for all with read
recommendation 1.2 non-privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure that there are External accounts 3.0.0
Management Foundations no guest users with owner
Benchmark permissions should
recommendation 1.3 be removed from
your subscription
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Identity and Access CIS Microsoft Azure Ensure that there are External accounts 3.0.0
Management Foundations no guest users with read
Benchmark permissions should
recommendation 1.3 be removed from
your subscription
Identity and Access CIS Microsoft Azure Ensure that there are External accounts 3.0.0
Management Foundations no guest users with write
Benchmark permissions should
recommendation 1.3 be removed from
your subscription
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.3
Foundations pricing tier is selected App Service should
Benchmark be enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.2
Foundations pricing tier is selected Azure SQL Database
Benchmark servers should be
recommendation 2.1 enabled
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.3
Foundations pricing tier is selected Key Vault should be
Benchmark enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.3
Foundations pricing tier is selected servers should be
Benchmark enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.2
Foundations pricing tier is selected SQL servers on
Benchmark machines should be
recommendation 2.1 enabled
Security Center CIS Microsoft Azure Ensure that standard Azure Defender for 1.0.3
Foundations pricing tier is selected Storage should be
Benchmark enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that standard Microsoft Defender 1.0.0
Foundations pricing tier is selected for Containers should
Benchmark be enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that 'Security Subscriptions should 1.0.1
Foundations contact emails' is set have a contact email
Benchmark address for security
recommendation issues
2.16
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Security Center CIS Microsoft Azure Ensure that 'Send Email notification for 1.0.1
Foundations email notification for high severity alerts
Benchmark high severity alerts' is should be enabled
recommendation set to 'On'
2.18
Security Center CIS Microsoft Azure Ensure that 'Send Email notification to 2.0.0
Foundations email also to subscription owner
Benchmark subscription owners' for high severity
recommendation is set to 'On' alerts should be
2.19 enabled
Security Center CIS Microsoft Azure Ensure that Auto provisioning of 1.0.1
Foundations 'Automatic the Log Analytics
Benchmark provisioning of agent should be
recommendation 2.2 monitoring agent' is enabled on your
set to 'On' subscription
Logging and CIS Microsoft Azure Ensure that a Log Azure subscriptions 1.0.0
Monitoring Foundations Profile exists should have a log
Benchmark profile for Activity
recommendation Log
5.1.1
Logging and CIS Microsoft Azure Ensure that Activity Activity log should be 1.0.0
Monitoring Foundations Log Retention is set retained for at least
Benchmark 365 days or greater one year
recommendation
5.1.2
Logging and CIS Microsoft Azure Ensure audit profile Azure Monitor log 1.0.0
Monitoring Foundations captures all the profile should collect
Benchmark activities logs for categories
recommendation 'write,' 'delete,' and
5.1.3 'action'
Logging and CIS Microsoft Azure Ensure the log profile Azure Monitor 2.0.0
Monitoring Foundations captures activity logs should collect activity
Benchmark for all regions logs from all regions
recommendation including global
5.1.4
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 3.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create Policy specific Policy
recommendation Assignment operations
5.2.1
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific
recommendation Network Security Administrative
5.2.2 Group operations
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Delete Network specific
recommendation Security Group Administrative
5.2.3 operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific
recommendation Network Security Administrative
5.2.4 Group Rule operations
Logging and CIS Microsoft Azure Ensure that activity An activity log alert 1.0.0
Monitoring Foundations log alert exists for should exist for
Benchmark the Delete Network specific
recommendation Security Group Rule Administrative
5.2.5 operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific Security
recommendation Security Solution operations
5.2.6
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Delete Security specific Security
recommendation Solution operations
5.2.7
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update or specific
recommendation Delete SQL Server Administrative
5.2.8 Firewall Rule operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update or specific
recommendation Delete SQL Server Administrative
5.2.8 Firewall Rule operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Update Security specific Security
recommendation Policy operations
5.2.9
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled accounts
Benchmark is enabled for all with write
recommendation 1.1 privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled on accounts
Benchmark is enabled for all with owner
recommendation 1.1 privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure that multi- MFA should be 3.0.0
Management Foundations factor authentication enabled on accounts
Benchmark is enabled for all with read
recommendation 1.2 non-privileged users permissions on your
subscription
Identity and Access CIS Microsoft Azure Ensure guest users External accounts 3.0.0
Management Foundations are reviewed on a with owner
Benchmark monthly basis permissions should
recommendation 1.3 be removed from
your subscription
Identity and Access CIS Microsoft Azure Ensure guest users External accounts 3.0.0
Management Foundations are reviewed on a with read
Benchmark monthly basis permissions should
recommendation 1.3 be removed from
your subscription
Identity and Access CIS Microsoft Azure Ensure guest users External accounts 3.0.0
Management Foundations are reviewed on a with write
Benchmark monthly basis permissions should
recommendation 1.3 be removed from
your subscription
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.3
Foundations Defender is set to On servers should be
Benchmark for Servers enabled
recommendation 2.1
Security Center CIS Microsoft Azure Ensure that Auto provisioning of 1.0.1
Foundations 'Automatic the Log Analytics
Benchmark provisioning of agent should be
recommendation monitoring agent' is enabled on your
2.11 set to 'On' subscription
Security Center CIS Microsoft Azure Ensure 'Additional Subscriptions should 1.0.1
Foundations email addresses' is have a contact email
Benchmark configured with a address for security
recommendation security contact email issues
2.13
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Security Center CIS Microsoft Azure Ensure that 'Notify Email notification for 1.0.1
Foundations about alerts with the high severity alerts
Benchmark following severity' is should be enabled
recommendation set to 'High'
2.14
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.3
Foundations Defender is set to On App Service should
Benchmark for App Service be enabled
recommendation 2.2
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.2
Foundations Defender is set to On Azure SQL Database
Benchmark for Azure SQL servers should be
recommendation 2.3 database servers enabled
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.2
Foundations Defender is set to On SQL servers on
Benchmark for SQL servers on machines should be
recommendation 2.4 machines enabled
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.3
Foundations Defender is set to On Storage should be
Benchmark for Storage enabled
recommendation 2.5
Security Center CIS Microsoft Azure Ensure that Azure Microsoft Defender 1.0.0
Foundations Defender is set to On for Containers should
Benchmark for Kubernetes be enabled
recommendation 2.6
Security Center CIS Microsoft Azure Ensure that Azure Microsoft Defender 1.0.0
Foundations Defender is set to On for Containers should
Benchmark for Container be enabled
recommendation 2.7 Registries
Security Center CIS Microsoft Azure Ensure that Azure Azure Defender for 1.0.3
Foundations Defender is set to On Key Vault should be
Benchmark for Key Vault enabled
recommendation 2.8
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 3.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create Policy specific Policy
recommendation Assignment operations
5.2.1
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 3.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Delete Policy specific Policy
recommendation Assignment operations
5.2.2
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific
recommendation Network Security Administrative
5.2.3 Group operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Delete Network specific
recommendation Security Group Administrative
5.2.4 operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific
recommendation Network Security Administrative
5.2.5 Group Rule operations
Logging and CIS Microsoft Azure Ensure that activity An activity log alert 1.0.0
Monitoring Foundations log alert exists for should exist for
Benchmark the Delete Network specific
recommendation Security Group Rule Administrative
5.2.6 operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update specific Security
recommendation Security Solution operations
5.2.7
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Delete Security specific Security
recommendation Solution operations
5.2.8
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update or specific
recommendation Delete SQL Server Administrative
5.2.9 Firewall Rule operations
Logging and CIS Microsoft Azure Ensure that Activity An activity log alert 1.0.0
Monitoring Foundations Log Alert exists for should exist for
Benchmark Create or Update or specific
recommendation Delete SQL Server Administrative
5.2.9 Firewall Rule operations
CMMC Level 3
To review how the available Azure Policy built-ins for all Azure services map to this compliance standard, see
Azure Policy Regulatory Compliance - CMMC Level 3. For more information about this compliance standard, see
Cybersecurity Maturity Model Certification (CMMC).
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific
uniquely traced to Administrative
those users so they operations
can be held
accountable for their
actions.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific
uniquely traced to Administrative
those users so they operations
can be held
accountable for their
actions.
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific
uniquely traced to Administrative
those users so they operations
can be held
accountable for their
actions.
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific
uniquely traced to Administrative
those users so they operations
can be held
accountable for their
actions.
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific
uniquely traced to Administrative
those users so they operations
can be held
accountable for their
actions.
Audit and AU.2.041 Ensure that the An activity log alert 3.0.0
Accountability actions of individual should exist for
system users can be specific Policy
uniquely traced to operations
those users so they
can be held
accountable for their
actions.
Audit and AU.2.041 Ensure that the An activity log alert 1.0.0
Accountability actions of individual should exist for
system users can be specific Security
uniquely traced to operations
those users so they
can be held
accountable for their
actions.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU.2.041 Ensure that the Azure Monitor log 1.0.0
Accountability actions of individual profile should collect
system users can be logs for categories
uniquely traced to 'write,' 'delete,' and
those users so they 'action'
can be held
accountable for their
actions.
Audit and AU.2.042 Create and retain Activity log should be 1.0.0
Accountability system audit logs retained for at least
and records to the one year
extent needed to
enable the
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific
extent needed to Administrative
enable the operations
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific
extent needed to Administrative
enable the operations
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific
extent needed to Administrative
enable the operations
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific
extent needed to Administrative
enable the operations
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific
extent needed to Administrative
enable the operations
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Audit and AU.2.042 Create and retain An activity log alert 3.0.0
Accountability system audit logs should exist for
and records to the specific Policy
extent needed to operations
enable the
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU.2.042 Create and retain An activity log alert 1.0.0
Accountability system audit logs should exist for
and records to the specific Security
extent needed to operations
enable the
monitoring, analysis,
investigation, and
reporting of unlawful
or unauthorized
system activity.
Incident Response IR.2.093 Detect and report An activity log alert 1.0.0
events. should exist for
specific Security
operations
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.3
events. App Service should
be enabled
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.2
events. Azure SQL Database
servers should be
enabled
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.3
events. Key Vault should be
enabled
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.3
events. servers should be
enabled
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.2
events. SQL servers on
machines should be
enabled
Incident Response IR.2.093 Detect and report Azure Defender for 1.0.3
events. Storage should be
enabled
Incident Response IR.2.093 Detect and report Email notification for 1.0.1
events. high severity alerts
should be enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
FedRAMP High
To review how the available Azure Policy built-ins for all Azure services map to this compliance standard, see
Azure Policy Regulatory Compliance - FedRAMP High. For more information about this compliance standard,
see FedRAMP High.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage App Service should
be enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.2
Atypical Usage Azure SQL Database
servers should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.0
Atypical Usage DNS should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage Key Vault should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.0
Atypical Usage Resource Manager
should be enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage servers should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.2
Atypical Usage SQL servers on
machines should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage Storage should be
enabled
Audit and AU-6 (4) Central Review and Auto provisioning of 1.0.1
Accountability Analysis the Log Analytics
agent should be
enabled on your
subscription
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis App Service should
be enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.2
Accountability Analysis Azure SQL Database
servers should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.0
Accountability Analysis DNS should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis Key Vault should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.0
Accountability Analysis Resource Manager
should be enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis servers should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.2
Accountability Analysis SQL servers on
machines should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis Storage should be
enabled
Audit and AU-6 (4) Central Review and Microsoft Defender 1.0.0
Accountability Analysis for Containers should
be enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.3
Accountability correlated Audit Trail App Service should
be enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.2
Accountability correlated Audit Trail Azure SQL Database
servers should be
enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.0
Accountability correlated Audit Trail DNS should be
enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.3
Accountability correlated Audit Trail Key Vault should be
enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.0
Accountability correlated Audit Trail Resource Manager
should be enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.3
Accountability correlated Audit Trail servers should be
enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.2
Accountability correlated Audit Trail SQL servers on
machines should be
enabled
Audit and AU-12 (1) System-wide / Time- Azure Defender for 1.0.3
Accountability correlated Audit Trail Storage should be
enabled
System and SI-3 (1) Central Management Azure Defender for 1.0.3
Information Integrity servers should be
enabled
FedRAMP Moderate
To review how the available Azure Policy built-ins for all Azure services map to this compliance standard, see
Azure Policy Regulatory Compliance - FedRAMP Moderate. For more information about this compliance
standard, see FedRAMP Moderate.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage App Service should
be enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.2
Atypical Usage Azure SQL Database
servers should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.0
Atypical Usage DNS should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage Key Vault should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.0
Atypical Usage Resource Manager
should be enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage servers should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.2
Atypical Usage SQL servers on
machines should be
enabled
Access Control AC-2 (12) Account Monitoring / Azure Defender for 1.0.3
Atypical Usage Storage should be
enabled
System and SI-3 (1) Central Management Azure Defender for 1.0.3
Information Integrity servers should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Monitoring System 1212.09ab1System.1 All applicable legal Azure Monitor log 1.0.0
Use - 09.ab requirements related profile should collect
to monitoring logs for categories
authorized access 'write,' 'delete,' and
and unauthorized 'action'
access attempts are
met.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
ISO 27001:2013
To review how the available Azure Policy built-ins for all Azure services map to this compliance standard, see
Azure Policy Regulatory Compliance - ISO 27001:2013. For more information about this compliance standard,
see ISO 27001:2013.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Access Control and AC-3 16.1.35 Methods for MFA should be 3.0.0
Passwords system user enabled on accounts
identification and with read
authentication permissions on your
subscription
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.3
for Atypical Usage App Service should
be enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.2
for Atypical Usage Azure SQL Database
servers should be
enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.0
for Atypical Usage DNS should be
enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.3
for Atypical Usage Key Vault should be
enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.0
for Atypical Usage Resource Manager
should be enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.3
for Atypical Usage servers should be
enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.2
for Atypical Usage SQL servers on
machines should be
enabled
Access Control AC-2 (12) Account Monitoring Azure Defender for 1.0.3
for Atypical Usage Storage should be
enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.3
Accountability Analysis, and App Service should
Reporting be enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.2
Accountability Analysis, and Azure SQL Database
Reporting servers should be
enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.0
Accountability Analysis, and DNS should be
Reporting enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.3
Accountability Analysis, and Key Vault should be
Reporting enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.0
Accountability Analysis, and Resource Manager
Reporting should be enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.3
Accountability Analysis, and servers should be
Reporting enabled
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.2
Accountability Analysis, and SQL servers on
Reporting machines should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU-6 Audit Record Review, Azure Defender for 1.0.3
Accountability Analysis, and Storage should be
Reporting enabled
Audit and AU-6 (4) Central Review and Auto provisioning of 1.0.1
Accountability Analysis the Log Analytics
agent should be
enabled on your
subscription
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis App Service should
be enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.2
Accountability Analysis Azure SQL Database
servers should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.0
Accountability Analysis DNS should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis Key Vault should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.0
Accountability Analysis Resource Manager
should be enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis servers should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.2
Accountability Analysis SQL servers on
machines should be
enabled
Audit and AU-6 (4) Central Review and Azure Defender for 1.0.3
Accountability Analysis Storage should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU-6 (4) Central Review and Microsoft Defender 1.0.0
Accountability Analysis for Containers should
be enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.3
Accountability of Audit Records App Service should
be enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.2
Accountability of Audit Records Azure SQL Database
servers should be
enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.0
Accountability of Audit Records DNS should be
enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.3
Accountability of Audit Records Key Vault should be
enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.0
Accountability of Audit Records Resource Manager
should be enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.3
Accountability of Audit Records servers should be
enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.2
Accountability of Audit Records SQL servers on
machines should be
enabled
Audit and AU-6 (5) Integrated Analysis Azure Defender for 1.0.3
Accountability of Audit Records Storage should be
enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.3
Accountability Time-correlated App Service should
Audit Trail be enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.2
Accountability Time-correlated Azure SQL Database
Audit Trail servers should be
enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.0
Accountability Time-correlated DNS should be
Audit Trail enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.3
Accountability Time-correlated Key Vault should be
Audit Trail enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.0
Accountability Time-correlated Resource Manager
Audit Trail should be enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.3
Accountability Time-correlated servers should be
Audit Trail enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.2
Accountability Time-correlated SQL servers on
Audit Trail machines should be
enabled
Audit and AU-12 (1) System-wide and Azure Defender for 1.0.3
Accountability Time-correlated Storage should be
Audit Trail enabled
Incident Response IR-6 (2) Vulnerabilities Related Email notification for 1.0.1
to Incidents high severity alerts
should be enabled
RMIT Malaysia
To review how the available Azure Policy built-ins for all Azure services map to this compliance standard, see
Azure Policy Regulatory Compliance - RMIT Malaysia. For more information about this compliance standard, see
RMIT Malaysia.
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Security of Digital RMiT 10.66 Security of Digital Activity log should be 1.0.0
Services Services - 10.66 retained for at least
one year
Security of Digital RMiT 10.66 Security of Digital Azure Monitor log 1.0.0
Services Services - 10.66 profile should collect
logs for categories
'write,' 'delete,' and
'action'
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Security Operations RMiT 11.18 Security Operations Azure Defender for 1.0.2
Centre (SOC) Centre (SOC) - 11.18 Azure SQL Database
servers should be
enabled
Security Operations RMiT 11.18 Security Operations Azure Defender for 1.0.2
Centre (SOC) Centre (SOC) - 11.18 Azure SQL Database
servers should be
enabled
Security Operations RMiT 11.18 Security Operations Email notification for 1.0.1
Centre (SOC) Centre (SOC) - 11.18 high severity alerts
should be enabled
Security Operations RMiT 11.18 Security Operations Email notification for 1.0.1
Centre (SOC) Centre (SOC) - 11.18 high severity alerts
should be enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Control Measures on RMiT Appendix 5.7 Control Measures on Auto provisioning of 1.0.1
Cybersecurity Cybersecurity - the Log Analytics
Appendix 5.7 agent should be
enabled on your
subscription
Control Measures on RMiT Appendix 5.7 Control Measures on Azure Defender for 1.0.2
Cybersecurity Cybersecurity - Azure SQL Database
Appendix 5.7 servers should be
enabled
Control Measures on RMiT Appendix 5.7 Control Measures on Azure Defender for 1.0.3
Cybersecurity Cybersecurity - servers should be
Appendix 5.7 enabled
Control Measures on RMiT Appendix 5.7 Control Measures on Azure Defender for 1.0.2
Cybersecurity Cybersecurity - SQL servers on
Appendix 5.7 machines should be
enabled
Control Measures on RMiT Appendix 5.7 Control Measures on Email notification for 1.0.1
Cybersecurity Cybersecurity - high severity alerts
Appendix 5.7 should be enabled
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E
Control Measures on RMiT Appendix 5.7 Control Measures on Microsoft Defender 1.0.0
Cybersecurity Cybersecurity - for Containers should
Appendix 5.7 be enabled
Control Measures on RMiT Appendix 5.7 Control Measures on Subscriptions should 1.0.1
Cybersecurity Cybersecurity - have a contact email
Appendix 5.7 address for security
issues
P O L IC Y P O L IC Y VERSIO N
DO M A IN C O N T RO L ID C O N T RO L T IT L E ( A ZURE PO RTA L) ( GIT HUB)
Next steps
Learn more about Azure Policy Regulatory Compliance.
See the built-ins on the Azure Policy GitHub repo.
Move Azure resources across resource groups,
subscriptions, or regions
2/23/2022 • 2 minutes to read • Edit Online
Azure resources can be moved to a new resource group or subscription, or across regions.
Next steps
To check if a resource type supports being moved, see Move operation support for resources.
To learn more about the region move process, see About the move process.
Move resources to a new resource group or
subscription
2/23/2022 • 13 minutes to read • Edit Online
This article shows you how to move Azure resources to either another Azure subscription or another resource
group under the same subscription. You can use the Azure portal, Azure PowerShell, Azure CLI, or the REST API
to move resources.
Both the source group and the target group are locked during the move operation. Write and delete operations
are blocked on the resource groups until the move completes. This lock means you can't add, update, or delete
resources in the resource groups. It doesn't mean the resources are frozen. For example, if you move an Azure
SQL logical server, its databases and other dependent resources to a new resource group or subscription,
applications that use the databases experience no downtime. They can still read and write to the databases. The
lock can last for a maximum of four hours, but most moves complete in much less time.
If your move requires setting up new dependent resources, you'll experience an interruption in those services
until they've been reconfigured.
Moving a resource only moves it to a new resource group or subscription. It doesn't change the location of the
resource.
Changed resource ID
When you move a resource, you change its resource ID. The standard format for a resource ID is
/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}
. When you move a resource to a new resource group or subscription, you change one or more values in that
path.
If you use the resource ID anywhere, you'll need to change that value. For example, if you have a custom
dashboard in the portal that references a resource ID, you'll need to update that value. Look for any scripts or
templates that need to be updated for the new resource ID.
If the tenant IDs for the source and destination subscriptions aren't the same, use the following methods
to reconcile the tenant IDs:
Transfer ownership of an Azure subscription to another account
How to associate or add an Azure subscription to Azure Active Directory
6. The destination subscription must be registered for the resource provider of the resource being moved. If
not, you receive an error stating that the subscription is not registered for a resource type . You
might see this error when moving a resource to a new subscription, but that subscription has never been
used with that resource type.
For PowerShell, use the following commands to get the registration status:
For Azure CLI, use the following commands to get the registration status:
7. The account moving the resources must have at least the following permissions:
Microsoft.Resources/subscriptions/resourceGroups/moveResources/action on the source
resource group.
Microsoft.Resources/subscriptions/resourceGroups/write on the destination resource group.
8. Before moving the resources, check the subscription quotas for the subscription you're moving the
resources to. If moving the resources means the subscription will exceed its limits, you need to review
whether you can request an increase in the quota. For a list of limits and how to request an increase, see
Azure subscription and service limits, quotas, and constraints.
9. For a move across subscriptions, the resource and its dependent resources must be located
in the same resource group and they must be moved together. For example, a VM with managed
disks would require the VM and the managed disks to be moved together, along with other dependent
resources.
If you're moving a resource to a new subscription, check to see whether the resource has any dependent
resources, and whether they're located in the same resource group. If the resources aren't in the same
resource group, check to see whether the resources can be combined into the same resource group. If so,
bring all these resources into the same resource group by using a move operation across resource
groups.
For more information, see Scenario for move across subscriptions.
{} Finished ..
If validation fails, you see an error message describing why the resources can't be moved.
Move
To move existing resources to another resource group or subscription, use the az resource move command.
Provide the resource IDs of the resources to move. The following example shows how to move several resources
to a new resource group. In the --ids parameter, provide a space-separated list of the resource IDs to move.
POST https://management.azure.com/subscriptions/<subscription-id>/resourceGroups/<source-
group>/validateMoveResources?api-version=2019-05-10
Authorization: Bearer <access-token>
Content-type: application/json
{
"resources": ["<resource-id-1>", "<resource-id-2>"],
"targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}
The 202 status code indicates the validation request was accepted, but it hasn't yet determined if the move
operation will succeed. The location value contains a URL that you use to check the status of the long-running
operation.
To check the status, send the following request:
GET <location-url>
Authorization: Bearer <access-token>
While the operation is still running, you continue to receive the 202 status code. Wait the number of seconds
indicated in the retry-after value before trying again. If the move operation validates successfully, you receive
the 204 status code. If the move validation fails, you receive an error message, such as:
{"error":{"code":"ResourceMoveProviderValidationFailed","message":"<message>"...}}
Move
To move existing resources to another resource group or subscription, use the Move resources operation.
POST https://management.azure.com/subscriptions/{source-subscription-id}/resourcegroups/{source-resource-
group-name}/moveResources?api-version={api-version}
In the request body, you specify the target resource group and the resources to move.
{
"resources": ["<resource-id-1>", "<resource-id-2>"],
"targetResourceGroup": "/subscriptions/<subscription-id>/resourceGroups/<target-group>"
}
Frequently asked questions
Question: My resource move operation, which usually takes a few minutes, has been running for
almost an hour. Is there something wrong?
Moving a resource is a complex operation that has different phases. It can involve more than just the resource
provider of the resource you're trying to move. Because of the dependencies between resource providers, Azure
Resource Manager allows 4 hours for the operation to complete. This time period gives resource providers a
chance to recover from transient issues. If your move request is within the four-hour period, the operation keeps
trying to complete and may still succeed. The source and destination resource groups are locked during this
time to avoid consistency issues.
Question: Why is my resource group locked for four hours during resource move?
A move request is allowed a maximum of four hours to complete. To prevent modifications on the resources
being moved, both the source and destination resource groups are locked during the resource move.
There are two phases in a move request. In the first phase, the resource is moved. In the second phase,
notifications are sent to other resource providers that are dependent on the resource being moved. A resource
group can be locked for the entire four hours when a resource provider fails either phase. During the allowed
time, Resource Manager retries the failed step.
If a resource can't be moved within four hours, Resource Manager unlocks both resource groups. Resources that
were successfully moved are in the destination resource group. Resources that failed to move are left the source
resource group.
Question: What are the implications of the source and destination resource groups being locked
during the resource move?
The lock prevents you from deleting either resource group, creating a new resource in either resource group, or
deleting any of the resources involved in the move.
The following image shows an error message from the Azure portal when a user tries to delete a resource
group that is part of an ongoing move.
Next steps
For a list of which resources support move, see Move operation support for resources.
Move resources across regions (from resource
group)
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move resources in a specific resource group to a different Azure region. In the
resource group, you select the resources you want to move. Then, you move them using Azure Resource Mover.
Prerequisites
You need Owner access on the subscription in which resources you want to move are located.
The first time you add a resource for a specific source and destination mapping in an Azure
subscription, Resource Mover creates a system-assigned managed identity (formerly known as
Managed Service Identify (MSI)) that's trusted by the subscription.
To create the identity, and to assign it the required role (Contributor or User Access administrator in
the source subscription), the account you use to add resources needs Owner permissions on the
subscription. Learn more about Azure roles.
The subscription needs enough quota to create the source resources in the target region. If it doesn't, request
additional limits. Learn more.
Verify pricing and charges associated with the target region to which you're moving VMs. Use the pricing
calculator to help you.
Check that the resources you want to move are supported by Resource Mover:
Azure VMs and associated disks
NICs
Availability sets
Azure virtual networks
Public IP addresses
Network security groups (NSGs)
Internal and public load balancers
Azure SQL databases and elastic pools
Check VM requirements
1. Check that the VMs you want to move are supported.
Verify supported Windows VMs.
Verify supported Linux VMs and kernel versions.
Check supported compute, storage, and networking settings.
2. Make sure VMs have the latest trusted root certificates and an updated certificate revocation list (CRL).
On Azure VMs running Windows, install the latest Windows updates.
On VMs running Linux, follow the Linux distributor guidance to ensure the machine has the latest
certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
NOTE
Don't select associated disks or the operation will fail. Associated disks are automatically included in a VM move.
4. In Source + destination , select the target region to which you want to move the resources. Then select
Next .
Resolve dependencies
Resources you're moving appear in the Across regions page, in a Prepare pending state. Start validation as
follows:
1. If resources show a Validate dependencies message in the Issues column, select the Validate
dependencies button. The validation process begins.
4. Add additional dependencies if needed, and validate dependencies as needed. Select Refresh to ensure
resources show an up-to-date state.
5. On the Across regions page, verify that resources are now in a Prepare pending state, with no issues.
Move the source resource group
Before you can prepare and move resources, the source resource group must be present in the target region.
Prepare to move the source resource group
Prepare as follows:
1. In Across regions , select the source resource group > Prepare .
2. In Prepare resources , select Prepare .
During the Prepare process, Resource Mover generates Azure Resource Manager (ARM) templates using
the resource group settings. Resources inside the resource group aren't affected.
NOTE
After preparing the resource group, it's in the Initiate move pending state. Refresh to show the latest state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
2. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, for replication.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
For load balancers, NAT rules aren't copied. Create them in the target region after you commit the move.
For public IP addresses, the DNS name label isn't copied. Recreate the label after you commit the move.
After preparing resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
For VMs, After discarding resources, they're in an Initiate move pending state.
Next steps
Learn about the move process.
Move operation support for resources
2/23/2022 • 28 minutes to read • Edit Online
This article lists whether an Azure resource type supports the move operation. It also provides information
about special conditions to consider when moving a resource.
IMPORTANT
In most cases, a child resource can't be moved independently from its parent resource. Child resources have a resource
type in the format of <resource-provider-namespace>/<parent-resource>/<child-resource> . For example,
Microsoft.ServiceBus/namespaces/queues is a child resource of Microsoft.ServiceBus/namespaces . When you
move the parent resource, the child resource is automatically moved with it. If you don't see a child resource in this article,
you can assume it is moved with the parent resource. If the parent resource doesn't support move, the child resource
can't be moved.
Microsoft.AAD
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
domainservices No No No
microsoft.aadiam
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
diagnosticsettings No No No
diagnosticsettingscategories No No No
Microsoft.Addons
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
supportproviders No No No
Microsoft.ADHybridHealthService
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
aadsupportcases No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
addsservices No No No
agents No No No
anonymousapiusers No No No
configuration No No No
logs No No No
reports No No No
servicehealthmetrics No No No
services No No No
Microsoft.Advisor
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
configurations No No No
generaterecommendations No No No
metadata No No No
recommendations No No No
suppressions No No No
Microsoft.AlertsManagement
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
alerts No No No
alertslist No No No
alertsmetadata No No No
alertssummary No No No
alertssummarylist No No No
smartgroups No No No
Microsoft.AnalysisServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ApiManagement
IMPORTANT
An API Management service that is set to the Consumption SKU can't be moved.
reportfeedback No No No
Microsoft.AppConfiguration
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
configurationstores / No No No
eventgridfilters
Microsoft.AppPlatform
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.AppService
IMPORTANT
See App Service move guidance.
appidentities No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
gateways No No No
Microsoft.Attestation
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Authorization
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
classicadministrators No No No
dataaliases No No No
denyassignments No No No
elevateaccess No No No
findorphanroleassignments No No No
locks No No No
permissions No No No
policyassignments No No No
policydefinitions No No No
policysetdefinitions No No No
privatelinkassociations No No No
resourcemanagementprivat No No No
elinks
roleassignments No No No
roleassignmentsusagemetri No No No
cs
roledefinitions No No No
Microsoft.Automation
IMPORTANT
Runbooks must exist in the same resource group as the Automation Account.
For information, see Move your Azure Automation account to another subscription.
Using geo-replication
Microsoft.AVS
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.AzureActiveDirectory
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
b2ctenants No No No
Microsoft.AzureData
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
datacontrollers No No No
hybriddatamanagers No No No
postgresinstances No No No
sqlinstances No No No
sqlmanagedinstances No No No
sqlserverinstances No No No
cloudmanifestfiles No No No
Microsoft.AzureStackHCI
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
clusters No No No
Microsoft.Batch
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Billing
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
billingaccounts No No No
billingperiods No No No
billingpermissions No No No
billingproperty No No No
billingroleassignments No No No
billingroledefinitions No No No
departments No No No
enrollmentaccounts No No No
invoices No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
transfers No No No
Microsoft.BingMaps
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
mapapis No No No
Microsoft.BizTalkServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
biztalk No No No
Microsoft.Blockchain
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
blockchainmembers No No No
cordamembers No No No
watchers No No No
Microsoft.BlockchainTokens
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
tokenservices No No No
Microsoft.Blueprint
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
blueprintassignments No No No
blueprints No No No
Microsoft.BotService
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
redisenterprise No No No
Microsoft.Capacity
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
appliedreservations No No No
calculateexchange No No No
calculateprice No No No
calculatepurchaseprice No No No
catalogs No No No
commercialreservationorder No No No
s
exchange No No No
reservationorders No No No
reservations No No No
resources No No No
validatereservationorder No No No
Microsoft.Cdn
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
cdnwebapplicationfirewallm No No No
anagedrulesets
edgenodes No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.CertificateRegistration
IMPORTANT
See App Service move guidance.
Microsoft.ClassicCompute
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an
operation specific to that scenario.
capabilities No No No
domainnames Yes No No
quotas No No No
resourcetypes No No No
validatesubscriptionmoveav No No No
ailability
Microsoft.ClassicInfrastructureMigrate
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an
operation specific to that scenario.
classicinfrastructureresource No No No
s
Microsoft.ClassicNetwork
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an
operation specific to that scenario.
capabilities No No No
expressroutecrossconnectio No No No
ns
expressroutecrossconnectio No No No
ns / peerings
gatewaysupporteddevices No No No
networksecuritygroups No No No
quotas No No No
reservedips No No No
virtualnetworks No No No
Microsoft.ClassicStorage
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an
operation specific to that scenario.
disks No No No
images No No No
osimages No No No
osplatformimages No No No
publicimages No No No
quotas No No No
vmimages No No No
Microsoft.ClassicSubscription
IMPORTANT
See Classic deployment move guidance. Classic deployment resources can be moved across subscriptions with an
operation specific to that scenario.
operations No No No
Microsoft.CognitiveServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Commerce
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
ratecard No No No
usageaggregates No No No
Microsoft.Compute
IMPORTANT
See Virtual Machines move guidance.
diskaccesses No No No
diskencryptionsets No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
galleries No No No
galleries / images No No No
hostgroups No No No
hostgroups / hosts No No No
restorepointcollections No No No
restorepointcollections / No No No
restorepoints
sharedvmextensions No No No
sharedvmimages No No No
sharedvmimages / versions No No No
sshpublickeys No No No
Microsoft.Confluent
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
organizations No No No
Microsoft.Consumption
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
aggregatedcost No No No
balances No No No
budgets No No No
charges No No No
costtags No No No
credits No No No
events No No No
forecasts No No No
lots No No No
marketplaces No No No
pricesheets No No No
products No No No
reservationdetails No No No
reservationrecommendation No No No
details
reservationrecommendation No No No
s
reservationsummaries No No No
reservationtransactions No No No
tags No No No
tenants No No No
terms No No No
usagedetails No No No
Microsoft.ContainerInstance
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
containergroups No No No
serviceassociationlinks No No No
Microsoft.ContainerRegistry
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ContainerService
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
containerservices No No No
managedclusters No No No
openshiftmanagedclusters No No No
Microsoft.ContentModerator
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
applications No No No
Microsoft.CortanaAnalytics
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
Microsoft.CostManagement
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
alerts No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
billingaccounts No No No
budgets No No No
cloudconnectors No No No
departments No No No
dimensions No No No
enrollmentaccounts No No No
exports No No No
externalbillingaccounts No No No
forecast No No No
query No No No
register No No No
reportconfigs No No No
reports No No No
settings No No No
showbackrules No No No
views No No No
Microsoft.CustomerInsights
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
hubs No No No
Microsoft.CustomerLockbox
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
requests No No No
Microsoft.CustomProviders
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
associations No No No
Microsoft.DataBox
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
jobs No No No
Microsoft.DataBoxEdge
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
availableskus No No No
databoxedgedevices No No No
Microsoft.Databricks
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
workspaces No No No
Microsoft.DataCatalog
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
datacatalogs No No No
Microsoft.DataConnect
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
connectionmanagers No No No
Microsoft.DataExchange
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
packages No No No
plans No No No
Microsoft.DataFactory
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DataLake
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
datalakeaccounts No No No
Microsoft.DataLakeAnalytics
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DataLakeStore
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DataMigration
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
services No No No
services / projects No No No
slots No No No
Microsoft.DataProtection
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DataShare
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DBforMySQL
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DBforPostgreSQL
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
servergroups No No No
Microsoft.DeploymentManager
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DesktopVirtualization
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Devices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DevOps
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DevSpaces
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DevTestLab
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
labcenters No No No
labs Yes No No
Microsoft.DigitalTwins
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.DocumentDB
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
databaseaccountnames No No No
Microsoft.DomainRegistration
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
generatessorequest No No No
topleveldomains No No No
validatedomainregistrationi No No No
nformation
Microsoft.EnterpriseKnowledgeGraph
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.EventGrid
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
extensiontopics No No No
partnerregistrations No No No
topictypes No No No
Microsoft.EventHub
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
sku No No No
Microsoft.Experimentation
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
experimentworkspaces No No No
Microsoft.ExtendedLocation
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
customLocations No No No
Microsoft.Falcon
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Features
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
featureproviders No No No
features No No No
providers No No No
subscriptionfeatureregistrati No No No
ons
Microsoft.Genomics
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
Microsoft.GuestConfiguration
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
automanagedaccounts No No No
automanagedvmconfigurati No No No
onprofiles
guestconfigurationassignme No No No
nts
software No No No
softwareupdateprofile No No No
softwareupdates No No No
Microsoft.HanaOnAzure
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
hanainstances No No No
sapmonitors No No No
Microsoft.HardwareSecurityModules
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
dedicatedhsms No No No
Microsoft.HDInsight
IMPORTANT
You can move HDInsight clusters to a new subscription or resource group. However, you can't move across subscriptions
the networking resources linked to the HDInsight cluster (such as the virtual network, NIC, or load balancer). In addition,
you can't move to a new resource group a NIC that is attached to a virtual machine for the cluster.
When moving an HDInsight cluster to a new subscription, first move other resources (like the storage account). Then,
move the HDInsight cluster by itself.
Microsoft.HealthcareApis
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.HybridCompute
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.HybridData
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.HybridNetwork
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
devices No No No
vnfs No No No
Microsoft.Hydra
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
components No No No
networkscopes No No No
Microsoft.ImportExport
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Insights
IMPORTANT
Make sure moving to new subscription doesn't exceed subscription quotas.
activitylogalerts No No No
baseline No No No
datacollectionrules No No No
diagnosticsettings No No No
diagnosticsettingscategories No No No
eventcategories No No No
eventtypes No No No
extendeddiagnosticsettings No No No
guestdiagnosticsettings No No No
listmigrationdate No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
logdefinitions No No No
logprofiles No No No
logs No No No
metricalerts No No No
metricbaselines No No No
metricbatch No No No
metricdefinitions No No No
metricnamespaces No No No
metrics No No No
migratealertrules No No No
migratetonewpricingmodel No No No
myworkbooks No No No
notificationgroups No No No
privatelinkscopes No No No
rollbacktolegacypricingmod No No No
el
topology No No No
transactions No No No
vminsightsonboardingstatu No No No
ses
webtests / gettestresultfile No No No
Microsoft.IoTCentral
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
apptemplates No No No
Microsoft.IoTHub
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.IoTSpaces
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.KeyVault
IMPORTANT
Key Vaults used for disk encryption can't be moved to a resource group in the same subscription or across subscriptions.
deletedvaults No No No
hsmpools No No No
managedhsms No No No
Microsoft.Kubernetes
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
connectedclusters No No No
registeredsubscriptions No No No
Microsoft.KubernetesConfiguration
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
sourcecontrolconfigurations No No No
Microsoft.Kusto
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.LabServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
labaccounts No No No
users No No No
Microsoft.LocationBasedServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
Microsoft.LocationServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Logic
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
hostingenvironments No No No
integrationserviceenvironm Yes No No
ents
integrationserviceenvironm Yes No No
ents / managedapis
isolatedenvironments No No No
Microsoft.MachineLearning
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
commitmentplans No No No
webservices Yes No No
Microsoft.MachineLearningCompute
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
operationalizationclusters No No No
Microsoft.MachineLearningExperimentation
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
teamaccounts No No No
Microsoft.MachineLearningModelManagement
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
Microsoft.MachineLearningServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
workspaces No No No
Microsoft.Maintenance
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
updates No No No
Microsoft.ManagedIdentity
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
identities No No No
userassignedidentities No No No
Microsoft.ManagedNetwork
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
managednetworks No No No
managednetworks / No No No
managednetworkgroups
managednetworks / No No No
managednetworkpeeringpol
icies
notification No No No
Microsoft.ManagedServices
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
marketplaceregistrationdefi No No No
nitions
registrationassignments No No No
registrationdefinitions No No No
Microsoft.Management
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
getentities No No No
managementgroups No No No
managementgroups / No No No
settings
resources No No No
starttenantbackfill No No No
tenantbackfillstatus No No No
Microsoft.Maps
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Marketplace
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
offers No No No
offertypes No No No
privategalleryitems No No No
privatestoreclient No No No
privatestores No No No
products No No No
publishers No No No
register No No No
Microsoft.MarketplaceApps
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
classicdevservices No No No
Microsoft.MarketplaceOrdering
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
agreements No No No
offertypes No No No
Microsoft.Media
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Microservices4Spring
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
appclusters No No No
Microsoft.Migrate
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
assessmentprojects No No No
migrateprojects No No No
movecollections No No No
projects No No No
Microsoft.MixedReality
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
holographicsbroadcastacco No No No
unts
objectunderstandingaccoun No No No
ts
Microsoft.NetApp
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
netappaccounts No No No
netappaccounts / No No No
capacitypools
netappaccounts / No No No
capacitypools / volumes
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
netappaccounts / No No No
capacitypools / volumes /
mounttargets
netappaccounts / No No No
capacitypools / volumes /
snapshots
Microsoft.Network
IMPORTANT
See Networking move guidance.
applicationgateways No No No
applicationgatewaywebappli No No No
cationfirewallpolicies
azurefirewalls No No No
bastionhosts No No No
bgpservicecommunities No No No
ddosprotectionplans No No No
expressroutecircuits No No No
expressroutegateways No No No
expressrouteserviceprovider No No No
s
firewallpolicies No No No
frontdoors No No No
natgateways No No No
networkexperimentprofiles No No No
networkprofiles No No No
networkwatchers No No No
networkwatchers / Yes No No
connectionmonitors
networkwatchers / Yes No No
pingmeshes
p2svpngateways No No No
privatednszonesinternal No No No
privateendpointredirectmap No No No
s
privateendpoints No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
privatelinkservices No No No
routefilters No No No
trafficmanagergeographichi No No No
erarchies
trafficmanagerprofiles / No No No
heatmaps
trafficmanagerusermetricske No No No
ys
virtualhubs No No No
virtualnetworktaps No No No
virtualwans No No
vpnserverconfigurations No No No
Microsoft.NotificationHubs
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ObjectStore
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.OffAzure
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
hypervsites No No No
importsites No No No
serversites No No No
vmwaresites No No No
Microsoft.OperationalInsights
IMPORTANT
Make sure that moving to a new subscription doesn't exceed subscription quotas.
Workspaces that have a linked automation account can't be moved. Before you begin a move operation, be sure to unlink
any automation accounts.
clusters No No No
deletedworkspaces No No No
linktargets No No No
storageinsightconfigs No No No
Microsoft.OperationsManagement
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
managementassociations No No No
Microsoft.Peering
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
legacypeerings No No No
peerasns No No No
peeringlocations No No No
peerings No No No
peeringservicecountries No No No
peeringservicelocations No No No
peeringserviceproviders No No No
peeringservices No No No
Microsoft.PolicyInsights
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
policyevents No No No
policystates No No No
policytrackedresources No No No
remediations No No No
Microsoft.Portal
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
consoles No No No
usersettings No No No
Microsoft.PowerBI
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.PowerBIDedicated
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ProjectBabylon
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
Microsoft.Purview
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ProviderHub
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
availableaccounts No No No
providerregistrations No No No
rollouts No No No
Microsoft.Quantum
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
workspaces No No No
Microsoft.RecoveryServices
IMPORTANT
See Recovery Services move guidance.
See Continue backups in Recovery Services vault after moving resources across regions.
replicationeligibilityresults No No No
Microsoft.RedHatOpenShift
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
openshiftclusters No No No
Microsoft.Relay
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.ResourceGraph
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
resourcechangedetails No No No
resourcechanges No No No
resources No No No
resourceshistory No No No
subscriptionsstatus No No No
Microsoft.ResourceHealth
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
childresources No No No
emergingissues No No No
events No No No
metadata No No No
notifications No No No
Microsoft.Resources
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
deployments No No No
deploymentscripts No No Yes
Move Microsoft.Resources
resources to new region
deploymentscripts / logs No No No
links No No No
providers No No No
resourcegroups No No No
resources No No No
subscriptions No No No
tags No No No
templatespecs No No Yes
Move Microsoft.Resources
resources to new region
templatespecs / versions No No No
tenants No No No
Microsoft.SaaS
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
applications Yes No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
saasresources No No No
Microsoft.Search
IMPORTANT
You can't move several Search resources in different regions in one operation. Instead, move them in separate operations.
resourcehealthmetadata No No No
Microsoft.Security
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
adaptivenetworkhardenings No No No
advancedthreatprotectionse No No No
ttings
alerts No No No
allowedconnections No No No
applicationwhitelistings No No No
assessmentmetadata No No No
assessments No No No
autodismissalertsrules No No No
autoprovisioningsettings No No No
complianceresults No No No
compliances No No No
datacollectionagents No No No
devicesecuritygroups No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
discoveredsecuritysolutions No No No
externalsecuritysolutions No No No
informationprotectionpolicie No No No
s
iotsecuritysolutions / No No No
analyticsmodels
iotsecuritysolutions / No No No
analyticsmodels /
aggregatedalerts
iotsecuritysolutions / No No No
analyticsmodels /
aggregatedrecommendatio
ns
jitnetworkaccesspolicies No No No
policies No No No
pricings No No No
regulatorycompliancestanda No No No
rds
regulatorycompliancestanda No No No
rds /
regulatorycompliancecontro
ls
regulatorycompliancestanda No No No
rds /
regulatorycompliancecontro
ls /
regulatorycomplianceassess
ments
securitycontacts No No No
securitysolutions No No No
securitysolutionsreferenced No No No
ata
securitystatuses No No No
securitystatusessummaries No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
servervulnerabilityassessme No No No
nts
settings No No No
subassessments No No No
tasks No No No
topologies No No No
workspacesettings No No No
Microsoft.SecurityInsights
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
aggregations No No No
alertrules No No No
alertruletemplates No No No
automationrules No No No
bookmarks No No No
cases No No No
dataconnectors No No No
entities No No No
entityqueries No No No
incidents No No No
officeconsents No No No
settings No No No
threatintelligence No No No
Microsoft.SerialConsole
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
consoleservices No No No
Microsoft.ServerManagement
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
gateways No No No
nodes No No No
Microsoft.ServiceBus
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
premiummessagingregions No No No
sku No No No
Microsoft.ServiceFabric
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
applications No No No
containergroups No No No
containergroupsets No No No
edgeclusters No No No
managedclusters No No No
networks No No No
secretstores No No No
volumes No No No
Microsoft.ServiceFabricMesh
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
containergroups No No No
Microsoft.Services
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
rollouts No No No
Microsoft.SignalRService
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.SoftwarePlan
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
hybridusebenefits No No No
Microsoft.Solutions
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
applicationdefinitions No No No
applications No No No
jitrequests No No No
Microsoft.Sql
IMPORTANT
A database and server must be in the same resource group. When you move a SQL server, all its databases are also
moved. This behavior applies to Azure SQL Database and Azure Synapse Analytics databases.
instancepools No No No
managedinstances No No Yes
managedinstances / No No Yes
databases
virtualclusters No No No
Microsoft.SqlVirtualMachine
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Storage
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.StorageCache
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
caches No No No
Microsoft.StorageSync
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.StorageSyncDev
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
storagesyncservices No No No
Microsoft.StorageSyncInt
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
storagesyncservices No No No
Microsoft.StorSimple
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
managers No No No
Microsoft.StreamAnalytics
IMPORTANT
Stream Analytics jobs can't be moved when in running state.
clusters No No No
environments No No No
instances No No No
Microsoft.Subscription
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
subscriptions No No No
Microsoft.Support
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
services No No No
supporttickets No No No
Microsoft.Synapse
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
workspaces No No No
workspaces / bigdatapools No No No
workspaces / sqlpools No No No
Microsoft.TimeSeriesInsights
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
Microsoft.Token
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
imagetemplates No No No
Microsoft.VisualStudio
IMPORTANT
To change the subscription for Azure DevOps, see change the Azure subscription used for billing.
account No No No
account / extension No No No
account / project No No No
Microsoft.VMware
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
arczones No No No
resourcepools No No No
vcenters No No No
virtualmachines No No No
virtualmachinetemplates No No No
virtualnetworks No No No
Microsoft.VMwareCloudSimple
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
dedicatedcloudnodes No No No
dedicatedcloudservices No No No
virtualmachines No No No
Microsoft.VnfManager
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
devices No No No
vnfs No No No
Microsoft.VSOnline
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
accounts No No No
plans No No No
registeredsubscriptions No No No
Microsoft.Web
IMPORTANT
See App Service move guidance.
availablestacks No No No
billingmeters No No No
certificates No Yes No
certificates (managed) No No No
deletedsites No No No
deploymentlocations No No No
georegions No No No
hostingenvironments No No No
publishingusers No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
recommendations No No No
resourcehealthmetadata No No No
runtimes No No No
serverfarms / No No No
eventgridfilters
sourcecontrols No No No
staticsites No No No
Microsoft.WindowsESU
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
multipleactivationkeys No No No
Microsoft.WindowsIoT
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
deviceservices No No No
Microsoft.WorkloadBuilder
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
workloads No No No
Microsoft.WorkloadMonitor
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
components No No No
componentssummary No No No
monitorinstances No No No
RESO URC E T Y P E RESO URC E GRO UP SUB SC RIP T IO N REGIO N M O VE
monitorinstancessummary No No No
monitors No No No
Third-party services
Third-party services currently don't support the move operation.
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Learn more about the Resource Mover service.
To get the same data as a file of comma-separated values, download move-support-resources.csv for
resource group and subscription move support. If you want those properties and region move support,
download move-support-resources-with-regions.csv.
Move guidance for App Service resources
2/23/2022 • 2 minutes to read • Edit Online
This article describes the steps to move App Service resources. There are specific requirements for moving App
Service resources to a new subscription.
Select the option for recommended steps to move the web app.
You see the recommended actions to take before moving the resources. The information includes the original
resource group for the web app.
Move support
To determine which App Service resources can be moved, see move support status for:
Microsoft.AppService
Microsoft.CertificateRegistration
Microsoft.DomainRegistration
Microsoft.Web
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Move your Azure Automation account to another
subscription
2/23/2022 • 4 minutes to read • Edit Online
Azure Automation allows you to move some resources to a new resource group or subscription. You can move
resources through the Azure portal, PowerShell, the Azure CLI, or the REST API. To learn more about the process,
see Move resources to a new resource group or subscription.
The Automation account is one of the resources that you can move. In this article, you'll learn to move
Automation accounts to another resource or subscription. The high-level steps for moving your Automation
account are:
1. Disable your features.
2. Unlink your workspace.
3. Move the Automation account.
4. Delete and re-create the Run As accounts.
5. Re-enable your features.
Remove features
To unlink your workspace from your Automation account, you must remove the feature resources in your
workspace:
Change Tracking and Inventory
Update Management
Start/Stop VMs during off-hours
1. In the Azure portal, locate your resource group.
2. Find each feature, and select Delete on the Delete Resources page.
If you prefer, you can delete the resources by using the Remove-AzResource cmdlet:
$workspaceName = <myWorkspaceName>
$resourceGroupName = <myResourceGroup>
Remove-AzResource -ResourceType 'Microsoft.OperationsManagement/solutions' -ResourceName
"ChangeTracking($workspaceName)" -ResourceGroupName $resourceGroupName
Remove-AzResource -ResourceType 'Microsoft.OperationsManagement/solutions' -ResourceName
"Updates($workspaceName)" -ResourceGroupName $resourceGroupName
Remove-AzResource -ResourceType 'Microsoft.OperationsManagement/solutions' -ResourceName "Start-Stop-
VM($workspaceName)" -ResourceGroupName $resourceGroupName
NOTE
If you don't see any alert rules on the Rules page, change the Status field to Disabled to show disabled alerts.
4. When you remove the alert rules, you must remove the action group created for Start/Stop VMs during
off-hours notifications. In the Azure portal, select Monitor > Aler ts > Manage action groups .
5. Select Star tStop_VM_Notification .
6. On the action group page, select Delete .
If you prefer, you can delete your action group by using the Remove-AzActionGroup cmdlet:
2. Select the resources in your resource group that you want to move. Ensure that you include your
Automation account, runbooks, and Log Analytics workspace resources.
2. Delete the Run As accounts, one at a time, by selecting Delete on the Proper ties page.
NOTE
If you don't have permissions to create or view the Run As accounts, you see the following message:
You do not have permissions to create an Azure Run As account (service principal) and grant the
Contributor role to the service principal.
For more information, see Permissions required to configure Run As accounts.
3. After you've deleted the Run As accounts, select Create under Azure Run As account .
4. On the Add Azure Run As account page, select Create to create the Run As account and service principal.
5. Repeat the steps above with the Azure Classic Run As account.
Enable features
After you re-create the Run As accounts, you must re-enable the features that you removed before the move:
1. To turn on Change Tracking and Inventory, select Change Tracking and Inventor y in your Automation
account. Choose the Log Analytics workspace that you moved over, and select Enable .
2. Repeat step 1 for Update Management.
3. Machines that are enabled with your features are visible when you've connected the existing Log
Analytics workspace. To turn on the Start/Stop VMs during off-hours feature, you must re-enable it. Under
Related Resources , select Star t/Stop VMs > Learn more about and enable the solution >
Create to start the deployment.
4. On the Add Solution page, choose your Log Analytics workspace and Automation account.
Source control You can run a manual sync on your Source control integration
source control repository.
Change tracking and inventory Verify that you see current inventory Troubleshoot change tracking
data from your machines.
Update management Verify that you see your machines and Troubleshoot update management
that they're healthy.
Run a test software update
deployment.
Next steps
To learn about moving resources in Azure, see Move resources in Azure.
Move guidance for Classic deployment model
resources
2/23/2022 • 2 minutes to read • Edit Online
The steps to move resources deployed through the classic model differ based on whether you're moving the
resources within a subscription or to a new subscription.
POST
https://management.azure.com/subscriptions/{sourceSubscriptionId}/providers/Microsoft.ClassicCompute/
validateSubscriptionMoveAvailability?api-version=2016-04-01
{
"role": "source"
}
2. Check if the destination subscription can participate in a cross-subscription move. Use the following
operation:
POST
https://management.azure.com/subscriptions/{destinationSubscriptionId}/providers/Microsoft.ClassicCom
pute/validateSubscriptionMoveAvailability?api-version=2016-04-01
{
"role": "target"
}
POST https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.ClassicCompute/moveSubscriptionResources?api-version=2016-04-01
{
"target": "/subscriptions/{target-subscription-id}"
}
Next steps
If you have trouble moving classic resources, contact Support.
For commands to move resources, see Move resources to new resource group or subscription.
Move guidance for networking resources
2/23/2022 • 2 minutes to read • Edit Online
This article describes how to move virtual networks and other networking resources for specific scenarios.
During the move, your networking resources will operate without interruption.
Dependent resources
NOTE
Please note that VPN Gateways associated with Public IP Standard SKU addresses are not currently able to move between
resource groups or subscriptions.
When moving a resource, you must also move its dependent resources (for example - public IP addresses,
virtual network gateways, all associated connection resources). Local network gateways can be in a different
resource group.
To move a virtual machine with a network interface card to a new subscription, you must move all dependent
resources. Move the virtual network for the network interface card, all other network interface cards for the
virtual network, and the VPN gateways.
For more information, see Scenario for move across subscriptions.
Subnet links
You can't move a virtual network to a different subscription if the virtual network contains a subnet with
resource navigation links. For example, if an Azure Cache for Redis resource is deployed into a subnet, that
subnet has a resource navigation link.
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
Move a Recovery Services vault across Azure
Subscriptions and Resource Groups
2/23/2022 • 15 minutes to read • Edit Online
This article explains how to move a Recovery Services vault configured for Azure Backup across Azure
subscriptions, or to another resource group in the same subscription. You can use the Azure portal or
PowerShell to move a Recovery Services vault.
Supported regions
All public regions and sovereign regions are supported, except France South, France Central, Germany
Northeast and Germany Central.
If you've configured any VMs (Azure IaaS, Hyper-V, VMware) or physical machines for disaster recovery using Azure Site
Recover y , the move operation will be blocked. If you want to move vaults for Azure Site Recovery, review this article to
learn about moving vaults manually.
If you don't see the Essentials information for your vault, select the drop-down icon. You should now see
the Essentials information for your vault.
3. In the vault overview menu, select change next to the Resource group , to open the Move resources
pane.
4. In the Move resources pane, for the selected vault it's recommended to move the optional related
resources by selecting the checkbox as shown in the following image.
5. To add the target resource group, in the Resource group drop-down list, select an existing resource
group or select create a new group option.
6. After adding the resource group, confirm I understand that tools and scripts associated with
moved resources will not work until I update them to use new resource IDs option and then
select OK to complete moving the vault.
3. In the vault overview menu, select change next to Subscription , to open the Move resources pane.
4. Select the resources to be moved, here we recommend you to use the Select All option to select all the
listed optional resources.
5. Select the target subscription from the Subscription drop-down list, where you want the vault to be
moved.
6. To add the target resource group, in the Resource group drop-down list, select an existing resource
group or select create a new group option.
7. Select I understand that tools and scripts associated with moved resources will not work
until I update them to use new resource IDs option to confirm, and then select OK .
NOTE
Cross subscription backup (RS vault and protected VMs are in different subscriptions) isn't a supported scenario. Also,
storage redundancy option from local redundant storage (LRS) to global redundant storage (GRS) and vice versa can't be
modified during the vault move operation.
NOTE
Azure Backup currently doesn’t support the movement of backup data from one Recovery Services vault to another. To
protect your resource in the new region, the resource needs to be registered and backed up to a new/existing vault in
the new region. When moving your resources from one region to another, backup data in your existing Recovery
Services vaults in the older region can be retained/deleted based on your requirement. If you choose to retain data in
the old vaults, you will incur backup charges accordingly.
After resource move, to ensure continued security for backed-up resources in a vault that was configured with Multi-
User Authorization (MUA), the destination vault should be configured with MUA using a Resource Guard in the
destination region. This is because the Resource Guard and the vault must be located in the same region; therefore,
the Resource Guard for the source vault can't be used to enable MUA on the destination vault.
Back up Azure Virtual Machine after moving across regions
When an Azure Virtual Machine (VM) that’s been protected by a Recovery Services vault is moved from one
region to another, it can no longer be backed up to the older vault. The backups in the old vault will start failing
with the errors BCMV2VMNotFound or ResourceNotFound . For information on how to protect your VMs in
the new region, see the following sections.
Prepare to move Azure VMs
Before you move a VM, ensure the following prerequisites are met:
1. See the prerequisites associated with VM move and ensure that the VM is eligible for move.
2. Select the VM on the Backup Items tab of existing vault’s dashboard and select Stop protection followed
by retain/delete data as per your requirement. When the backup data for a VM is stopped with retain data,
the recovery points remain forever and don’t adhere to any policy. This ensures you always have your
backup data ready for restore.
NOTE
Retaining data in the older vault will incur backup charges. If you no longer wish to retain data to avoid billing, you
need to delete the retained backup data using the Delete data option.
3. Ensure that the VMs are turned on. All VMs’ disks that need to be available in the destination region are
attached and initialized in the VMs.
4. Ensure that VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To
do so:
On Windows VMs, install the latest Windows updates.
On Linux VMs, refer to distributor guidance to ensure that machines have the latest certificates and
CRL.
5. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs.
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Move Azure VMs
Move your VM to the new region using Azure Resource Mover.
Protect Azure VMs using Azure Backup
Start protecting your VM in a new or existing Recovery Services vault in the new region. When you need to
restore from your older backups, you can still do it from your old Recovery Services vault if you had chosen to
retain the backup data.
The above steps should help ensure that your resources are being backed up in the new region as well.
Back up Azure File Share after moving across regions
Azure Backup offers a snapshot management solution for your Azure Files today. This means, you don’t move
the file share data into the Recovery Services vaults. Also, as the snapshots don’t move with your Storage
Account, you’ll effectively have all your backups (snapshots) in the existing region only and protected by the
existing vault. However, if you move your Storage Accounts along with the file shares across regions or create
new file shares in the new region, see to the following sections to ensure that they are protected by Azure
Backup.
Prepare to move Azure File Share
Before you move the Storage Account, ensure the following prerequisites are met:
1. See the prerequisites to move Storage Account.
2. Export and modify a Resource Move template. For more information, see Prepare Storage Account for region
move.
Move Azure File Share
To move your Storage Accounts along with the Azure File Shares in them from one region to another, see Move
an Azure Storage account to another region.
NOTE
When Azure File Share is copied across regions, its associated snapshots don’t move along with it. In order to move the
snapshots data to the new region, you need to move the individual files and directories of the snapshots to the Storage
Account in the new region using AzCopy.
NOTE
Retaining data in the older vault will incur backup charges. If you no longer wish to retain data to avoid billing, you
need to delete the retained backup data using Delete data option.
3. Ensure that the VMs to be moved are turned on. All VMs disks that need to be available in the destination
region are attached and initialized in the VMs.
4. Ensure that VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To
do so:
On Windows VMs, install the latest Windows updates.
On Linux VMs, refer to the distributor guidance and ensure that machines have the latest certificates
and CRL.
5. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs.
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Move SQL Server/SAP HANA in Azure VM
Move your VM to the new region using Azure Resource Mover.
Protect SQL Server/SAP HANA in Azure VM using Azure Backup
Start protecting the VM in a new/existing Recovery Services vault in the new region. When you need to restore
from your older backups, you can still do it from your old Recovery Services vault.
The above steps should help ensure that your resources are being backed up in the new region as well.
$destinationRG = "<destinationResourceGroupName>"
$vault = Get-AzureRmRecoveryServicesVault -Name <vaultname> -ResourceGroupName <vaultRGname>
Move-AzureRmResource -DestinationResourceGroupName $destinationRG -ResourceId $vault.ID
After executing the above cmdlets, you'll be asked to confirm that you want to move the specified resources.
Type Y to confirm. After a successful validation, the resource moves.
Post migration
1. Set/verify the access controls for the resource groups.
2. The Backup reporting and monitoring feature needs to be configured again for the vault after the move
completes. The previous configuration will be lost during the move operation.
WARNING
The following operation is destructive and can't be undone. All backup data and backup items associated with the
protected server will be permanently deleted. Proceed with caution.
Next steps
You can move many different types of resources between resource groups and subscriptions.
For more information, see Move resources to new resource group or subscription.
Move guidance for virtual machines
2/23/2022 • 4 minutes to read • Edit Online
This article describes the scenarios that aren't currently supported and the steps to move virtual machines with
backup.
3. Either clone the OS disk to the destination subscription, or move the original disk after deleting the
virtual machine from source subscription.
4. In the destination subscription, accept the Marketplace terms for your plan. You can accept the terms by
running the following PowerShell command:
Azure CLI
PowerShell
Or, you can create a new instance of a virtual machine with the plan through the portal. You can delete
the virtual machine after accepting the terms in the new subscription.
5. In the destination subscription, recreate the virtual machine from the cloned OS disk using PowerShell,
CLI, or an Azure Resource Manager template. Include the marketplace plan that's attached to the disk. The
information about the plan should match the plan you purchased in the new subscription. For more
information, see Create the VM.
For more information, see Move a Marketplace Azure Virtual Machine to another subscription.
Azure CLI
PowerShell
Delete this resource. This operation deletes only the instant recovery points, not the backed-up data in
the vault.
Azure CLI
PowerShell
4. If you're moving all the virtual machines with back ups in this location, get the restore point collections
for those virtual machines.
Azure CLI
PowerShell
Delete each resource. This operation deletes only the instant recovery points, not the backed-up data in
the vault.
Azure CLI
PowerShell
Next steps
For commands to move resources, see Move resources to new resource group or subscription.
For information about moving Recovery Service vaults for backup, see Recovery Services limitations.
How to move Azure API Management across
regions
2/23/2022 • 2 minutes to read • Edit Online
This article describes how to move an API Management instance to a different Azure region. You might move
your instance to another region for many reasons. For example:
Locate your instance closer to your API consumers
Deploy features available in specific regions only
Meet internal policy and governance requirements
To move API Management instances from one Azure region to another, use the service's backup and restore
operations. You can use a different API Management instance name or the existing name.
NOTE
API Management also supports multi-region deployment, which distributes a single Azure API management service
across multiple Azure regions. Multi-region deployment helps reduce request latency perceived by geographically
distributed API consumers and improves service availability if one region goes offline.
Availability
IMPORTANT
This feature is available in the Premium , Standard , Basic, and Developer tiers of API Management.
Considerations
Choose the same API Management pricing tier in the source and target regions.
Backup and restore won't work when migrating between different cloud types. For that scenario, export the
resource as a template. Then, adapt the exported template for the target Azure region and re-create the
resource.
Prerequisites
Review requirements and limitations of the API Management backup and restore operations.
See What is not backed up. Record settings and data that you will need to recreate manually after moving the
instance.
Create a storage account in the source region. You will use this account to back up the source instance.
WARNING
This option deletes the original API Management instance and results in downtime during the migration. Ensure that you
have a valid backup before deleting the source instance.
Verify
1. Ensure that the restore operation completes successfully before accessing your API Management instance in
the target region.
2. Configure settings that are not automatically moved during the restore operation. Examples: virtual network
configuration, managed identities, developer portal content, and custom domain and custom CA certificates.
3. Access your API Management endpoints in the target region. For example, test your APIs, or access the
developer portal.
Next steps
For more information about the backup and restore feature, see how to implement disaster recovery.
For information on migrating Azure resources, see Azure cross-region migration guidance.
Optimize and save on your cloud spending.
Move an App Service resource to another region
2/23/2022 • 2 minutes to read • Edit Online
This article describes how to move App Service resources to a different Azure region. You might move your
resources to another region for a number of reasons. For example, to take advantage of a new Azure region, to
deploy features or services available in specific regions only, to meet internal policy and governance
requirements, or in response to capacity planning requirements.
App Service resources are region-specific and can't be moved across regions. You must create a copy of your
existing App Service resources in the target region, then move your content over to the new app. If your source
app uses a custom domain, you can migrate it to the new app in the target region when you're finished.
To make copying your app easier, you can clone an individual App Service app into an App Service plan in
another region, but it does have limitations, especially that it doesn't support Linux apps.
Prerequisites
Make sure that the App Service app is in the Azure region from which you want to move.
Make sure that the target region supports App Service and any related service, whose resources you want to
move.
Prepare
Identify all the App Service resources that you're currently using. For example:
App Service apps
App Service plans
Deployment slots
Custom domains purchased in Azure
TLS/SSL certificates
Azure Virtual Network integration
Hybrid connections.
Managed identities
Backup settings
Certain resources, such as imported certificates or hybrid connections, contain integration with other Azure
services. For information on how to move those resources across regions, see the documentation for the
respective services.
Move
1. Create a back up of the source app.
2. Create an app in a new App Service plan, in the target region.
3. Restore the back up in the target app
4. If you use a custom domain, bind it preemptively to the target app with awverify. and enable the domain in
the target app.
5. Configure everything else in your target app to be the same as the source app and verify your configuration.
6. When you're ready for the custom domain to point to the target app, remap the domain name.
Clean up source resources
Delete the source app and App Service plan. An App Service plan in the non-free tier carries a charge, even if no
app is running in it.
Next steps
Azure App Service App Cloning Using PowerShell
Management of Azure Automation data
2/23/2022 • 5 minutes to read • Edit Online
This article contains several topics explaining how data is protected and secured in an Azure Automation
environment.
Windows 8.0 - 10 Supported, and enabled by default. To confirm that you are still using the
default settings.
Windows Server 2012 - 2016 Supported, and enabled by default. To confirm that you are still using the
default settings
Windows 7 SP1 and Windows Server Supported, but not enabled by default. See the Transport Layer Security (TLS)
2008 R2 SP1 registry settings page for details on
how to enable.
Data retention
When you delete a resource in Azure Automation, it's retained for many days for auditing purposes before
permanent removal. You can't see or use the resource during this time. This policy also applies to resources that
belong to a deleted Automation account. The retention policy applies to all users and currently can't be
customized. However, if you need to keep data for a longer period, you can forward Azure Automation job data
to Azure Monitor logs.
The following table summarizes the retention policy for different resources.
DATA P O L IC Y
1The runbook can be recovered within the 30-day window by filing an Azure support incident with Microsoft
Azure Support. Go to the Azure support site and select Submit a suppor t request .
Data backup
When you delete an Automation account in Azure, all objects in the account are deleted. The objects include
runbooks, modules, configurations, settings, jobs, and assets. They can't be recovered after the account is
deleted. You can use the following information to back up the contents of your Automation account before
deleting it.
Runbooks
You can export your runbooks to script files using either the Azure portal or the Get-
AzureAutomationRunbookDefinition cmdlet in Windows PowerShell. You can import these script files into
another Automation account, as discussed in Manage runbooks in Azure Automation.
Integration modules
You can't export integration modules from Azure Automation, they have to be made available outside of the
Automation account.
Assets
You can't export Azure Automation assets: certificates, connections, credentials, schedules, and variables. Instead,
you can use the Azure portal and Azure cmdlets to note the details of these assets. Then use these details to
create any assets that are used by runbooks that you import into another Automation account.
You can't retrieve the values for encrypted variables or the password fields of credentials using cmdlets. If you
don't know these values, you can retrieve them in a runbook. For retrieving variable values, see Variable assets
in Azure Automation. To find out more about retrieving credential values, see Credential assets in Azure
Automation.
DSC configurations
You can export your DSC configurations to script files using either the Azure portal or the Export-
AzAutomationDscConfiguration cmdlet in Windows PowerShell. You can import and use these configurations in
another Automation account.
NOTE
Azure Automation stores customer data in the region selected by the customer. For the purpose of BCDR, for all regions
except Brazil South and Southeast Asia, Azure Automation data is stored in a different region (Azure paired region). Only
for the Brazil South (Sao Paulo State) region of Brazil geography and Southeast Asia region (Singapore) of the Asia Pacific
geography, we store Azure Automation data in the same region to accommodate data-residency requirements for these
regions.
The Automation geo-replication service isn't accessible directly to external customers if there is a regional
failure. If you want to maintain Automation configuration and runbooks during regional failures:
1. Select a secondary region to pair with the geographical region of your primary Automation account.
2. Create an Automation account in the secondary region.
3. In the primary account, export your runbooks as script files.
4. Import the runbooks to your Automation account in the secondary region.
Next steps
To learn more about secure assets in Azure Automation, see Encryption of secure assets in Azure
Automation.
To find out more about geo-replication, see Creating and using active geo-replication.
Back up resources in Recovery Services vault after
moving across regions
2/23/2022 • 6 minutes to read • Edit Online
Azure Resource Mover supports the movement of multiple resources across regions. While moving your
resources from one region to another, you can ensure that your resources stay protected. As Azure Backup
supports protection of several workloads, you may need to take some steps to continue having the same level
of protection in the new region.
To understand the detailed steps to achieve this, refer to the sections below.
NOTE
Azure Backup currently doesn’t support the movement of backup data from one Recovery Services vault to another. To
protect your resource in the new region, the resource needs to be registered and backed up to a new/existing vault in the
new region. When moving your resources from one region to another, backup data in your existing Recovery Services
vaults in the older region can be retained/deleted based on your requirement. If you choose to retain data in the old
vaults, you will incur backup charges accordingly.
NOTE
Retaining data in the older vault will incur backup charges. If you no longer wish to retain data to avoid billing, you
need to delete the retained backup data using the Delete data option.
3. Ensure that the VMs are turned on. All VMs’ disks that need to be available in the destination region are
attached and initialized in the VMs.
4. Ensure that VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To
do so:
On Windows VMs, install the latest Windows updates.
On Linux VMs, refer to distributor guidance to ensure that machines have the latest certificates and
CRL.
5. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs.
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Move Azure VMs
Move your VM to the new region using Azure Resource Mover.
Protect Azure VMs using Azure Backup
Start protecting your VM in a new or existing Recovery Services vault in the new region. When you need to
restore from your older backups, you can still do it from your old Recovery Services vault if you had chosen to
retain the backup data.
The above steps should help ensure that your resources are being backed up in the new region as well.
NOTE
When Azure File Share is copied across regions, its associated snapshots don’t move along with it. In order to move the
snapshots data to the new region, you need to move the individual files and directories of the snapshots to the Storage
Account in the new region using AzCopy.
NOTE
Retaining data in the older vault will incur backup charges. If you no longer wish to retain data to avoid billing, you
need to delete the retained backup data using Delete data option.
3. Ensure that the VMs to be moved are turned on. All VMs disks that need to be available in the destination
region are attached and initialized in the VMs.
4. Ensure that VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To
do so:
On Windows VMs, install the latest Windows updates.
On Linux VMs, refer to the distributor guidance and ensure that machines have the latest certificates
and CRL.
5. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs.
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Move SQL Server/SAP HANA in Azure VM
Move your VM to the new region using Azure Resource Mover.
Protect SQL Server/SAP HANA in Azure VM using Azure Backup
Start protecting the VM in a new/existing Recovery Services vault in the new region. When you need to restore
from your older backups, you can still do it from your old Recovery Services vault.
The above steps should help ensure that your resources are being backed up in the new region as well.
Move an Azure Batch account to another region
2/23/2022 • 4 minutes to read • Edit Online
There are scenarios where you might want to move an existing Azure Batch account from one region to another.
For example, you might want to move for disaster recovery planning. This article explains how to move a Batch
account between regions using the Azure portal.
Moving Batch accounts directly from one region to another isn't possible. You can use an Azure Resource
Manager template (ARM template) to export the existing configuration of your Batch account instead. Then,
stage the resource in another region. First, export the Batch account to a template. Next, modify the parameters
to match the destination region. Deploy the modified template to the new region. Last, recreate jobs and other
features in the account.
For more information on Resource Manager and templates, see Quickstart: Create and deploy Azure Resource
Manager templates by using the Azure portal.
Prerequisites
Make sure that the services and features that your Batch account uses are supported in the new target
region.
It's recommended to move the storage account associated with your Batch account to the new target region.
Follow the steps in Move an Azure Storage account to another region. If you prefer, you can leave the storage
account in the original region. Typically, performance is better when your storage account is in the same
region as your Batch account. This article assumes you've already migrated your storage account.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"batchAccounts_mysourceaccount_name": {
"defaultValue": "mytargetaccount",
"type": "String"
}
},
8. Next, update the defaultValue of the storage account with your migrated storage account's resource ID.
To get this value, navigate to the storage account in the Azure portal, select JSON View near the top fo
the screen, and then copy the value shown under Resource ID . This example uses the resource ID for a
storage account named mytargetstorageaccount in the resource group mytargetresourcegroup .
"storageAccounts_mysourcestorageaccount_externalid": {
"defaultValue":
"/subscriptions/{subscriptionID}/resourceGroups/mytargetresourcegroup/providers/Microsoft.Storage/sto
rageAccounts/mytargetstorageaccount",
"type": "String"
}
},
9. Finally, edit the location property to use your target region. This example sets the target region to
centralus .
{
"resources": [
{
"type": "Microsoft.Batch/batchAccounts",
"apiVersion": "2021-01-01",
"name": "[parameters('batchAccounts_mysourceaccount_name')]",
"location": "centralus",
To obtain region location codes, see Azure Locations. The code for a region is the region name with no spaces.
For example, Central US = centralus .
Discard or clean up
Confirm that your new Batch account is successfully working in the new region. Also make sure to restore the
necessary features. Then, you can delete the source Batch account.
1. In the Azure portal, expand the menu on the left side to open the menu of services, and choose Batch
accounts .
2. Locate the Batch account to delete, and right-click the More button (...) on the right side of the listing. Be
sure that you're selecting the original source Batch account, not the new one you created.
3. Select Delete , then confirm.
Next steps
Learn more about moving resources to a new resource group or subscription.
Learn how to move Azure VMs to another region.
Move your Azure Cognitive Search service to
another Azure region
2/23/2022 • 2 minutes to read • Edit Online
Occasionally, customers ask about moving a search service to another region. Currently, there is no built-in
mechanism or tooling to help with that task, but this article can help you understand the manual steps for
recreating indexes and other objects on a new search service in a different region.
NOTE
In the Azure portal, all services have an Expor t template command. In the case of Azure Cognitive Search, this
command produces a basic definition of a service (name, location, tier, replica, and partition count), but does not
recognize the content of your service, nor does it carry over keys, roles, or logs. Although the command exists, we don't
recommend using it for moving a search service.
Prerequisites
Ensure that the services and features that your account uses are supported in the target region.
For preview features, ensure that your subscription is approved for the target region.
Discard or clean up
Delete the old service once the new service is fully tested and operational. Deleting the service automatically
deletes all content associated with the service.
Next steps
The following links can help you locate more information when completing the steps outlined above.
Azure Cognitive Search pricing and regions
Choose a tier
Create a search service
Load search documents
Enable logging
Move an Azure Cosmos DB account to another
region
2/23/2022 • 2 minutes to read • Edit Online
APPLIES TO: SQL API Cassandra API Gremlin API Table API Azure Cosmos DB API for
MongoDB
This article describes how to either:
Move a region where data is replicated in Azure Cosmos DB.
Migrate account (Azure Resource Manager) metadata and data from one region to another.
NOTE
If you perform a failover operation or add/remove a new region while an asynchronous throughput scaling operation is in
progress, the throughput scale-up operation will be paused. It will resume automatically when the failover or add/remove
region operation is complete.
Next steps
For more information and examples on how to manage the Azure Cosmos account as well as databases and
containers, read the following articles:
Manage an Azure Cosmos account
Change feed in Azure Cosmos DB
Move an Azure Database for MariaDB server to
another region by using the Azure portal
2/23/2022 • 2 minutes to read • Edit Online
There are various scenarios for moving an existing Azure Database for MariaDB server from one region to
another. For example, you might want to move a production server to another region as part of your disaster
recovery planning.
You can use an Azure Database for MariaDB cross-region read replica to complete the move to another region.
To do so, first create a read replica in the target region. Next, stop replication to the read replica server to make it
a standalone server that accepts both read and write traffic.
NOTE
This article focuses on moving your server to a different region. If you want to move your server to a different resource
group or subscription, refer to the move article.
Prerequisites
The read replica feature is only available for Azure Database for MariaDB servers in the General Purpose
or Memory Optimized pricing tiers. Ensure the source server is in one of these pricing tiers.
Make sure that your Azure Database for MariaDB source server is in the Azure region that you want to
move from.
Prepare to move
To create a cross-region read replica server in the target region using the Azure portal, use the following steps:
1. Sign into the Azure portal.
2. Select the existing Azure Database for MariaDB server that you want to use as the source server. This action
opens the Over view page.
3. Select Replication from the menu, under SETTINGS .
4. Select Add Replica .
5. Enter a name for the replica server.
6. Select the location for the replica server. The default location is the same as the source server's. Verify that
you've selected the target location where you want the replica to be deployed.
7. Select OK to confirm creation of the replica. During replica creation, data is copied from the source server to
the replica. Create time may last several minutes or more, in proportion to the size of the source server.
NOTE
When you create a replica, it doesn't inherit the VNet service endpoints of the source server. These rules must be set up
independently for the replica.
Move
IMPORTANT
The standalone server can't be made into a replica again. Before you stop replication on a read replica, ensure the replica
has all the data that you require.
Stopping replication to the replica server, causes it to become a standalone server. To stop replication to the
replica from the Azure portal, use the following steps:
1. Once the replica has been created, locate and select your Azure Database for MariaDB source server.
2. Select Replication from the menu, under SETTINGS .
3. Select the replica server.
4. Select Stop replication .
5. Confirm you want to stop replication by clicking OK .
Next steps
In this tutorial, you moved an Azure Database for MariaDB server from one region to another by using the
Azure portal and then cleaned up the unneeded source resources.
Learn more about read replicas
Learn more about managing read replicas in the Azure portal
Learn more about business continuity options
Move an Azure Database for MySQL server to
another region by using the Azure portal
2/23/2022 • 2 minutes to read • Edit Online
NOTE
This article focuses on moving your server to a different region. If you want to move your server to a different resource
group or subscription, refer to the move article.
Prerequisites
The read replica feature is only available for Azure Database for MySQL servers in the General Purpose or
Memory Optimized pricing tiers. Ensure the source server is in one of these pricing tiers.
Make sure that your Azure Database for MySQL source server is in the Azure region that you want to
move from.
Prepare to move
To create a cross-region read replica server in the target region using the Azure portal, use the following steps:
1. Sign into the Azure portal.
2. Select the existing Azure Database for MySQL server that you want to use as the source server. This action
opens the Over view page.
3. Select Replication from the menu, under SETTINGS .
4. Select Add Replica .
5. Enter a name for the replica server.
6. Select the location for the replica server. The default location is the same as the source server's. Verify that
you've selected the target location where you want the replica to be deployed.
7. Select OK to confirm creation of the replica. During replica creation, data is copied from the source server to
the replica. Create time may last several minutes or more, in proportion to the size of the source server.
NOTE
When you create a replica, it doesn't inherit the VNet service endpoints of the source server. These rules must be set up
independently for the replica.
Move
IMPORTANT
The standalone server can't be made into a replica again. Before you stop replication on a read replica, ensure the replica
has all the data that you require.
Stopping replication to the replica server, causes it to become a standalone server. To stop replication to the
replica from the Azure portal, use the following steps:
1. Once the replica has been created, locate and select your Azure Database for MySQL source server.
2. Select Replication from the menu, under SETTINGS .
3. Select the replica server.
4. Select Stop replication .
5. Confirm you want to stop replication by clicking OK .
Next steps
In this tutorial, you moved an Azure Database for MySQL server from one region to another by using the Azure
portal and then cleaned up the unneeded source resources.
Learn more about read replicas
Learn more about managing read replicas in the Azure portal
Learn more about business continuity options
Move an Azure Database for Azure Database for
PostgreSQL - Single Server to another region by
using the Azure portal
2/23/2022 • 3 minutes to read • Edit Online
There are various scenarios for moving an existing Azure Database for PostgreSQL server from one region to
another. For example, you might want to move a production server to another region as part of your disaster
recovery planning.
You can use an Azure Database for PostgreSQL cross-region read replica to complete the move to another
region. To do so, first create a read replica in the target region. Next, stop replication to the read replica server to
make it a standalone server that accepts both read and write traffic.
NOTE
This article focuses on moving your server to a different region. If you want to move your server to a different resource
group or subscription, refer to the move article.
Prerequisites
The cross-region read replica feature is only available for Azure Database for PostgreSQL - Single Server
in the General Purpose or Memory Optimized pricing tiers. Ensure the source server is in one of these
pricing tiers.
Make sure that your Azure Database for PostgreSQL source server is in the Azure region that you want to
move from.
Prepare to move
To prepare the source server for replication using the Azure portal, use the following steps:
1. Sign into the Azure portal.
2. Select the existing Azure Database for PostgreSQL server that you want to use as the source server. This
action opens the Over view page.
3. From the server's menu, select Replication . If Azure replication support is set to at least Replica , you can
create read replicas.
4. If Azure replication support is not set to at least Replica , set it. Select Save .
5. Restart the server to apply the change by selecting Yes .
6. You will receive two Azure portal notifications once the operation is complete. There is one notification for
updating the server parameter. There is another notification for the server restart that follows immediately.
7. Refresh the Azure portal page to update the Replication toolbar. You can now create read replicas for this
server.
To create a cross-region read replica server in the target region using the Azure portal, use the following steps:
1. Select the existing Azure Database for PostgreSQL server that you want to use as the source server.
2. Select Replication from the menu, under SETTINGS .
3. Select Add Replica .
4. Enter a name for the replica server.
5. Select the location for the replica server. The default location is the same as the primary server's. Verify that
you've selected the target location where you want the replica to be deployed.
6. Select OK to confirm creation of the replica. During replica creation, data is copied from the source server to
the replica. Create time may last several minutes or more, in proportion to the size of the source server.
NOTE
When you create a replica, it doesn't inherit the firewall rules and VNet service endpoints of the primary server. These
rules must be set up independently for the replica.
Move
IMPORTANT
The standalone server can't be made into a replica again. Before you stop replication on a read replica, ensure the replica
has all the data that you require.
To stop replication to the replica from the Azure portal, use the following steps:
1. Once the replica has been created, locate and select your Azure Database for PostgreSQL source server.
2. Select Replication from the menu, under SETTINGS .
3. Select the replica server.
4. Select Stop replication .
5. Confirm you want to stop replication by clicking OK .
Next steps
In this tutorial, you moved an Azure Database for PostgreSQL server from one region to another by using the
Azure portal and then cleaned up the unneeded source resources.
Learn more about read replicas
Learn more about managing read replicas in the Azure portal
Learn more about business continuity options
Move an Azure Event Hubs namespace to another
region
2/23/2022 • 4 minutes to read • Edit Online
This article shows you how to export an Azure Resource Manager template for an existing Event Hubs
namespace and then use the template to create a namespace with same configuration settings in another
region. However, this process doesn't move events that aren't processed yet. You need to process the events
from the original namespace before deleting it.
If you have other resources in the Azure resource group that contains the Event Hubs namespace, you may want
to export the template at the resource group level so that all related resources can be moved to the new region
in one step. The steps in this article show you how to export a namespace to the template. The steps for
exporting a resource group to the template are similar.
Prerequisites
Ensure that the services and features that your account uses are supported in the target region.
If you have capture feature enabled for event hubs in the namespace, move Azure Storage or Azure Data
Lake Store Gen 2 or Azure Data Lake Store Gen 1 accounts before moving the Event Hubs namespace. You
can also move the resource group that contains both Storage and Event Hubs namespaces to the other
region by following steps similar to the ones described in this article.
If the Event Hubs namespace is in an Event Hubs cluster , move the dedicated cluster to the target region
before you go through steps in this article. You can also use the quickstart template on GitHub to create an
Event Hubs cluster. In the template, remove the namespace portion of the JSON to create only the cluster.
Prepare
To get started, export a Resource Manager template. This template contains settings that describe your Event
Hubs namespace.
1. Sign in to the Azure portal.
2. Select All resources and then select your Event Hubs namespace.
3. On the Event Hubs Namespace page, select Expor t template under Automation in the left menu.
4. Choose Download in the Expor t template page.
5. Locate the .zip file that you downloaded from the portal, and unzip that file to a folder of your choice.
This zip file contains the .json files that include the template and scripts to deploy the template.
Move
Deploy the template to create an Event Hubs namespace in the target region.
1. In the Azure portal, select Create a resource .
2. In Search the Marketplace , type template deployment , and select Template deployment (deploy
using custom templates) .
3. Select Build your own template in the editor .
4. Select Load file , and then follow the instructions to load the template.json file that you downloaded in the
last section.
5. Update the value of the location property to point to the new region. To obtain location codes, see Azure
locations. The code for a region is the region name with no spaces, for example, West US is equal to westus .
6. Select Save to save the template.
7. On the Custom deployment page, follow these steps:
a. Select an Azure subscription .
b. Select an existing resource group or create one. If the source namespace was in an Event Hubs
cluster, select the resource group that contains cluster in the target region.
c. Select the target location or region. If you selected an existing resource group, this setting is read-
only.
d. In the SETTINGS section, do the following steps:
a. Enter the new namespace name .
b. If your source namespace was in an Event Hubs cluster , enter names of resource group
and Event Hubs cluster as part of external ID .
c. If event hub in your namespace uses a Storage account for capturing events, specify the
resource group name and the storage account for
StorageAccounts_<original storage account name>_external field.
/subscriptions/0000000000-0000-0000-0000-0000000000000/resourceGroups/<STORAGE'S
RESOURCE GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE ACCOUNT NAME>
Discard or clean up
After the deployment, if you want to start over, you can delete the target Event Hubs namespace , and repeat
the steps described in the Prepare and Move sections of this article.
To commit the changes and complete the move of an Event Hubs namespace, delete the Event Hubs
namespace in the original region. Make sure that you processed all the events in the namespace before
deleting the namespace.
To delete an Event Hubs namespace (source or target) by using the Azure portal:
1. In the search window at the top of Azure portal, type Event Hubs , and select Event Hubs from search
results. You see the Event Hubs namespaces in a list.
2. Select the target namespace to delete, and select Delete from the toolbar.
3. On the Delete Namespace page, confirm the deletion by typing the namespace name , and then select
Delete .
Next steps
In this tutorial, you moved an Azure Event Hubs namespace from one region to another and cleaned up the
source resources. To learn more about moving resources between regions and disaster recovery in Azure, refer
to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
Move your function app between regions in Azure
Functions
2/23/2022 • 3 minutes to read • Edit Online
This article describes how to move Azure Functions resources to a different Azure region. You might move your
resources to another region for one of the following reasons:
Take advantage of a new Azure region
Deploy features or services that are available only in specific regions
Meet internal policy and governance requirements
Respond to capacity planning requirements
Azure Functions resources are region-specific and can't be moved across regions. You must create a copy of
your existing function app resources in the target region, then redeploy your functions code over to the new
app.
If minimal downtime is a requirement, consider running your function app in both regions to implement a
disaster recovery architecture:
Azure Functions geo-disaster recovery
Disaster recovery and geo-distribution in Azure Durable Functions
Prerequisites
Make sure that the target region supports Azure Functions and any related service whose resources you
want to move
Have access to the original source code for the functions you're migrating
Prepare
Identify all the function app resources used on the source region, which may include the following:
Function app
Hosting plan
Deployment slots
Custom domains purchased in Azure
TLS/SSL certificates and settings
Configured networking options
Managed identities
Configured application settings - users with the enough access can copy all the source application settings by
using the Advanced Edit feature in the portal
Scaling configurations
Your functions may connect to other resources by using triggers or bindings. For information on how to move
those resources across regions, see the documentation for the respective services.
You should be able to also export a template from existing resources.
Move
Deploy the function app to the target region and review the configured resources.
Redeploy function app
If you have access to the deployment and automation resources that created the function app in the source
region, re-run the same deployment steps in the target region to create and redeploy your app.
If you only have access to the source code but not the deployment and automation resources you can deploy
and configure the function app on the target region using any of the available deployment technologies or using
one of the continuous deployment methods.
Review configured resources
Review and configure the resources identified in the Prepare step above in the target region if they weren't
configured during the deploy.
Move considerations
If your deployment resources and automation doesn't create a function app, create an app of the same type
in a new hosting plan in the target region
Function app names are globally unique in Azure, so the app in the target region can't have the same name
as the one in the source region
References and application settings that connect your function app to dependencies need to be reviewed and,
when needed, updated. For example, when you move a database that your functions call, you must also
update the application settings or configuration to connect to the database in the target region. Some
application settings such as the Application Insights instrumentation key or the Azure storage account used
by the function app can be already be configured on the target region and do not need to be updated
Remember to verify your configuration and test your functions in the target region
If you had custom domain configured, remap the domain name
For Functions running on Dedicated plans also review the App Service Migration Plan in case the plan is
shared with web apps
Next steps
Review the Azure Architecture Center for examples of Azure Functions running in multiple regions as part of
more advanced solution architectures
How to clone an Azure IoT hub to another region
2/23/2022 • 24 minutes to read • Edit Online
This article explores ways to clone an IoT Hub and provides some questions you need to answer before you
start. Here are several reasons you might want to clone an IoT hub:
You are moving your company from one region to another, such as from Europe to North America (or
vice versa), and you want your resources and data to be geographically close to your new location, so you
need to move your hub.
You are setting up a hub for a development versus production environment.
You want to do a custom implementation of multi-hub high availability. For more information, see the
How to achieve cross region HA section of IoT Hub high availability and disaster recovery.
You want to increase the number of partitions configured for your hub. This is set when you first create
your hub, and can't be changed. You can use the information in this article to clone your hub and when
the clone is created, increase the number of partitions.
To clone a hub, you need a subscription with administrative access to the original hub. You can put the new hub
in a new resource group and region, in the same subscription as the original hub, or even in a new subscription.
You just can't use the same name because the hub name has to be globally unique.
NOTE
At this time, there's no feature available for cloning an IoT hub automatically. It's primarily a manual process, and thus is
fairly error-prone. The complexity of cloning a hub is directly proportional to the complexity of the hub. For example,
cloning an IoT hub with no message routing is fairly simple. If you add message routing as just one complexity, cloning
the hub becomes at least an order of magnitude more complicated. If you also move the resources used for routing
endpoints, it's another order of magniture more complicated.
Things to consider
There are several things to consider before cloning an IoT hub.
Make sure that all of the features available in the original location are also available in the new location.
Some services are in preview, and not all features are available everywhere.
Do not remove the original resources before creating and verifying the cloned version. Once you remove
a hub, it's gone forever, and there is no way to recover it to check the settings or data to make sure the
hub is replicated correctly.
Many resources require globally unique names, so you must use different names for the cloned versions.
You also should use a different name for the resource group to which the cloned hub belongs.
Data for the original IoT hub is not migrated. This includes telemetry messages, cloud-to-device (C2D)
commands, and job-related information such as schedules and history. Metrics and logging results are
also not migrated.
For data or messages routed to Azure Storage, you can leave the data in the original storage account,
transfer that data to a new storage account in the new region, or leave the old data in place and create a
new storage account in the new location for the new data. For more information on moving data in Blob
storage, see Get started with AzCopy.
Data for Event Hubs and for Service Bus Topics and Queues can't be migrated. This is point-in-time data
and is not stored after the messages are processed.
You need to schedule downtime for the migration. Cloning the devices to the new hub takes time. If you
are using the Import/Export method, benchmark testing has revealed that it could take around two hours
to move 500,000 devices, and four hours to move a million devices.
You can copy the devices to the new hub without shutting down or changing the devices.
If the devices were originally provisioned using DPS, re-provisioning them updates the connection
information stored in each device.
Otherwise, you have to use the Import/Export method to move the devices, and then the devices
have to be modified to use the new hub. For example, you can set up your device to consume the
IoT Hub host name from the twin desired properties. The device will take that IoT Hub host name,
disconnect the device from the old hub, and reconnect it to the new one.
You need to update any certificates you are using so you can use them with the new resources. Also, you
probably have the hub defined in a DNS table somewhere — you will need to update that DNS
information.
Methodology
This is the general method we recommend for moving an IoT hub from one region to another. For message
routing, this assumes the resources are not being moved to the new region. For more information, see the
section on Message Routing.
1. Export the hub and its settings to a Resource Manager template.
2. Make the necessary changes to the template, such as updating all occurrences of the name and the
location for the cloned hub. For any resources in the template used for message routing endpoints,
update the key in the template for that resource.
3. Import the template into a new resource group in the new location. This creates the clone.
4. Debug as needed.
5. Add anything that wasn't exported to the template.
For example, consumer groups are not exported to the template. You need to add the consumer groups
to the template manually or use the Azure portal after the hub is created. There is an example of adding
one consumer group to a template in the article Use an Azure Resource Manager template to configure
IoT Hub message routing.
6. Copy the devices from the original hub to the clone. This is covered in the section Managing the devices
registered to the IoT hub.
4. Select Download to download the template. Save the file somewhere you can find it again.
View the template
1. Go to the Downloads folder (or to whichever folder you used when you exported the template) and find
the zip file. Extract the zip file and find the file called template.json . Select and copy it. Go to a different
folder and paste the template file (Ctrl+V). Now you can edit it.
The following example is for a generic hub with no routing configuration. It is an S1 tier hub (with 1 unit)
called ContosoHub in region westus . Here is the exported template.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"IotHubs_ContosoHub_connectionString": {
"type": "SecureString"
},
"IotHubs_ContosoHub_containerName": {
"type": "SecureString"
},
"IotHubs_ContosoHub_name": {
"defaultValue": "ContosoHub",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Devices/IotHubs",
"apiVersion": "2021-07-01",
"name": "[parameters('IotHubs_ContosoHub_name')]",
"location": "westus",
"sku": {
"name": "S1",
"tier": "Standard",
"capacity": 1
},
"identity": {
"type": "None"
},
"properties": {
"ipFilterRules": [],
"eventHubEndpoints": {
"events": {
"retentionTimeInDays": 1,
"retentionTimeInDays": 1,
"partitionCount": 4
}
},
"routing": {
"endpoints": {
"serviceBusQueues": [],
"serviceBusTopics": [],
"eventHubs": [],
"storageContainers": []
},
"routes": [],
"fallbackRoute": {
"name": "$fallback",
"source": "DeviceMessages",
"condition": "true",
"endpointNames": [
"events"
],
"isEnabled": true
}
},
"storageEndpoints": {
"$default": {
"sasTtlAsIso8601": "PT1H",
"connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
"containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
}
},
"messagingEndpoints": {
"fileNotifications": {
"lockDurationAsIso8601": "PT1M",
"ttlAsIso8601": "PT1H",
"maxDeliveryCount": 10
}
},
"enableFileUploadNotifications": false,
"cloudToDevice": {
"maxDeliveryCount": 10,
"defaultTtlAsIso8601": "PT1H",
"feedback": {
"lockDurationAsIso8601": "PT1M",
"ttlAsIso8601": "PT1H",
"maxDeliveryCount": 10
}
},
"features": "None",
"disableLocalAuth": false,
"allowedFqdnList": []
}
}
]
}
"properties": {
...
"storageEndpoints": {
"$default": {
"sasTtlAsIso8601": "PT1H",
"connectionString": "[parameters('IotHubs_ContosoHub_connectionString')]",
"containerName": "[parameters('IotHubs_ContosoHub_containerName')]"
}
},
...
"location": "westus",
New version:
"location": "eastus",
Update the keys for the routing resources that are not being moved
When you export the Resource Manager template for a hub that has routing configured, you will see that the
keys for those resources are not provided in the exported template -- their placement is denoted by asterisks.
You must fill them in by going to those resources in the portal and retrieving the keys before you import the
new hub's template and create the hub.
1. Retrieve the keys required for any of the routing resources and put them in the template. You can retrieve
the key(s) from the resource in the Azure portal.
For example, if you are routing messages to a storage container, find the storage account in the portal.
Under the Settings section, select Access keys , then copy one of the keys. Here's what the key looks like
when you first export the template:
"connectionString": "DefaultEndpointsProtocol=https;
AccountName=fabrikamstorage1234;AccountKey=****",
"containerName": "fabrikamresults",
2. After you retrieve the account key for the storage account, put it in the template in the clause
AccountKey=**** in the place of the asterisks.
3. For service bus queues, get the Shared Access Key matching the SharedAccessKeyName. Here is the key
and the SharedAccessKeyName in the json:
"connectionString": "Endpoint=sb://fabrikamsbnamespace1234.servicebus.windows.net:5671/;
SharedAccessKeyName=iothubroutes_FabrikamResources;
SharedAccessKey=****;
EntityPath=fabrikamsbqueue1234",
4. The same applies for the Service Bus Topics and Event Hub connections.
Create the new routing resources in the new location
This section only applies if you are moving the resources used by the hub for the routing endpoints.
If you want to move the routing resources, you must manually set up the resources in the new location. You can
create the routing resources using the Azure portal, or by exporting the Resource Manager template for each of
the resources used by the message routing, editing them, and importing them. After the resources are set up,
you can import the hub's template (which includes the routing configuration).
1. Create each resource used by the routing. You can do this manually using the Azure portal, or create the
resources using Resource Manager templates. If you want to use templates, these are the steps to follow:
a. For each resource used by the routing, export it to a Resource Manager template.
b. Update the name and location of the resource.
c. Update any cross-references between the resources. For example, if you create a template for a
new storage account, you need to update the storage account name in that template and any other
template that references it. In most cases, the routing section in the template for the hub is the
only other template that references the resource.
d. Import each of the templates, which deploys each resource.
Once the resources used by the routing are set up and running, you can continue.
2. In the template for the IoT hub, change the name of each of the routing resources to its new name, and
update the location if needed.
Now you have a template that will create a new hub that looks almost exactly like the old hub, depending on
how you decided to handle the routing.
Move -- create the new hub in the new region by loading the
template
Create the new hub in the new location using the template. If you have routing resources that are going to
move, the resources should be set up in the new location and the references in the template updated to match. If
you are not moving the routing resources, they should be in the template with the updated keys.
1. Sign into the Azure portal.
2. Select Create a resource .
3. In the search box, type "template deployment" and select Enter.
4. Select template deployment (deploy using custom templates) . This takes you to a screen for the
Template deployment. Select Create . You see this screen:
5. Select Build your own template in the editor , which enables you to upload your template from a file.
6. Select Load file .
7. Browse for the new template you edited and select it, then select Open . It loads your template in the edit
window. Select Save .
8. Fill in the following fields on the custom deployment page.
Subscription : Select the subscription to use.
Resource group : Create a new resource group in a new location. If you already have one set up, you can
select it instead of creating a new one.
Region : If you selected an existing resource group, the region is filled in for you to match the location of
the resource group. If you created a new resource group, this will be its location.
Connection string : Fill in the connection string for your hub.
Hub name : Give the new hub in the new region a name.
9. Select the Review + create button.
10. Select the Create button. The portal validates your template and deploys your cloned hub. If you have
routing configuration data, it will be included in the new hub, but will point at the resources in the prior
location.
Managing the devices registered to the IoT hub
Now that you have your clone up and running, you need to copy all of the devices from the original hub to the
clone.
There are multiple ways to accomplish this. You either originally used Device Provisioning Service (DPS)to
provision the devices, or you didn't. If you did, this is not difficult. If you did not, this can be very complicated.
If you did not use DPS to provision your devices, you can skip the next section and start with Using
Import/Export to move the devices to the new hub.
// Add 1000 devices, don't copy them to the other hub, or delete them.
// The first argument is true, numToAdd is 50, and the other arguments are false.
dotnet run true 1000 false false false
// Copy the devices you just added to the other hub; don't delete anything.
// The first argument is false, numToAdd is 0, copy-devices is true, and the delete arguments are both
false
dotnet run false 0 true false false
4. For the IoT hub connection strings, go to each hub in the portal. You can search in Resources for the hub.
If you know the Resource Group, you can go to Resource groups , select your resource group, and then
select the hub from the list of assets in that resource group.
5. Select Shared access policies from the Settings for the hub, then select iothubowner and copy one of
the connection strings. Do the same for the destination hub. Add them to the appropriate SET commands.
6. For the storage account connection string, find the storage account in Resources or under its Resource
group and open it.
7. Under the Settings section, select Access keys and copy one of the connection strings. Put the
connection string in your text file for the appropriate SET command.
Now you have the environment variables in a file with the SET commands, and you know what your command-
line arguments are. Let's run the sample.
Running the sample application and using command-line arguments
1. Open a command prompt window. Select Windows and type in command prompt to get the command
prompt window.
2. Copy the commands that set the environment variables, one at a time, and paste them into the command
prompt window and select Enter. When you're finished, type SET in the command prompt window to see
your environment variables and their values. Once you've copied these into the command prompt
window, you don't have to copy them again, unless you open a new command prompt window.
3. In the command prompt window, change directories until you are in ./ImportExportDevicesSample
(where the ImportExportDevicesSample.csproj file exists). Then type the following, and include your
command-line arguments.
The dotnet command builds and runs the application. Because you are passing in the options when you
run the application, you can change the values of them each time you run the application. For example,
you may want to run it once and create new devices, then run it again and copy those devices to a new
hub, and so on. You can also perform all the steps in the same run, although we recommend not deleting
any devices until you are certain you are finished with the cloning. Here is an example that creates 1000
devices and then copies them to the other hub.
// Add 1000 devices, don't copy them to the other hub or delete them.
dotnet run true 1000 false false false
// Do not add any devices. Copy the ones you just created to the other hub; don't delete anything.
dotnet run false 0 true false false
After you verify that the devices were copied successfully, you can remove the devices from the source
hub like this:
IoTHubServiceSamples.sln
2. Right-click on the project ImportExportDevicesSample and select Set as star tup project .
3. Set the variables at the top of Program.cs in the ImportExportDevicesSample folder for the five options.
// Add randomly created devices to the source hub.
private static bool addDevices = true;
//If you ask to add devices, this will be the number added.
private static int numToAdd = 0;
// Copy the devices from the source hub to the destination hub.
private static bool copyDevices = false;
// Delete all of the devices from the source hub. (It uses the IoTHubConnectionString).
private static bool deleteSourceDevices = false;
// Delete all of the devices from the destination hub. (Uses the DestIotHubConnectionString).
private static bool deleteDestDevices = false;
4. Select F5 to run the application. After it finishes running, you can view the results.
View the results
You can view the devices in the Azure portal and verify they are in the new location.
1. Go to the new hub using the Azure portal. Select your hub, then select IoT Devices . You see the devices
you just copied from the old hub to the cloned hub. You can also view the properties for the cloned hub.
2. Check for import/export errors by going to the Azure storage account in the Azure portal and looking in
the devicefiles container for the ImportErrors.log . If this file is empty (the size is 0), there were no
errors. If you try to import the same device more than once, it rejects the device the second time and
adds an error message to the log file.
Committing the changes
At this point, you have copied your hub to the new location and migrated the devices to the new clone. Now you
need to make changes so the devices work with the cloned hub.
To commit the changes, here are the steps you need to perform:
Update each device to change the IoT Hub host name to point the IoT Hub host name to the new hub. You
should do this using the same method you used when you first provisioned the device.
Change any applications you have that refer to the old hub to point to the new hub.
After you're finished, the new hub should be up and running. The old hub should have no active devices
and be in a disconnected state.
Rolling back the changes
If you decide to roll back the changes, here are the steps to perform:
Update each device to change the IoT Hub Hostname to point the IoT Hub Hostname for the old hub. You
should do this using the same method you used when you first provisioned the device.
Change any applications you have that refer to the new hub to point to the old hub. For example, if you
are using Azure Analytics, you may need to reconfigure your Azure Stream Analytics input.
Delete the new hub.
If you have routing resources, the configuration on the old hub should still point to the correct routing
configuration, and should work with those resources after the hub is restarted.
Checking the results
To check the results, change your IoT solution to point to your hub in the new location and run it. In other words,
perform the same actions with the new hub that you performed with the previous hub and make sure they work
correctly.
If you have implemented routing, test and make sure your messages are routed to the resources correctly.
Clean-up
Don't clean up until you are really certain the new hub is up and running and the devices are working correctly.
Also be sure to test the routing if you are using that feature. When you're ready, clean up the old resources by
performing these steps:
If you haven't already, delete the old hub. This removes all of the active devices from the hub.
If you have routing resources that you moved to the new location, you can delete the old routing
resources.
Next steps
You have cloned an IoT hub into a new hub in a new region, complete with the devices. For more information
about performing bulk operations against the identity registry in an IoT Hub, see Import and export IoT Hub
device identities in bulk.
For more information about IoT Hub and development for the hub, please see the following articles.
IoT Hub developer's guide
IoT Hub routing tutorial
IoT Hub device management overview
If you want to deploy the sample application, please see .NET Core application deployment.
Move Microsoft.Resources resources to new region
2/23/2022 • 2 minutes to read • Edit Online
You may need to move an existing resource to a new region. This article shows how to move two resource types
- templateSpecs and deploymentScripts - that are in the Microsoft.Resources namespace.
Export-AzTemplateSpec `
-ResourceGroupName demoRG `
-Name demoTemplateSpec `
-Version 1.0 `
-OutputFolder c:\export
az template-specs export \
--resource-group demoRG \
--name demoTemplateSpec \
--version 1.0 \
--output-folder c:\export
2. Use the exported template spec to create a new template spec. The following examples show westus for
the new region but you can provide the region you want.
For Azure PowerShell, use:
New-AzTemplateSpec `
-Name movedTemplateSpec `
-Version 1.0 `
-ResourceGroupName newRG `
-Location westus `
-TemplateJsonFile c:\export\1.0.json
az template-specs create \
--name movedTemplateSpec \
--version "1.0" \
--resource-group newRG \
--location "westus" \
--template-file "c:\export\demoTemplateSpec.json"
"location": "westus2",
Change the template to allow a parameter for setting the location. For more information, see Set resource
location in ARM template
"location": "[parameters('location')]",
5. Deploy the exported template and specify a new region for the deployment script.
Next steps
To learn about moving resources to a new resource group or subscription, see Move resources to a new
resource group or subscription.
To learn about moving resources to a new region, see Move resources across regions.
Move an Azure Storage account to another region
2/23/2022 • 5 minutes to read • Edit Online
To move a storage account, create a copy of your storage account in another region. Then, move your data to
that account by using AzCopy, or another tool of your choice.
In this article, you'll learn how to:
Export a template.
Modify the template by adding the target region and storage account name.
Deploy the template to create the new storage account.
Configure the new storage account.
Move data to the new storage account.
Delete the resources in the source region.
Prerequisites
Ensure that the services and features that your account uses are supported in the target region.
For preview features, ensure that your subscription is allowlisted for the target region.
Prepare
To get started, export, and then modify a Resource Manager template.
Export a template
This template contains settings that describe your storage account.
Portal
PowerShell
4. Select Create .
5. Select Build your own template in the editor .
6. Select Load file , and then follow the instructions to load the template.json file that you downloaded in
the last section.
7. In the template.json file, name the target storage account by setting the default value of the storage
account name. This example sets the default value of the storage account name to mytargetaccount .
"$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"storageAccounts_mysourceaccount_name": {
"defaultValue": "mytargetaccount",
"type": "String"
}
},
8. Edit the location property in the template.json file to the target region. This example sets the target
region to centralus .
"resources": [{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2019-04-01",
"name": "[parameters('storageAccounts_mysourceaccount_name')]",
"location": "centralus"
}]
To obtain region location codes, see Azure Locations. The code for a region is the region name with no
spaces, Central US = centralus .
Move
Deploy the template to create a new storage account in the target region.
Portal
PowerShell
Aler ts Create, view, and manage activity log alerts by using Azure
Monitor
Content Deliver y Network (CDN) Use Azure CDN to access blobs with custom domains over
HTTPS
NOTE
If you set up a CDN for the source storage account, just change the origin of your existing CDN to the primary blob
service endpoint (or the primary static website endpoint) of your new account.
Discard or clean up
After the deployment, if you want to start over, you can delete the target storage account, and repeat the steps
described in the Prepare and Move sections of this article.
To commit the changes and complete the move of a storage account, delete the source storage account.
Portal
PowerShell
Next steps
In this tutorial, you moved an Azure storage account from one region to another and cleaned up the source
resources. To learn more about moving resources between regions and disaster recovery in Azure, refer to:
Move resources to a new resource group or subscription
Move Azure VMs to another region
Move resources to new region - Azure SQL
Database & Azure SQL Managed Instance
2/23/2022 • 10 minutes to read • Edit Online
Overview
There are various scenarios in which you'd want to move your existing database or managed instance from one
region to another. For example, you're expanding your business to a new region and want to optimize it for the
new customer base. Or you need to move the operations to a different region for compliance reasons. Or Azure
released a new region that provides a better proximity and improves the customer experience.
This article provides a general workflow for moving resources to a different region. The workflow consists of the
following steps:
1. Verify the prerequisites for the move.
2. Prepare to move the resources in scope.
3. Monitor the preparation process.
4. Test the move process.
5. Initiate the actual move.
6. Remove the resources from the source region.
NOTE
This article applies to migrations within the Azure public cloud or within the same sovereign cloud.
NOTE
To move Azure SQL databases and elastic pools to a different Azure region, you can also use Azure Resource Mover (in
preview). Refer this tutorial for detailed steps to do the same.
NOTE
This article uses the Azure Az PowerShell module, which is the recommended PowerShell module for interacting with
Azure. To get started with the Az PowerShell module, see Install Azure PowerShell. To learn how to migrate to the Az
PowerShell module, see Migrate Azure PowerShell from AzureRM to Az.
Move a database
Verify prerequisites
1. Create a target server for each source server.
2. Configure the firewall with the right exceptions by using PowerShell.
3. Configure the servers with the correct logins. If you're not the subscription administrator or SQL server
administrator, work with the administrator to assign the permissions that you need. For more
information, see How to manage Azure SQL Database security after disaster recovery.
4. If your databases are encrypted with transparent data encryption (TDE) and bring your own encryption
key (BYOK or Customer-Managed Key) in Azure Key Vault, ensure that the correct encryption material is
provisioned in the target regions.
The simplest way to do this is to add the encryption key from the existing key vault (that is being used
as TDE Protector on source server) to the target server and then set the key as the TDE Protector on
the target server
NOTE
A server or managed instance in one region can now be connected to a key vault in any other region.
As a best practice to ensure the target server has access to older encryption keys (required for
restoring database backups), run the Get-AzSqlServerKeyVaultKey cmdlet on the source server or Get-
AzSqlInstanceKeyVaultKey cmdlet on the source managed instance to return the list of available keys
and add those keys to the target server.
For more information and best practices on configuring customer-managed TDE on the target server,
see Azure SQL transparent data encryption with customer-managed keys in Azure Key Vault.
To move the key vault to the new region, see Move an Azure key vault across regions
5. If database-level audit is enabled, disable it and enable server-level auditing instead. After failover,
database-level auditing will require the cross-region traffic, which isn't desired or possible after the move.
6. For server-level audits, ensure that:
The storage container, Log Analytics, or event hub with the existing audit logs is moved to the target
region.
Auditing is configured on the target server. For more information, see Get started with SQL Database
auditing.
7. If your instance has a long-term retention policy (LTR), the existing LTR backups will remain associated
with the current server. Because the target server is different, you'll be able to access the older LTR
backups in the source region by using the source server, even if the server is deleted.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require
moving the LTR backups to the target server, which is not currently supported.
Prepare resources
1. Create a failover group between the server of the source and the server of the target.
2. Add the databases you want to move to the failover group.
Replication of all added databases will be initiated automatically. For more information, see Best practices
for using failover groups with single databases.
Monitor the preparation process
You can periodically call Get-AzSqlDatabaseFailoverGroup to monitor replication of your databases from the
source to the target. The output object of Get-AzSqlDatabaseFailoverGroup includes a property for the
ReplicationState :
ReplicationState = 2 (CATCH_UP) indicates the database is synchronized and can be safely failed over.
ReplicationState = 0 (SEEDING) indicates that the database is not yet seeded, and an attempt to fail over
will fail.
Test synchronization
After ReplicationState is 2, connect to each database or subset of databases using the secondary endpoint
<fog-name>.secondary.database.windows.net and perform any query against the databases to ensure connectivity,
proper security configuration, and data replication.
Initiate the move
1. Connect to the target server using the secondary endpoint <fog-name>.secondary.database.windows.net .
2. Use Switch-AzSqlDatabaseFailoverGroup to switch the secondary managed instance to be the primary with
full synchronization. This operation will succeed or it will roll back.
3. Verify that the command has completed successfully by using
nslook up <fog-name>.secondary.database.windows.net to ascertain that the DNS CNAME entry points to the
target region IP address. If the switch command fails, the CNAME won't be updated.
Remove the source databases
Once the move completes, remove the resources in the source region to avoid unnecessary charges.
1. Delete the failover group using Remove-AzSqlDatabaseFailoverGroup.
2. Delete each source database using Remove-AzSqlDatabase for each of the databases on the source server.
This will automatically terminate geo-replication links.
3. Delete the source server using Remove-AzSqlServer.
4. Remove the key vault, audit storage containers, event hub, Azure Active Directory (Azure AD) instance, and
other dependent resources to stop being billed for them.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require
moving the LTR backups to the target server, which is not currently supported.
Prepare to move
1. Create a separate failover group between each elastic pool on the source server and its counterpart
elastic pool on the target server.
2. Add all the databases in the pool to the failover group.
Replication of the added databases will be initiated automatically. For more information, see Best
practices for failover groups with elastic pools.
NOTE
While it is possible to create a failover group that includes multiple elastic pools, we strongly recommend that you
create a separate failover group for each pool. If you have a large number of databases across multiple elastic
pools that you need to move, you can run the preparation steps in parallel and then initiate the move step in
parallel. This process will scale better and will take less time compared to having multiple elastic pools in the same
failover group.
NOTE
This will be insufficient for moving between the sovereign cloud and a public region. Such a migration will require moving
the LTR backups to the target instance, which is not currently supported.
Prepare resources
Create a failover group between each source managed instance and the corresponding target instance of SQL
Managed Instance.
Replication of all databases on each instance will be initiated automatically. For more information, see Auto-
failover groups.
Monitor the preparation process
You can periodically call Get-AzSqlDatabaseFailoverGroup to monitor replication of your databases from the
source to the target. The output object of Get-AzSqlDatabaseFailoverGroup includes a property for the
ReplicationState :
ReplicationState = 2 (CATCH_UP) indicates the database is synchronized and can be safely failed over.
ReplicationState = 0 (SEEDING) indicates that the database isn't yet seeded, and an attempt to fail over will
fail.
Test synchronization
Once ReplicationState is , connect to each database, or subset of databases using the secondary endpoint
2
<fog-name>.secondary.database.windows.net and perform any query against the databases to ensure connectivity,
proper security configuration, and data replication.
Initiate the move
1. Connect to the target managed instance by using the secondary endpoint
<fog-name>.secondary.database.windows.net .
2. Use Switch-AzSqlDatabaseFailoverGroup to switch the secondary managed instance to be the primary with
full synchronization. This operation will succeed, or it will roll back.
3. Verify that the command has completed successfully by using
nslook up <fog-name>.secondary.database.windows.net to ascertain that the DNS CNAME entry points to the
target region IP address. If the switch command fails, the CNAME won't be updated.
Remove the source managed instances
Once the move finishes, remove the resources in the source region to avoid unnecessary charges.
1. Delete the failover group using Remove-AzSqlDatabaseFailoverGroup. This will drop the failover group
configuration and terminate geo-replication links between the two instances.
2. Delete the source managed instance using Remove-AzSqlInstance.
3. Remove any additional resources in the resource group, such as the virtual cluster, virtual network, and
security group.
Next steps
Manage your database after it has been migrated.
Tutorial: Move Azure VMs across regions
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move Azure VMs, and related network/storage resources, to a different Azure region,
using Azure Resource Mover. .
In this tutorial, you learn how to:
Check prerequisites and requirements.
Select the resources you want to move.
Resolve resource dependencies.
Prepare and move the source resource group.
Prepare and move the other resources.
Decide whether you want to discard or commit the move.
Optionally remove resources in the source region after the move.
NOTE
Tutorials show the quickest path for trying out a scenario, and use default options.
If you don't have an Azure subscription, create a free account before you begin. Then sign in to the Azure portal.
Prerequisites
REQ UIREM EN T DESC RIP T IO N
Resource Mover suppor t Review supported regions and other common questions.
VM suppor t Check that the VMs you want to move are supported.
Destination region charges Verify pricing and charges associated with the target region
to which you're moving VMs. Use the pricing calculator to
help you.
Prepare VMs
1. After checking that VMs meet requirements, make sure that VMs you want to move are turned on. All VMs
disks that you want to be available in the destination region must be attached and initialized in the VM.
2. Make sure VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To do
this:
On Windows VMs, install the latest Windows updates.
On Linux VMs, follow distributor guidance so that machines have the latest certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Select resources
Select resources you want to move.
All supported resource types in resource groups within the selected source region are displayed.
Resources that have already been added for moving across regions aren't shown.
You move resources to a target region in the same subscription as the source region. If you want to change
the subscription, you can do that after the resources are moved.
1. In the Azure portal, search for resource mover. Then, under Ser vices , select Azure Resource Mover .
Resolve dependencies
1. If resources show a Validate dependencies message in the Issues column, click the Validate
dependencies button. The validation process begins.
2. If dependencies are found, click Add dependencies .
3. In Add dependencies , leave the default Show all dependencies option.
Show all dependencies iterates through all of the direct and indirect dependencies for a resource. For
example, for a VM it shows the NIC, virtual network, network security groups (NSGs) etc.
Show first level dependencies only shows only direct dependencies. For example, for a VM it shows
the NIC, but not the virtual network.
4. Select the dependent resources you want to add > Add dependencies . Monitor progress in the
notifications.
NOTE
After preparing the resource group, it's in the Initiate move pending state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
4. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, to replicate them.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
After moving resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
After discarding resources, VMs are in an Initiate move pending state.
NOTE
A few resources, for example key vaults and SQL Server servers, can't be deleted from the portal, and must be deleted
from the resource property page.
1. In Across Regions , click the name of the source resource that you want to delete.
2. Select Delete source .
Next steps
In this tutorial, you:
Moved Azure VMs to another Azure region.
Moved resources associated with VMs to another region.
Now, trying moving Azure SQL databases and elastic pools to another region.
Move Azure SQL resources
Move logic app resources to other Azure resource
groups, regions, or subscriptions
2/23/2022 • 6 minutes to read • Edit Online
To migrate your logic app or related resources to another Azure resource group, region, or subscription, you
have various ways to complete these tasks, such as the Azure portal, Azure PowerShell, Azure CLI, and REST API.
Before you move resources, review these considerations:
You can move only specific logic app resource types between Azure resource groups or subscriptions.
Check the limits on the number of logic app resources that you can have in your Azure subscription and
in each Azure region. These limits affect whether you can move specific resource types when the region
stays the same across subscriptions or resource groups. For example, you can have only one Free tier
integration account for each Azure region in each Azure subscription.
When you move resources, Azure creates new resource IDs. So, make sure that you use the new IDs
instead and update any scripts or tools that are associated with the moved resources.
After you migrate logic apps between subscriptions, resource groups, or regions, you must recreate or
reauthorize any connections that require Open Authentication (OAuth).
You can move an integration service environment (ISE) only to another resource group that exists in the
same Azure region or Azure subscription. You can't move an ISE to a resource group that exists in a
different Azure region or Azure subscription. Also, after such a move, you must update all references to
the ISE in your logic app workflows, integration accounts, connections, and so on.
Prerequisites
The same Azure subscription that was used to create the logic app or integration account that you want
to move
Resource owner permissions to move and set up the resources that you want. Learn more about Azure
role-based access control (Azure RBAC).
Next steps
Move Azure resources to new resource groups or subscriptions
Move a Maintenance Control configuration to
another region
2/23/2022 • 2 minutes to read • Edit Online
Applies to: ✔
️ Linux VMs ✔
️ Windows VMs ✔
️ Flexible scale sets ✔
️ Uniform scale sets
Follow this article to move a Maintenance Control configuration to a different Azure region. You might want to
move a configuration for a number of reasons. For example, to take advantage of a new region, to deploy
features or services available in a specific region, to meet internal policy and governance requirements, or in
response to capacity planning.
Maintenance control, with customized maintenance configurations, allows you to control how platform updates
are applied to VMs, and to Azure Dedicated Hosts. There are a couple of scenarios for moving maintenance
control across regions:
To move your maintenance control configuration, but not the resources associated with the configuration,
follow the instructions in this article.
To move the resources associated with a maintenance configuration, but not the configuration itself, follow
these instructions.
To move both the maintenance configuration and the resources associated with it, first follow the instructions
in this article. Then, follow these instructions.
Prerequisites
Before you begin moving a maintenance control configuration:
Maintenance configurations are associated with Azure VMs or Azure Dedicated Hosts. Make sure that
VM/host resources exist in the new region before you begin.
Identify:
Existing maintenance control configurations.
The resource groups in which existing configurations currently reside.
The resource groups to which the configurations will be added after moving to the new region.
The resources associated with the maintenance configuration you want to move.
Check that the resources in the new region are the same as those associated with the current
maintenance configurations. The configurations can have the same names in the new region as they
did in the old, but this isn't required.
2. Review the returned table list of configuration records within the subscription. Here's an example. Your list
will contain values for your specific environment.
NAME LO C AT IO N RESO URC E GRO UP
3. Save your list for reference. As you move the configurations, it helps you to verify that everything's been
moved.
4. As a reference, map each configuration/resource group to the new resource group in the new region.
5. Create new maintenance configurations in the new region using PowerShell, or CLI.
6. Associate the configurations with the resources in the new region, using PowerShell, or CLI.
Next steps
Follow these instructions if you need to move resources associated with maintenance configurations.
Move Azure Cache for Redis instances to different
regions
2/23/2022 • 11 minutes to read • Edit Online
In this article, you learn how to move Azure Cache for Redis instances to a different Azure region. You might
move your resources to another region for a number of reasons:
To take advantage of a new Azure region.
To deploy features or services available in specific regions only.
To meet internal policy and governance requirements.
To respond to capacity planning requirements.
If you're looking to migrate to Azure Cache for Redis from on-premises, cloud-based VMs, or another hosting
service, we recommend you see Migrate to Azure Cache for Redis.
The tier of Azure Cache for Redis you use determines the option that's best for you.
C A C H E T IER O P T IO N S
Enterprise or Enterprise Flash Create a new cache or export and import data with an RDB
file, or migrate programmatically
Geo-replication (Premium)
Prerequisites
To configure geo-replication between two caches, the following prerequisites must be met:
Both caches are Premium tier caches.
Both caches are in the same Azure subscription.
The secondary linked cache is either the same cache size or a larger cache size than the primary linked cache.
Both caches already exist and are running.
Prepare
To move your cache instance to another region, you need to create a second premium cache instance in the
desired region. Once both caches are running, you can set up geo-replication between the two cache instances.
NOTE
Data transfer between Azure regions is charged at standard bandwidth rates.
You can also start the linking process or view details about the secondary cache by using the context
menu.
3. Select Link to link the two caches together and begin the replication process.
Verify
1. You can view the progress of the replication process using Geo-replication on the left.
You can also view the linking status on the left, using Over view , for both the primary and secondary
caches.
Once the replication process is complete, the Link status changes to Succeeded .
The primary linked cache remains available for use during the linking process. The secondary linked
cache isn't available until the linking process completes.
Clean up source resources
Once your new cache in the targeted region is populated with all necessary data, remove the link between the
two caches and delete the original instance.
1. To remove the link between two caches and stop geo-replication, click Unlink caches from the Geo-
replication on the left.
When the unlinking process completes, the secondary cache is available for both reads and writes.
NOTE
When the geo-replication link is removed, the replicated data from the primary linked cache remains in the secondary
cache.
3. On the New Redis Cache page, configure the settings for your new cache.
Subscription Drop down and select your The subscription under which to
subscription. create this new Azure Cache for
Redis instance.
Resource group Drop down and select a resource Name for the resource group in
group, or select Create new and which to create your cache and
enter a new resource group name. other resources. By putting all your
app resources in one resource
group, you can easily manage or
delete them together.
DNS name Enter a unique name. The cache name must be a string
between 1 and 63 characters that
contain only numbers, letters, or
hyphens. The name must start and
end with a number or letter, and
can't contain consecutive hyphens.
Your cache instance's host name will
be <DNS
name>.redis.cache.windows.net.
Location Drop down and select a location. Select a region near other services
that will use your cache.
Cache type Drop down and select a tier. The tier determines the size,
performance, and features that are
available for the cache. For more
information, see Azure Cache for
Redis Overview.
4. Select the Networking tab or select the Networking button at the bottom of the page.
5. In the Networking tab, select your connectivity method.
6. Select the Next: Advanced tab or select the Next: Advanced button on the bottom of the page.
7. In the Advanced tab for a basic or standard cache instance, select the enable toggle if you want to enable
a non-TLS port. You can also select which Redis version you would like use, either 4 or 6.
8. In the Advanced tab for premium cache instance, configure the settings for non-TLS port, clustering, and
data persistence. You can also select which Redis version you would like use, either 4 or 6.
9. Select the Next: Tags tab or select the Next: Tags button at the bottom of the page.
10. Optionally, in the Tags tab, enter the name and value if you wish to categorize the resource.
11. Select Review + create . You're taken to the Review + create tab where Azure validates your
configuration.
12. After the green Validation passed message appears, select Create .
It takes a while for the cache to create. You can monitor progress on the Azure Cache for Redis Over view page.
When Status shows as Running , the cache is ready to use.
Finally, update your application to use the new instances.
Clean up source resources
Once your new cache in the targeted region is running, delete the original instance.
IMPORTANT
RDB file format can change between Redis versions and might not maintain backward-compatibility. The Redis version of
the cache you're exporting from should be the same or lower than the version of your new cache instance.
Prerequisites
Both caches are Premium tier or Enterprise tier caches.
The second cache is either the same cache size or a larger cache size than the original cache.
The Redis version of the cache you're exporting from should be the same or lower than the version of your
new cache instance.
Prepare
To move your cache instance to another region, you'll need to create a second premium cache instance or a
second enterprise cache instance in the desired region.
Move
1. See here for more information on how to import and export data in Azure Cache for Redis.
2. Update your application to use the new cache instance.
Verify
You can monitor the progress of the import operation by following the notifications from the Azure portal, or by
viewing the events in the audit log.
Clean up source resources
Once your new cache in the targeted region is running, delete the original instance.
NOTE
This tool isn't officially supported by Microsoft.
Prerequisites
The second cache is either the same cache size or a larger cache size than the original cache.
Prepare
Create a VM in the region where the existing cache is located. If your dataset is large, choose a relatively
powerful VM to reduce copying time.
To move your cache instance to another region, you'll need to create a second cache instance in the desired
region.
Move
After creating a VM in the region where the existing cache is located and creating a new cache in the desired
region, the general steps to implement this option are:
1. Flush data from the new cache to ensure that it's empty. This step is required because the copy tool itself
doesn't overwrite any existing key in the target cache.
IMPORTANT
Make sure to NOT flush from the source cache.
2. Use an application such as the open-source tool above to automate the copying of data from the source
cache to the target. Remember that the copy process could take a while to complete depending on the
size of your dataset.
Clean up source resources
Once your new cache in the targeted region is running, delete the original instance.
Next steps
Learn more about Azure Cache for Redis features.
Geo-replication FAQ
Azure Cache for Redis service tiers
High availability for Azure Cache for Redis
Tutorial: Move Azure VMs across regions
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move Azure VMs, and related network/storage resources, to a different Azure region,
using Azure Resource Mover. .
In this tutorial, you learn how to:
Check prerequisites and requirements.
Select the resources you want to move.
Resolve resource dependencies.
Prepare and move the source resource group.
Prepare and move the other resources.
Decide whether you want to discard or commit the move.
Optionally remove resources in the source region after the move.
NOTE
Tutorials show the quickest path for trying out a scenario, and use default options.
If you don't have an Azure subscription, create a free account before you begin. Then sign in to the Azure portal.
Prerequisites
REQ UIREM EN T DESC RIP T IO N
Resource Mover suppor t Review supported regions and other common questions.
VM suppor t Check that the VMs you want to move are supported.
Destination region charges Verify pricing and charges associated with the target region
to which you're moving VMs. Use the pricing calculator to
help you.
Prepare VMs
1. After checking that VMs meet requirements, make sure that VMs you want to move are turned on. All VMs
disks that you want to be available in the destination region must be attached and initialized in the VM.
2. Make sure VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To do
this:
On Windows VMs, install the latest Windows updates.
On Linux VMs, follow distributor guidance so that machines have the latest certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Select resources
Select resources you want to move.
All supported resource types in resource groups within the selected source region are displayed.
Resources that have already been added for moving across regions aren't shown.
You move resources to a target region in the same subscription as the source region. If you want to change
the subscription, you can do that after the resources are moved.
1. In the Azure portal, search for resource mover. Then, under Ser vices , select Azure Resource Mover .
Resolve dependencies
1. If resources show a Validate dependencies message in the Issues column, click the Validate
dependencies button. The validation process begins.
2. If dependencies are found, click Add dependencies .
3. In Add dependencies , leave the default Show all dependencies option.
Show all dependencies iterates through all of the direct and indirect dependencies for a resource. For
example, for a VM it shows the NIC, virtual network, network security groups (NSGs) etc.
Show first level dependencies only shows only direct dependencies. For example, for a VM it shows
the NIC, but not the virtual network.
4. Select the dependent resources you want to add > Add dependencies . Monitor progress in the
notifications.
NOTE
After preparing the resource group, it's in the Initiate move pending state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
4. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, to replicate them.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
After moving resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
After discarding resources, VMs are in an Initiate move pending state.
NOTE
A few resources, for example key vaults and SQL Server servers, can't be deleted from the portal, and must be deleted
from the resource property page.
1. In Across Regions , click the name of the source resource that you want to delete.
2. Select Delete source .
Next steps
In this tutorial, you:
Moved Azure VMs to another Azure region.
Moved resources associated with VMs to another region.
Now, trying moving Azure SQL databases and elastic pools to another region.
Move Azure SQL resources
Tutorial: Move Azure VMs across regions
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move Azure VMs, and related network/storage resources, to a different Azure region,
using Azure Resource Mover. .
In this tutorial, you learn how to:
Check prerequisites and requirements.
Select the resources you want to move.
Resolve resource dependencies.
Prepare and move the source resource group.
Prepare and move the other resources.
Decide whether you want to discard or commit the move.
Optionally remove resources in the source region after the move.
NOTE
Tutorials show the quickest path for trying out a scenario, and use default options.
If you don't have an Azure subscription, create a free account before you begin. Then sign in to the Azure portal.
Prerequisites
REQ UIREM EN T DESC RIP T IO N
Resource Mover suppor t Review supported regions and other common questions.
VM suppor t Check that the VMs you want to move are supported.
Destination region charges Verify pricing and charges associated with the target region
to which you're moving VMs. Use the pricing calculator to
help you.
Prepare VMs
1. After checking that VMs meet requirements, make sure that VMs you want to move are turned on. All VMs
disks that you want to be available in the destination region must be attached and initialized in the VM.
2. Make sure VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To do
this:
On Windows VMs, install the latest Windows updates.
On Linux VMs, follow distributor guidance so that machines have the latest certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Select resources
Select resources you want to move.
All supported resource types in resource groups within the selected source region are displayed.
Resources that have already been added for moving across regions aren't shown.
You move resources to a target region in the same subscription as the source region. If you want to change
the subscription, you can do that after the resources are moved.
1. In the Azure portal, search for resource mover. Then, under Ser vices , select Azure Resource Mover .
Resolve dependencies
1. If resources show a Validate dependencies message in the Issues column, click the Validate
dependencies button. The validation process begins.
2. If dependencies are found, click Add dependencies .
3. In Add dependencies , leave the default Show all dependencies option.
Show all dependencies iterates through all of the direct and indirect dependencies for a resource. For
example, for a VM it shows the NIC, virtual network, network security groups (NSGs) etc.
Show first level dependencies only shows only direct dependencies. For example, for a VM it shows
the NIC, but not the virtual network.
4. Select the dependent resources you want to add > Add dependencies . Monitor progress in the
notifications.
NOTE
After preparing the resource group, it's in the Initiate move pending state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
4. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, to replicate them.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
After moving resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
After discarding resources, VMs are in an Initiate move pending state.
NOTE
A few resources, for example key vaults and SQL Server servers, can't be deleted from the portal, and must be deleted
from the resource property page.
1. In Across Regions , click the name of the source resource that you want to delete.
2. Select Delete source .
Next steps
In this tutorial, you:
Moved Azure VMs to another Azure region.
Moved resources associated with VMs to another region.
Now, trying moving Azure SQL databases and elastic pools to another region.
Move Azure SQL resources
Tutorial: Move Azure VMs across regions
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move Azure VMs, and related network/storage resources, to a different Azure region,
using Azure Resource Mover. .
In this tutorial, you learn how to:
Check prerequisites and requirements.
Select the resources you want to move.
Resolve resource dependencies.
Prepare and move the source resource group.
Prepare and move the other resources.
Decide whether you want to discard or commit the move.
Optionally remove resources in the source region after the move.
NOTE
Tutorials show the quickest path for trying out a scenario, and use default options.
If you don't have an Azure subscription, create a free account before you begin. Then sign in to the Azure portal.
Prerequisites
REQ UIREM EN T DESC RIP T IO N
Resource Mover suppor t Review supported regions and other common questions.
VM suppor t Check that the VMs you want to move are supported.
Destination region charges Verify pricing and charges associated with the target region
to which you're moving VMs. Use the pricing calculator to
help you.
Prepare VMs
1. After checking that VMs meet requirements, make sure that VMs you want to move are turned on. All VMs
disks that you want to be available in the destination region must be attached and initialized in the VM.
2. Make sure VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To do
this:
On Windows VMs, install the latest Windows updates.
On Linux VMs, follow distributor guidance so that machines have the latest certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Select resources
Select resources you want to move.
All supported resource types in resource groups within the selected source region are displayed.
Resources that have already been added for moving across regions aren't shown.
You move resources to a target region in the same subscription as the source region. If you want to change
the subscription, you can do that after the resources are moved.
1. In the Azure portal, search for resource mover. Then, under Ser vices , select Azure Resource Mover .
Resolve dependencies
1. If resources show a Validate dependencies message in the Issues column, click the Validate
dependencies button. The validation process begins.
2. If dependencies are found, click Add dependencies .
3. In Add dependencies , leave the default Show all dependencies option.
Show all dependencies iterates through all of the direct and indirect dependencies for a resource. For
example, for a VM it shows the NIC, virtual network, network security groups (NSGs) etc.
Show first level dependencies only shows only direct dependencies. For example, for a VM it shows
the NIC, but not the virtual network.
4. Select the dependent resources you want to add > Add dependencies . Monitor progress in the
notifications.
NOTE
After preparing the resource group, it's in the Initiate move pending state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
4. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, to replicate them.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
After moving resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
After discarding resources, VMs are in an Initiate move pending state.
NOTE
A few resources, for example key vaults and SQL Server servers, can't be deleted from the portal, and must be deleted
from the resource property page.
1. In Across Regions , click the name of the source resource that you want to delete.
2. Select Delete source .
Next steps
In this tutorial, you:
Moved Azure VMs to another Azure region.
Moved resources associated with VMs to another region.
Now, trying moving Azure SQL databases and elastic pools to another region.
Move Azure SQL resources
Tutorial: Move Azure VMs across regions
2/23/2022 • 8 minutes to read • Edit Online
In this article, learn how to move Azure VMs, and related network/storage resources, to a different Azure region,
using Azure Resource Mover. .
In this tutorial, you learn how to:
Check prerequisites and requirements.
Select the resources you want to move.
Resolve resource dependencies.
Prepare and move the source resource group.
Prepare and move the other resources.
Decide whether you want to discard or commit the move.
Optionally remove resources in the source region after the move.
NOTE
Tutorials show the quickest path for trying out a scenario, and use default options.
If you don't have an Azure subscription, create a free account before you begin. Then sign in to the Azure portal.
Prerequisites
REQ UIREM EN T DESC RIP T IO N
Resource Mover suppor t Review supported regions and other common questions.
VM suppor t Check that the VMs you want to move are supported.
Destination region charges Verify pricing and charges associated with the target region
to which you're moving VMs. Use the pricing calculator to
help you.
Prepare VMs
1. After checking that VMs meet requirements, make sure that VMs you want to move are turned on. All VMs
disks that you want to be available in the destination region must be attached and initialized in the VM.
2. Make sure VMs have the latest trusted root certificates, and an updated certificate revocation list (CRL). To do
this:
On Windows VMs, install the latest Windows updates.
On Linux VMs, follow distributor guidance so that machines have the latest certificates and CRL.
3. Allow outbound connectivity from VMs:
If you're using a URL-based firewall proxy to control outbound connectivity, allow access to these
URLs
If you're using network security group (NSG) rules to control outbound connectivity, create these
service tag rules.
Select resources
Select resources you want to move.
All supported resource types in resource groups within the selected source region are displayed.
Resources that have already been added for moving across regions aren't shown.
You move resources to a target region in the same subscription as the source region. If you want to change
the subscription, you can do that after the resources are moved.
1. In the Azure portal, search for resource mover. Then, under Ser vices , select Azure Resource Mover .
Resolve dependencies
1. If resources show a Validate dependencies message in the Issues column, click the Validate
dependencies button. The validation process begins.
2. If dependencies are found, click Add dependencies .
3. In Add dependencies , leave the default Show all dependencies option.
Show all dependencies iterates through all of the direct and indirect dependencies for a resource. For
example, for a VM it shows the NIC, virtual network, network security groups (NSGs) etc.
Show first level dependencies only shows only direct dependencies. For example, for a VM it shows
the NIC, but not the virtual network.
4. Select the dependent resources you want to add > Add dependencies . Monitor progress in the
notifications.
NOTE
After preparing the resource group, it's in the Initiate move pending state.
NOTE
After committing the move, the source resource group is in a Delete source pending state.
4. Select Prepare .
NOTE
During the prepare process, the Azure Site Recovery Mobility agent is installed on VMs, to replicate them.
VM data is replicated periodically to the target region. This doesn't affect the source VM.
Resource Move generates ARM templates for the other source resources.
After preparing resources, they're in an Initiate move pending state.
NOTE
For VMs, replica VMs are created in the target region. The source VM is shut down, and some downtime occurs
(usually minutes).
Resource Mover recreates other resources using the ARM templates that were prepared. There's usually no downtime.
After moving resources, they're in an Commit move pending state.
Discard or commit?
After the initial move, you can decide whether you want to commit the move, or to discard it.
Discard : You might discard a move if you're testing, and you don't want to actually move the source
resource. Discarding the move returns the resource to a state of Initiate move pending.
Commit : Commit completes the move to the target region. After committing, a source resource will be in a
state of Delete source pending, and you can decide if you want to delete it.
NOTE
After discarding resources, VMs are in an Initiate move pending state.
NOTE
A few resources, for example key vaults and SQL Server servers, can't be deleted from the portal, and must be deleted
from the resource property page.
1. In Across Regions , click the name of the source resource that you want to delete.
2. Select Delete source .
Next steps
In this tutorial, you:
Moved Azure VMs to another Azure region.
Moved resources associated with VMs to another region.
Now, trying moving Azure SQL databases and elastic pools to another region.
Move Azure SQL resources
Move a Recovery Services vault and Azure Site
Recovery configuration to another Azure region
2/23/2022 • 2 minutes to read • Edit Online
There are various scenarios in which you might want to move your existing Azure resources from one region to
another. Examples are for manageability, governance reasons, or because of company mergers and acquisitions.
One of the related resources you might want to move when you move your Azure VMs is the disaster recovery
configuration.
There's no first-class way to move an existing disaster recovery configuration from one region to another. This is
because you configured your target region based on your source VM region. When you decide to change the
source region, the previously existing configurations of the target region can't be reused and must be reset. This
article defines the step-by-step process to reconfigure the disaster recovery setup and move it to a different
region.
In this document, you will:
Verify prerequisites for the move.
Identify the resources that were used by Azure Site Recovery.
Disable replication.
Delete the resources.
Set up Site Recovery based on the new source region for the VMs.
IMPORTANT
Currently, there's no first-class way to move a Recovery Services vault and the disaster recovery configuration as is to a
different region. This article guides you through the process of disabling replication and setting it up in the new region.
Prerequisites
Make sure that you remove and delete the disaster recovery configuration before you try to move the
Azure VMs to a different region.
NOTE
If your new target region for the Azure VM is the same as the disaster recovery target region, you can use your
existing replication configuration and move it. Follow the steps in Move Azure IaaS VMs to another Azure region.
Ensure that you're making an informed decision and that stakeholders are informed. Your VM won't be
protected against disasters until the move of the VM is complete.
NOTE
The mobility service won't be uninstalled from the protected servers. You must uninstall it manually. If you plan to protect
the server again, you can skip uninstalling the mobility service.
Set up Site Recovery based on the new source region for the VMs
Configure disaster recovery for the Azure VMs that were moved to the new region by following the steps in Set
up disaster recovery for Azure VMs.
Move a SQL Server VM to another region within
Azure with Azure Site Recovery
2/23/2022 • 8 minutes to read • Edit Online
Verify prerequisites
Confirm that moving from your source region to your target region is supported.
Review the scenario architecture and components as well as the support limitations and requirements.
Verify account permissions. If you created your free Azure account, you're the administrator of your
subscription. If you're not the subscription administrator, work with the administrator to assign the
permissions that you need. To enable replication for a VM and copy data using Azure Site Recovery, you must
have:
Permissions to create a VM. The Virtual Machine Contributor built-in role has these permissions,
which include:
Permissions to create a VM in the selected resource group.
Permissions to create a VM in the selected virtual network.
Permissions to write to the selected storage account.
Permissions to manage Azure Site Recovery operations. The Site Recovery Contributor role has
all the permissions that are required to manage Site Recovery operations in a Recovery
Services vault.
Prepare to move
Prepare both the source SQL Server VM and the target region for the move.
Prepare the source SQL Server VM
Ensure that all the latest root certificates are on the SQL Server VM that you want to move. If the latest root
certificates are not there, security constraints will prevent data copy to the target region.
For Windows VMs, install all of the latest Windows updates on the VM, so that all the trusted root certificates
are on the machine. In a disconnected environment, follow the standard Windows Update and certificate
update process for your organization.
For Linux VMs, follow the guidance provided by your Linux distributor to get the latest trusted root
certificates and certificate revocation list on the VM.
Make sure you're not using an authentication proxy to control network connectivity for the VMs that you
want to move.
If the VM that you're trying to move doesn't have access to the internet, or it's using a firewall proxy to
control outbound access, check the requirements.
Identify the source networking layout and all the resources that you're currently using. This includes but isn't
limited to load balancers, network security groups (NSGs), and public IPs.
Prepare the target region
Verify that your Azure subscription allows you to create VMs in the target region that's used for disaster
recovery. Contact support to enable the required quota.
Make sure that your subscription has enough resources to support VMs with size that match your source
VMs. If you're using Site Recovery to copy data to the target, Site Recovery chooses the same size, or the
closest possible size for the target VM.
Make sure that you create a target resource for every component that's identified in the source networking
layout. This step is important to ensure that your VMs have all the functionality and features in the target
region that you had in the source region.
Azure Site Recovery automatically discovers and creates a virtual network when you enable
replication for the source VM. You can also pre-create a network and assign it to the VM in the user
flow for enabling replication. You need to manually create any other resources in the target region.
To create the most commonly used network resources that are relevant for you based on the source VM
configuration, see the following documentation:
Network security groups
Load balancer
Public IP address
For any additional networking components, see the networking documentation.
Manually create a non-production network in the target region if you want to test the configuration before
you perform the final move to the target region. We recommend this step because it ensures minimal
interference with the production network.
11. Select Source and then select Azure as the source. Select the appropriate values for the other drop-
down fields, such as the location for your source VMs. Only resources groups located in the Source
location region will be visible in the Source resource group field.
12. Select Vir tual machines and then choose the virtual machines you want to migrate. Select OK to save
your VM selection.
13. Select Settings , and then choose your Target location from the drop-down. This should be the
resource group you prepared earlier.
14. Once you have customized replication, select Create target resources to create the resources in the
new location.
15. Once resource creation is complete, select Enable replication to start replication of your SQL Server
VM from the source to the target region.
16. You can check the status of replication by navigating to your recovery vault, selecting Replicated items
and viewing the Status of your SQL Server VM. A status of Protected indicates that replication has
completed.
Test move process
The following steps show you how to use Azure Site Recovery to test the move process.
1. Navigate to your Recover y Ser vices vault in the Azure portal and select Replicated items .
2. Select the SQL Server VM you would like to move, verify that the Replication Health shows as Healthy
and then select Test Failover .
3. On the Test Failover page, select the Latest app-consistent recovery point to use for the failover, as
that is the only type of snapshot that can guarantee SQL Server data consistency.
4. Select the virtual network under Azure vir tual network and then select OK to test failover.
IMPORTANT
We recommend that you use a separate Azure VM network for the failover test. Don't use the production network
that was set up when you enabled replication and that you want to move your VMs into eventually.
5. To monitor progress, navigate to your vault, select Site Recover y jobs under Monitoring , and then
select the Test failover job that's in progress.
6. Once the test completes, navigate to Vir tual machines in the portal and review the newly created
virtual machine. Make sure the SQL Server VM is running, is sized appropriately, and is connected to the
appropriate network.
7. Delete the VM that was created as part of the test, as the Failover option will be grayed out until the
failover test resources are cleaned up. Navigate back to the vault, select Replicated items , select the SQL
Server VM, and then select Cleanup test failover . Record and save any observations associated with
the test in the Notes section and select the checkbox next to Testing is complete. Delete test failover
vir tual machines . Select OK to clean up resources after the test.
WARNING
SQL Server data consistency is only guaranteed with app-consistent snapshots. The latest processed snapshot can't be
used for SQL Server failover as a crash recovery snapshot can't guarantee SQL Server data consistency.
IMPORTANT
It is important to perform this step to avoid being charged for Azure Site Recovery replication.
3. If you have no plans to reuse any of the resources in the source region, delete all relevant network
resources, and corresponding storage accounts.
Next steps
For more information, see the following articles:
Overview of SQL Server on a Windows VM
SQL Server on a Windows VM FAQ
SQL Server on a Windows VM pricing guidance
What's new for SQL Server on Azure VMs
Use tags to organize your Azure resources and
management hierarchy
2/23/2022 • 16 minutes to read • Edit Online
You apply tags to your Azure resources, resource groups, and subscriptions to logically organize them into a
taxonomy. Each tag consists of a name and a value pair. For example, you can apply the name Environment and
the value Production to all the resources in production.
For recommendations on how to implement a tagging strategy, see Resource naming and tagging decision
guide.
IMPORTANT
Tag names are case-insensitive for operations. A tag with a tag name, regardless of casing, is updated or retrieved.
However, the resource provider might keep the casing you provide for the tag name. You'll see that casing in cost reports.
Tag values are case-sensitive.
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.
Required access
There are two ways to get the required access to tag resources.
You can have write access to the Microsoft.Resources/tags resource type. This access lets you tag any
resource, even if you don't have access to the resource itself. The Tag Contributor role grants this access.
Currently, the tag contributor role can't apply tags to resources or resource groups through the portal. It
can apply tags to subscriptions through the portal. It supports all tag operations through PowerShell and
REST API.
You can have write access to the resource itself. The Contributor role grants the required access to apply
tags to any entity. To apply tags to only one resource type, use the contributor role for that resource. For
example, to apply tags to virtual machines, use the Virtual Machine Contributor.
PowerShell
Apply tags
Azure PowerShell offers two commands for applying tags: New-AzTag and Update-AzTag. You must have the
Az.Resources module 1.12.0 or later. You can check your version with Get-InstalledModule -Name Az.Resources .
You can install that module or install Azure PowerShell 3.6.1 or later.
The New-AzTag replaces all tags on the resource, resource group, or subscription. When calling the command,
pass in the resource ID of the entity you wish to tag.
The following example applies a set of tags to a storage account:
$tags = @{"Dept"="Finance"; "Status"="Normal"}
$resource = Get-AzResource -Name demoStorage -ResourceGroup demoGroup
New-AzTag -ResourceId $resource.id -Tag $tags
When the command completes, notice that the resource has two tags.
Properties :
Name Value
====== =======
Dept Finance
Status Normal
If you run the command again but this time with different tags, notice that the earlier tags are removed.
Properties :
Name Value
=========== ==========
Environment Production
Team Compliance
To add tags to a resource that already has tags, use Update-AzTag . Set the -Operation parameter to Merge .
Notice that the two new tags were added to the two existing tags.
Properties :
Name Value
=========== ==========
Status Normal
Dept Finance
Team Compliance
Environment Production
Each tag name can have only one value. If you provide a new value for a tag, the old value is replaced even if
you use the merge operation. The following example changes the Status tag from Normal to Green.
$tags = @{"Status"="Green"}
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Merge
Properties :
Name Value
=========== ==========
Status Green
Dept Finance
Team Compliance
Environment Production
When you set the -Operation parameter to Replace , the existing tags are replaced by the new set of tags.
$tags = @{"Project"="ECommerce"; "CostCenter"="00123"; "Team"="Web"}
Update-AzTag -ResourceId $resource.id -Tag $tags -Operation Replace
Properties :
Name Value
========== =========
CostCenter 00123
Team Web
Project ECommerce
The same commands also work with resource groups or subscriptions. You pass in the identifier for the resource
group or subscription you want to tag.
To add a new set of tags to a resource group, use:
You may have more than one resource with the same name in a resource group. In that case, you can set each
resource with the following commands:
List tags
To get the tags for a resource, resource group, or subscription, use the Get-AzTag command and pass in the
resource ID for the entity.
To see the tags for a resource, use:
$resource = Get-AzResource -Name demoStorage -ResourceGroup demoGroup
Get-AzTag -ResourceId $resource.id
List by tag
To get resources that have a specific tag name and value, use:
To get resources that have a specific tag name with any tag value, use:
To get resource groups that have a specific tag name and value, use:
Remove tags
To remove specific tags, use Update-AzTag and set -Operation to Delete . Pass in the tags you want to delete.
Properties :
Name Value
========== =====
CostCenter 00123
Azure CLI
Apply tags
Azure CLI offers two commands for applying tags: az tag create and az tag update. You must have Azure CLI
2.10.0 or later. You can check your version with az version . To update or install, see Install the Azure CLI.
The az tag create replaces all tags on the resource, resource group, or subscription. When calling the
command, pass in the resource ID of the entity you wish to tag.
The following example applies a set of tags to a storage account:
When the command completes, notice that the resource has two tags.
"properties": {
"tags": {
"Dept": "Finance",
"Status": "Normal"
}
},
If you run the command again but this time with different tags, notice that the earlier tags are removed.
"properties": {
"tags": {
"Environment": "Production",
"Team": "Compliance"
}
},
To add tags to a resource that already has tags, use az tag update . Set the --operation parameter to Merge .
Notice that the two new tags were added to the two existing tags.
"properties": {
"tags": {
"Dept": "Finance",
"Environment": "Production",
"Status": "Normal",
"Team": "Compliance"
}
},
Each tag name can have only one value. If you provide a new value for a tag, the old value is replaced even if
you use the merge operation. The following example changes the Status tag from Normal to Green.
When you set the --operation parameter to Replace , the existing tags are replaced by the new set of tags.
az tag update --resource-id $resource --operation Replace --tags Project=ECommerce CostCenter=00123 Team=Web
"properties": {
"tags": {
"CostCenter": "00123",
"Project": "ECommerce",
"Team": "Web"
}
},
The same commands also work with resource groups or subscriptions. You pass in the identifier for the resource
group or subscription you want to tag.
To add a new set of tags to a resource group, use:
List tags
To get the tags for a resource, resource group, or subscription, use the az tag list command and pass in the
resource ID for the entity.
To see the tags for a resource, use:
resource=$(az resource show -g demoGroup -n demoStorage --resource-type Microsoft.Storage/storageAccounts --
query "id" --output tsv)
az tag list --resource-id $resource
List by tag
To get resources that have a specific tag name and value, use:
To get resources that have a specific tag name with any tag value, use:
To get resource groups that have a specific tag name and value, use:
Remove tags
To remove specific tags, use az tag update and set --operation to Delete . Pass in the tags you want to delete.
"properties": {
"tags": {
"CostCenter": "00123"
}
},
Handling spaces
If your tag names or values include spaces, enclose them in double quotes.
az tag update --resource-id $group --operation Merge --tags "Cost Center"=Finance-1222 Location="West US"
ARM templates
You can tag resources, resource groups, and subscriptions during deployment with an Azure Resource Manager
template (ARM template).
NOTE
The tags you apply through an ARM template or Bicep file overwrite any existing tags.
Apply values
The following example deploys a storage account with three tags. Two of the tags ( Dept and Environment ) are
set to literal values. One tag ( LastDeployed ) is set to a parameter that defaults to the current date.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"utcShort": {
"type": "string",
"defaultValue": "[utcNow('d')]"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "Finance",
"Environment": "Production",
"LastDeployed": "[parameters('utcShort')]"
},
"properties": {}
}
]
}
Apply an object
You can define an object parameter that stores several tags, and apply that object to the tag element. This
approach provides more flexibility than the previous example because the object can have different properties.
Each property in the object becomes a separate tag for the resource. The following example has a parameter
named tagValues that is applied to the tag element.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
},
"tagValues": {
"type": "object",
"defaultValue": {
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": "[parameters('tagValues')]",
"properties": {}
}
]
}
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"CostCenter": "{\"Dept\":\"Finance\",\"Environment\":\"Production\"}"
},
"properties": {}
}
]
}
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2021-04-01",
"name": "[concat('storage', uniqueString(resourceGroup().id))]",
"location": "[parameters('location')]",
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage",
"tags": {
"Dept": "[resourceGroup().tags['Dept']]",
"Environment": "[resourceGroup().tags['Environment']]"
},
"properties": {}
}
]
}
Apply tags to resource groups or subscriptions
You can add tags to a resource group or subscription by deploying the Microsoft.Resources/tags resource type.
The tags are applied to the target resource group or subscription for the deployment. Each time you deploy the
template you replace any tags there were previously applied.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tagName": {
"type": "string",
"defaultValue": "TeamName"
},
"tagValue": {
"type": "string",
"defaultValue": "AppTeam1"
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"name": "default",
"apiVersion": "2021-04-01",
"properties": {
"tags": {
"[parameters('tagName')]": "[parameters('tagValue')]"
}
}
}
]
}
To apply the tags to a resource group, use either PowerShell or Azure CLI. Deploy to the resource group that you
want to tag.
To apply the tags to a subscription, use either PowerShell or Azure CLI. Deploy to the subscription that you want
to tag.
For more information about subscription deployments, see Create resource groups and resources at the
subscription level.
The following template adds the tags from an object to either a resource group or subscription.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"tags": {
"type": "object",
"defaultValue": {
"TeamName": "AppTeam1",
"Dept": "Finance",
"Environment": "Production"
}
}
},
"resources": [
{
"type": "Microsoft.Resources/tags",
"apiVersion": "2021-04-01",
"name": "default",
"properties": {
"tags": "[parameters('tags')]"
}
}
]
}
Portal
If a user doesn't have the required access for applying tags, you can assign the Tag Contributor role to the
user. For more information, see Tutorial: Grant a user access to Azure resources using RBAC and the Azure
portal.
1. To view the tags for a resource or a resource group, look for existing tags in the overview. If you have not
previously applied tags, the list is empty.
REST API
To work with tags through the Azure REST API, use:
Tags - Create Or Update At Scope (PUT operation)
Tags - Update At Scope (PATCH operation)
Tags - Get At Scope (GET operation)
Tags - Delete At Scope (DELETE operation)
SDKs
For samples of applying tags with SDKs, see:
.NET
Java
JavaScript
Python
Inherit tags
Tags applied to the resource group or subscription aren't inherited by the resources. To apply tags from a
subscription or resource group to the resources, see Azure Policies - tags.
Limitations
The following limitations apply to tags:
Not all resource types support tags. To determine if you can apply a tag to a resource type, see Tag
support for Azure resources.
Each resource, resource group, and subscription can have a maximum of 50 tag name/value pairs. If you
need to apply more tags than the maximum allowed number, use a JSON string for the tag value. The
JSON string can contain many values that are applied to a single tag name. A resource group or
subscription can contain many resources that each have 50 tag name/value pairs.
The tag name is limited to 512 characters, and the tag value is limited to 256 characters. For storage
accounts, the tag name is limited to 128 characters, and the tag value is limited to 256 characters.
Tags can't be applied to classic resources such as Cloud Services.
Azure IP Groups and Azure Firewall Policies don't support PATCH operations, which means they don't
support updating tags through the portal. Instead, use the update commands for those resources. For
example, you can update tags for an IP group with the az network ip-group update command.
Tag names can't contain these characters: < , > , % , & , \ , ? , /
NOTE
Azure DNS zones and Traffic Manager doesn't support the use of spaces in the tag or a tag that starts with
a number.
Azure DNS tag names do not support special and unicode characters. The value can contain all characters.
Azure Front Door doesn't support the use of # or : in the tag name.
The following Azure resources only support 15 tags:
Azure Automation
Azure CDN
Azure DNS (Zone and A records)
Azure Private DNS (Zone, A records, and virtual network link)
Next steps
Not all resource types support tags. To determine if you can apply a tag to a resource type, see Tag support
for Azure resources.
For recommendations on how to implement a tagging strategy, see Resource naming and tagging decision
guide.
Assign policy definitions for tag compliance
2/23/2022 • 4 minutes to read • Edit Online
You use Azure Policy to enforce tagging rules and conventions. By creating a policy, you avoid the scenario of
resources being deployed to your subscription that don't have the expected tags for your organization. Instead
of manually applying tags or searching for resources that aren't compliant, you create a policy that automatically
applies the needed tags during deployment. Tags can also now be applied to existing resources with the new
Modify effect and a remediation task. The following section shows example policy definitions for tags.
Policy definitions
NAME VERSIO N
( A ZURE PO RTA L) DESC RIP T IO N EF F EC T ( S) ( GIT HUB)
Add a tag to resource Adds the specified tag and modify 1.0.0
groups value when any resource
group missing this tag is
created or updated. Existing
resource groups can be
remediated by triggering a
remediation task. If the tag
exists with a different value
it will not be changed.
Add a tag to resources Adds the specified tag and modify 1.0.0
value when any resource
missing this tag is created
or updated. Existing
resources can be
remediated by triggering a
remediation task. If the tag
exists with a different value
it will not be changed. Does
not modify tags on
resource groups.
Add a tag to subscriptions Adds the specified tag and modify 1.0.0
value to subscriptions via a
remediation task. If the tag
exists with a different value
it will not be changed. See
https://aka.ms/azurepolicyre
mediation for more
information on policy
remediation.
Append a tag and its value Appends the specified tag append 1.0.0
from the resource group with its value from the
resource group when any
resource which is missing
this tag is created or
updated. Does not modify
the tags of resources
created before this policy
was applied until those
resources are changed. New
'modify' effect policies are
available that support
remediation of tags on
existing resources (see
https://aka.ms/modifydoc).
Append a tag and its value Appends the specified tag append 1.0.0
to resource groups and value when any
resource group which is
missing this tag is created
or updated. Does not
modify the tags of resource
groups created before this
policy was applied until
those resource groups are
changed. New 'modify'
effect policies are available
that support remediation of
tags on existing resources
(see
https://aka.ms/modifydoc).
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Append a tag and its value Appends the specified tag append 1.0.1
to resources and value when any
resource which is missing
this tag is created or
updated. Does not modify
the tags of resources
created before this policy
was applied until those
resources are changed.
Does not apply to resource
groups. New 'modify' effect
policies are available that
support remediation of tags
on existing resources (see
https://aka.ms/modifydoc).
Inherit a tag from the Adds the specified tag with modify 1.0.0
resource group if missing its value from the parent
resource group when any
resource missing this tag is
created or updated. Existing
resources can be
remediated by triggering a
remediation task. If the tag
exists with a different value
it will not be changed.
Inherit a tag from the Adds the specified tag with modify 1.0.0
subscription if missing its value from the
containing subscription
when any resource missing
this tag is created or
updated. Existing resources
can be remediated by
triggering a remediation
task. If the tag exists with a
different value it will not be
changed.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Require a tag and its value Enforces a required tag and deny 1.0.0
on resource groups its value on resource
groups.
Require a tag and its value Enforces a required tag and deny 1.0.1
on resources its value. Does not apply to
resource groups.
Next steps
To learn about tagging resources, see Use tags to organize your Azure resources.
Not all resource types support tags. To determine if you can apply a tag to a resource type, see Tag support
for Azure resources.
Tag support for Azure resources
2/23/2022 • 49 minutes to read • Edit Online
This article describes whether a resource type supports tags. The column labeled Suppor ts tags indicates
whether the resource type has a property for the tag. The column labeled Tag in cost repor t indicates whether
that resource type passes the tag to the cost report. You can view costs by tags in the Cost Management cost
analysis and the Azure billing invoice and daily usage data.
To get the same data as a file of comma-separated values, download tag-support.csv.
Jump to a resource provider namespace:
Microsoft.AAD
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
DomainServices / oucontainer No No
Microsoft.Addons
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
supportProviders No No
Microsoft.ADHybridHealthService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
aadsupportcases No No
addsservices No No
agents No No
anonymousapiusers No No
configuration No No
logs No No
reports No No
servicehealthmetrics No No
services No No
Microsoft.Advisor
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
advisorScore No No
configurations No No
generateRecommendations No No
metadata No No
recommendations No No
suppressions No No
NOTE
All Microsoft.Advisor resources are free and therefore not included in the cost report.
Microsoft.AgFoodPlatform
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
farmBeats / eventGridFilters No No
farmBeats / extensions No No
farmBeatsExtensionDefinitions No No
Microsoft.AlertsManagement
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
alerts No No
alertsList No No
alertsMetaData No No
alertsSummary No No
alertsSummaryList No No
migrateFromSmartDetection No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
smartGroups No No
Microsoft.AnalysisServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.AnyBuild
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters No No
Microsoft.ApiManagement
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
deletedServices No No
getDomainOwnershipIdentifier No No
reportFeedback No No
service / eventGridFilters No No
validateServiceName No No
NOTE
Azure API Management only supports creating a maximum of 15 tag name/value pairs for each service.
Microsoft.AppAssessment
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
migrateProjects No No
migrateProjects / assessments No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
migrateProjects / assessments / No No
assessedApplications
migrateProjects / assessments / No No
assessedApplications / machines
migrateProjects / assessments / No No
assessedMachines
migrateProjects / assessments / No No
assessedMachines / applications
migrateProjects / assessments / No No
machinesToAssess
migrateProjects / sites No No
migrateProjects / sites / No No
applianceConfigurations
Microsoft.AppConfiguration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
configurationStores Yes No
configurationStores / eventGridFilters No No
configurationStores / keyValues No No
deletedConfigurationStores No No
Microsoft.AppPlatform
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Spring / apps No No
Microsoft.Attestation
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
defaultProviders No No
Microsoft.Authorization
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accessReviewScheduleDefinitions No No
accessReviewScheduleSettings No No
batchResourceCheckAccess No No
classicAdministrators No No
dataAliases No No
dataPolicyManifests No No
denyAssignments No No
diagnosticSettings No No
diagnosticSettingsCategories No No
elevateAccess No No
eligibleChildResources No No
findOrphanRoleAssignments No No
locks No No
permissions No No
policyAssignments No No
policyDefinitions No No
policyExemptions No No
policySetDefinitions No No
privateLinkAssociations No No
providerOperations No No
roleAssignmentApprovals No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
roleAssignments No No
roleAssignmentScheduleInstances No No
roleAssignmentScheduleRequests No No
roleAssignmentSchedules No No
roleAssignmentsUsageMetrics No No
roleDefinitions No No
roleEligibilityScheduleInstances No No
roleEligibilityScheduleRequests No No
roleEligibilitySchedules No No
roleManagementPolicies No No
roleManagementPolicyAssignments No No
Microsoft.Automanage
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
bestPractices No No
bestPractices / versions No No
configurationProfileAssignmentIntents No No
configurationProfileAssignments No No
Microsoft.Automation
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
automationAccounts / No No
hybridRunbookWorkerGroups
automationAccounts / No No
hybridRunbookWorkerGroups /
hybridRunbookWorkers
automationAccounts / jobs No No
automationAccounts / No No
privateEndpointConnectionProxies
automationAccounts / No No
privateEndpointConnections
automationAccounts / No No
privateLinkResources
automationAccounts / No No
softwareUpdateConfigurations
automationAccounts / webhooks No No
NOTE
Azure Automation only supports creating a maximum of 15 tag name/value pairs for each Automation resource.
Microsoft.AVS
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
privateClouds / addons No No
privateClouds / authorizations No No
privateClouds / cloudLinks No No
privateClouds / clusters No No
privateClouds / clusters / No No
placementPolicies
privateClouds / clusters / No No
virtualMachines
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
privateClouds / No No
globalReachConnections
privateClouds / hcxEnterpriseSites No No
privateClouds / scriptExecutions No No
privateClouds / scriptPackages No No
privateClouds / scriptPackages / No No
scriptCmdlets
privateClouds / workloadNetworks No No
privateClouds / workloadNetworks / No No
dhcpConfigurations
privateClouds / workloadNetworks / No No
dnsServices
privateClouds / workloadNetworks / No No
dnsZones
privateClouds / workloadNetworks / No No
gateways
privateClouds / workloadNetworks / No No
portMirroringProfiles
privateClouds / workloadNetworks / No No
publicIPs
privateClouds / workloadNetworks / No No
segments
privateClouds / workloadNetworks / No No
virtualMachines
privateClouds / workloadNetworks / No No
vmGroups
Microsoft.Azure.Geneva
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
environments No No
environments / accounts No No
Microsoft.AzureActiveDirectory
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
b2cDirectories Yes No
b2ctenants No No
Microsoft.AzureArcData
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
DataControllers No No
PostgresInstances No No
SqlManagedInstances No No
SqlServerInstances No No
Microsoft.AzureCIS
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
autopilotEnvironments No No
dstsServiceAccounts No No
dstsServiceClientIdentities No No
Microsoft.AzureData
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
sqlServerRegistrations / sqlServers No No
Microsoft.AzurePercept
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts No No
accounts / devices No No
accounts / solutioninstances No No
accounts / solutions No No
accounts / targets No No
Microsoft.AzureSphere
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
catalogs No No
catalogs / certificates No No
catalogs / deployments No No
catalogs / devices No No
catalogs / images No No
catalogs / products No No
Microsoft.AzureStack
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
cloudManifestFiles No No
registrations / customerSubscriptions No No
registrations / products No No
Microsoft.AzureStackHCI
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters No No
clusters / arcSettings No No
galleryimages No No
networkinterfaces No No
virtualharddisks No No
virtualmachines No No
virtualmachines / extensions No No
virtualmachines / No No
hybrididentitymetadata
virtualnetworks No No
Microsoft.BackupSolutions
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.BareMetalInfrastructure
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Batch
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
batchAccounts / certificates No No
batchAccounts / pools No No
Microsoft.Billing
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts / agreements No No
billingAccounts / No No
appliedReservationOrders
billingAccounts / billingPermissions No No
billingAccounts / billingProfiles No No
billingAccounts / billingProfiles / No No
billingPermissions
billingAccounts / billingProfiles / No No
billingRoleAssignments
billingAccounts / billingProfiles / No No
billingRoleDefinitions
billingAccounts / billingProfiles / No No
billingSubscriptions
billingAccounts / billingProfiles / No No
createBillingRoleAssignment
billingAccounts / billingProfiles / No No
customers
billingAccounts / billingProfiles / No No
instructions
billingAccounts / billingProfiles / No No
invoices
billingAccounts / billingProfiles / No No
invoices / pricesheet
billingAccounts / billingProfiles / No No
invoices / transactions
billingAccounts / billingProfiles / No No
invoiceSections
billingAccounts / billingProfiles / No No
invoiceSections / billingPermissions
billingAccounts / billingProfiles / No No
invoiceSections /
billingRoleAssignments
billingAccounts / billingProfiles / No No
invoiceSections / billingRoleDefinitions
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts / billingProfiles / No No
invoiceSections / billingSubscriptions
billingAccounts / billingProfiles / No No
invoiceSections /
createBillingRoleAssignment
billingAccounts / billingProfiles / No No
invoiceSections / initiateTransfer
billingAccounts / billingProfiles / No No
invoiceSections / products
billingAccounts / billingProfiles / No No
invoiceSections / products / transfer
billingAccounts / billingProfiles / No No
invoiceSections / products /
updateAutoRenew
billingAccounts / billingProfiles / No No
invoiceSections / transactions
billingAccounts / billingProfiles / No No
invoiceSections / transfers
billingAccounts / billingProfiles / No No
invoiceSections /
validateDeleteInvoiceSectionEligibility
billingAccounts / BillingProfiles / No No
patchOperations
billingAccounts / billingProfiles / No No
paymentMethodLinks
billingAccounts / billingProfiles / No No
paymentMethods
billingAccounts / billingProfiles / No No
policies
billingAccounts / billingProfiles / No No
pricesheet
billingAccounts / billingProfiles / No No
pricesheetDownloadOperations
billingAccounts / billingProfiles / No No
products
billingAccounts / billingProfiles / No No
reservations
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts / billingProfiles / No No
transactions
billingAccounts / billingProfiles / No No
validateDeleteBillingProfileEligibility
billingAccounts / billingProfiles / No No
validateDetachPaymentMethodEligibilit
y
billingAccounts / No No
billingRoleAssignments
billingAccounts / billingRoleDefinitions No No
billingAccounts / No No
billingSubscriptionAliases
billingAccounts / billingSubscriptions No No
billingAccounts / billingSubscriptions / No No
elevateRole
billingAccounts / billingSubscriptions / No No
invoices
billingAccounts / No No
createBillingRoleAssignment
billingAccounts / No No
createInvoiceSectionOperations
billingAccounts / customers No No
billingAccounts / customers / No No
billingPermissions
billingAccounts / customers / No No
billingSubscriptions
billingAccounts / customers / No No
initiateTransfer
billingAccounts / customers / No No
transactions
billingAccounts / customers / No No
transferSupportedAccounts
billingAccounts / departments No No
billingAccounts / departments / No No
billingPermissions
billingAccounts / departments / No No
billingRoleAssignments
billingAccounts / departments / No No
billingRoleDefinitions
billingAccounts / departments / No No
billingSubscriptions
billingAccounts / departments / No No
enrollmentAccounts
billingAccounts / enrollmentAccounts No No
billingAccounts / enrollmentAccounts / No No
billingPermissions
billingAccounts / enrollmentAccounts / No No
billingRoleAssignments
billingAccounts / enrollmentAccounts / No No
billingRoleDefinitions
billingAccounts / enrollmentAccounts / No No
billingSubscriptions
billingAccounts / invoices No No
billingAccounts / invoices / No No
transactions
billingAccounts / invoices / No No
transactionSummary
billingAccounts / invoiceSections No No
billingAccounts / invoiceSections / No No
billingSubscriptionMoveOperations
billingAccounts / invoiceSections / No No
billingSubscriptions
billingAccounts / invoiceSections / No No
billingSubscriptions / transfer
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts / invoiceSections / No No
elevate
billingAccounts / invoiceSections / No No
initiateTransfer
billingAccounts / invoiceSections / No No
patchOperations
billingAccounts / invoiceSections / No No
productMoveOperations
billingAccounts / invoiceSections / No No
products
billingAccounts / invoiceSections / No No
products / transfer
billingAccounts / invoiceSections / No No
products / updateAutoRenew
billingAccounts / invoiceSections / No No
transactions
billingAccounts / invoiceSections / No No
transfers
billingAccounts / lineOfCredit No No
billingAccounts / patchOperations No No
billingAccounts / payableOverage No No
billingAccounts / paymentMethods No No
billingAccounts / payNow No No
billingAccounts / permissionRequests No No
billingAccounts / policies No No
billingAccounts / products No No
billingAccounts / promotionalCredits No No
billingAccounts / reservations No No
billingAccounts / savingsPlanOrders No No
billingAccounts / savingsPlanOrders / No No
savingsPlans
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
billingAccounts / savingsPlans No No
billingAccounts / transactions No No
billingPeriods No No
billingPermissions No No
billingProperty No No
billingRoleAssignments No No
billingRoleDefinitions No No
createBillingRoleAssignment No No
departments No No
enrollmentAccounts No No
invoices No No
paymentMethods No No
permissionRequests No No
promotionalCredits No No
promotions No No
transfers No No
transfers / acceptTransfer No No
transfers / declineTransfer No No
transfers / operationStatus No No
transfers / validateTransfer No No
validateAddress No No
Microsoft.BillingBenefits
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
savingsPlanOrderAliases No No
savingsPlanOrders No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
savingsPlanOrders / savingsPlans No No
savingsPlans No No
validate No No
Microsoft.Blockchain
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.BlockchainTokens
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
TokenServices / BlockchainNetworks No No
TokenServices / Groups No No
TokenServices / TokenTemplates No No
Microsoft.Blueprint
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
blueprintAssignments No No
blueprintAssignments / No No
assignmentOperations
blueprintAssignments / operations No No
blueprints No No
blueprints / artifacts No No
blueprints / versions No No
Microsoft.BotService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
botServices / channels No No
botServices / connections No No
botServices / No No
privateEndpointConnectionProxies
botServices / No No
privateEndpointConnections
botServices / privateLinkResources No No
hostSettings No No
languages No No
templates No No
Microsoft.Cache
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Redis / EventGridFilters No No
Redis / No No
privateEndpointConnectionProxies
Redis / No No
privateEndpointConnectionProxies /
validate
Redis / privateEndpointConnections No No
Redis / privateLinkResources No No
redisEnterprise / databases No No
RedisEnterprise / No No
privateEndpointConnectionProxies
RedisEnterprise / No No
privateEndpointConnectionProxies /
validate
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
RedisEnterprise / No No
privateEndpointConnections
RedisEnterprise / privateLinkResources No No
Microsoft.Capacity
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
appliedReservations No No
autoQuotaIncrease No No
calculateExchange No No
calculatePrice No No
calculatePurchasePrice No No
catalogs No No
commercialReservationOrders No No
exchange No No
ownReservations No No
placePurchaseOrder No No
reservationOrders No No
reservationOrders / calculateRefund No No
reservationOrders / merge No No
reservationOrders / reservations No No
reservationOrders / reservations / No No
revisions
reservationOrders / return No No
reservationOrders / split No No
reservationOrders / swap No No
reservations No No
resourceProviders No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
resources No No
validateReservationOrder No No
Microsoft.Cascade
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
sites No No
Microsoft.Cdn
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
CdnWebApplicationFirewallManagedR No No
uleSets
edgenodes No No
profiles / customdomains No No
profiles / origingroups No No
profiles / rulesets No No
profiles / secrets No No
profiles / securitypolicies No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
validateProbe No No
Microsoft.CertificateRegistration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
certificateOrders / certificates No No
validateCertificateRegistrationInformati No No
on
Microsoft.ChangeAnalysis
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
changes No No
changeSnapshots No No
computeChanges No No
profile No No
resourceChanges No No
Microsoft.Chaos
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
artifactSetDefinitions No No
artifactSetSnapshots No No
chaosProviderConfigurations No No
chaosTargets No No
targets No No
Microsoft.ClassicCompute
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
capabilities No No
domainNames No No
domainNames / capabilities No No
domainNames / internalLoadBalancers No No
domainNames / serviceCertificates No No
domainNames / slots No No
moveSubscriptionResources No No
operatingSystemFamilies No No
operatingSystems No No
quotas No No
resourceTypes No No
validateSubscriptionMoveAvailability No No
virtualMachines No No
virtualMachines / diagnosticSettings No No
virtualMachines / metricDefinitions No No
virtualMachines / metrics No No
Microsoft.ClassicInfrastructureMigrate
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
classicInfrastructureResources No No
Microsoft.ClassicNetwork
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
capabilities No No
expressRouteCrossConnections No No
expressRouteCrossConnections / No No
peerings
gatewaySupportedDevices No No
networkSecurityGroups No No
quotas No No
reservedIps No No
virtualNetworks No No
virtualNetworks / No No
remoteVirtualNetworkPeeringProxies
virtualNetworks / No No
virtualNetworkPeerings
Microsoft.ClassicStorage
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
capabilities No No
disks No No
images No No
osImages No No
osPlatformImages No No
publicImages No No
quotas No No
storageAccounts No No
storageAccounts / blobServices No No
storageAccounts / fileServices No No
storageAccounts / metricDefinitions No No
storageAccounts / metrics No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
storageAccounts / queueServices No No
storageAccounts / services No No
storageAccounts / services / No No
diagnosticSettings
storageAccounts / services / No No
metricDefinitions
storageAccounts / tableServices No No
storageAccounts / vmImages No No
vmImages No No
Microsoft.ClusterStor
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.CodeSigning
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
codeSigningAccounts No No
codeSigningAccounts / No No
certificateProfiles
Microsoft.Codespaces
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
plans Yes No
registeredSubscriptions No No
Microsoft.CognitiveServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / No No
networkSecurityPerimeterAssociationPr
oxies
accounts / No No
privateEndpointConnectionProxies
accounts / No No
privateEndpointConnections
accounts / privateLinkResources No No
deletedAccounts No No
Microsoft.Commerce
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
RateCard No No
UsageAggregates No No
Microsoft.Compute
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
cloudServices / networkInterfaces No No
cloudServices / publicIPAddresses No No
cloudServices / roleInstances No No
cloudServices / roleInstances / No No
networkInterfaces
cloudServices / roles No No
restorePointCollections / restorePoints No No
restorePointCollections / restorePoints No No
/ diskRestorePoints
sharedVMExtensions / versions No No
sharedVMImages / versions No No
virtualMachines / metricDefinitions No No
virtualMachineScaleSets / extensions No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
virtualMachineScaleSets / No No
networkInterfaces
virtualMachineScaleSets / Yes No
publicIPAddresses
virtualMachineScaleSets / No No
virtualMachines
virtualMachineScaleSets / No No
virtualMachines / extensions
virtualMachineScaleSets / No No
virtualMachines / networkInterfaces
NOTE
You can't add a tag to a virtual machine that has been marked as generalized. You mark a virtual machine as generalized
with Set-AzVm -Generalized or az vm generalize.
Microsoft.Communication
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
CommunicationServices No No
CommunicationServices / No No
eventGridFilters
EmailServices No No
EmailServices / Domains No No
registeredSubscriptions No No
Microsoft.ConfidentialLedger
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Ledgers No No
Microsoft.ConnectedCache
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
CacheNodes No No
enterpriseCustomers No No
Microsoft.ConnectedVehicle
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
platformAccounts No No
registeredSubscriptions No No
Microsoft.ConnectedVMwarevSphere
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Clusters No No
Datastores No No
Hosts No No
ResourcePools No No
VCenters No No
VCenters / InventoryItems No No
VirtualMachines No No
VirtualMachines / GuestAgents No No
VirtualMachines / No No
HybridIdentityMetadata
VirtualMachineTemplates No No
VirtualNetworks No No
Microsoft.Consumption
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
AggregatedCost No No
Balances No No
Budgets No No
Charges No No
CostTags No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
credits No No
events No No
Forecasts No No
lots No No
Marketplaces No No
Pricesheets No No
products No No
ReservationDetails No No
ReservationRecommendationDetails No No
ReservationRecommendations No No
ReservationSummaries No No
ReservationTransactions No No
Tags No No
tenants No No
Terms No No
UsageDetails No No
Microsoft.ContainerInstance
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
serviceAssociationLinks No No
Microsoft.ContainerRegistry
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
registries / builds No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
registries / connectedRegistries No No
registries / connectedRegistries / No No
deactivate
registries / eventGridFilters No No
registries / exportPipelines No No
registries / generateCredentials No No
registries / getBuildSourceUploadUrl No No
registries / GetCredentials No No
registries / importImage No No
registries / importPipelines No No
registries / pipelineRuns No No
registries / No No
privateEndpointConnectionProxies
registries / No No
privateEndpointConnectionProxies /
validate
registries / No No
privateEndpointConnections
registries / privateLinkResources No No
registries / queueBuild No No
registries / regenerateCredential No No
registries / regenerateCredentials No No
registries / runs No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
registries / scheduleRun No No
registries / scopeMaps No No
registries / taskRuns No No
registries / tokens No No
registries / updatePolicies No No
registries / webhooks / No No
getCallbackConfig
Microsoft.ContainerService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
ManagedClusters / eventGridFilters No No
Microsoft.CostManagement
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Alerts No No
BenefitUtilizationSummaries No No
BillingAccounts No No
Budgets No No
calculatePrice No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
CloudConnectors No No
costAllocationRules No No
Departments No No
Dimensions No No
EnrollmentAccounts No No
Exports No No
ExternalBillingAccounts No No
ExternalBillingAccounts / Alerts No No
ExternalBillingAccounts / Dimensions No No
ExternalBillingAccounts / Forecast No No
ExternalBillingAccounts / Query No No
ExternalSubscriptions No No
ExternalSubscriptions / Alerts No No
ExternalSubscriptions / Dimensions No No
ExternalSubscriptions / Forecast No No
ExternalSubscriptions / Query No No
fetchPrices No No
Forecast No No
GenerateDetailedCostReport No No
GenerateReservationDetailsReport No No
Insights No No
Query No No
register No No
Reportconfigs No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Reports No No
ScheduledActions No No
Settings No No
showbackRules No No
Views No No
Microsoft.CustomerLockbox
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
DisableLockbox No No
EnableLockbox No No
requests No No
TenantOptedIn No No
Microsoft.CustomProviders
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
associations No No
Microsoft.D365CustomerInsights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Dashboard
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
grafana No No
Microsoft.DataBox
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Databricks
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
workspaces / dbWorkspaces No No
workspaces / virtualNetworkPeerings No No
Microsoft.DataCatalog
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.DataFactory
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
dataFactories / diagnosticSettings No No
dataFactories / metricDefinitions No No
dataFactorySchema No No
factories / integrationRuntimes No No
NOTE
If you have Azure-SSIS integration runtimes in your data factory, their running cost will be tagged with data factory tags.
Running Azure-SSIS integration runtimes must be stopped and restarted for new data factory tags to be applied to their
running cost.
Microsoft.DataLakeAnalytics
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / dataLakeStoreAccounts No No
accounts / storageAccounts No No
accounts / storageAccounts / No No
containers
accounts / transferAnalyticsUnits No No
Microsoft.DataLakeStore
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / eventGridFilters No No
accounts / firewallRules No No
Microsoft.DataMigration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
DatabaseMigrations No No
Microsoft.DataProtection
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.DataShare
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / shares No No
accounts / shares / No No
providersharesubscriptions
accounts / shares / No No
synchronizationSettings
accounts / sharesubscriptions No No
accounts / sharesubscriptions / No No
consumerSourceDataSets
accounts / sharesubscriptions / No No
datasetmappings
accounts / sharesubscriptions / No No
triggers
Microsoft.DBforMariaDB
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
servers / advisors No No
servers / keys No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
servers / queryTexts No No
servers / recoverableServers No No
servers / No No
resetQueryPerformanceInsightData
servers / start No No
servers / stop No No
servers / topQueryStatistics No No
servers / virtualNetworkRules No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
servers / waitStatistics No No
Microsoft.DBforMySQL
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
getPrivateDnsZoneSuffix No No
servers / advisors No No
servers / keys No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
servers / queryTexts No No
servers / recoverableServers No No
servers / No No
resetQueryPerformanceInsightData
servers / start No No
servers / stop No No
servers / topQueryStatistics No No
servers / upgrade No No
servers / virtualNetworkRules No No
servers / waitStatistics No No
Microsoft.DBforPostgreSQL
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
getPrivateDnsZoneSuffix No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
servers / advisors No No
servers / keys No No
servers / No No
privateEndpointConnectionProxies
servers / privateEndpointConnections No No
servers / privateLinkResources No No
servers / queryTexts No No
servers / recoverableServers No No
servers / No No
resetQueryPerformanceInsightData
servers / topQueryStatistics No No
servers / virtualNetworkRules No No
servers / waitStatistics No No
Microsoft.DelegatedNetwork
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.DeploymentManager
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.DesktopVirtualization
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
applicationgroups / applications No No
applicationgroups / desktops No No
applicationgroups / startmenuitems No No
hostpools / msixpackages No No
hostpools / sessionhosts No No
hostpools / sessionhosts / No No
usersessions
hostpools / usersessions No No
Microsoft.DevAI
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
instances No No
instances / experiments No No
instances / sandboxes No No
Microsoft.Devices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
ElasticPools / IotHubTenants / No No
securitySettings
IotHubs / eventGridFilters No No
IotHubs / failover No No
IotHubs / securitySettings No No
usages No No
Microsoft.DeviceUpdate
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts No No
accounts / instances No No
accounts / No No
privateEndpointConnectionProxies
accounts / No No
privateEndpointConnections
accounts / privateLinkResources No No
registeredSubscriptions No No
Microsoft.DevOps
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.DevSpaces
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Diagnostics
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
AzureKB No No
InsightDiagnostics No No
solutions No No
Microsoft.DigitalTwins
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
digitalTwinsInstances / endpoints No No
digitalTwinsInstances / No No
timeSeriesDatabaseConnections
Microsoft.DocumentDB
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
databaseAccountNames No No
restorableDatabaseAccounts No No
Microsoft.DomainRegistration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
domains / domainOwnershipIdentifiers No No
generateSsoRequest No No
topLevelDomains No No
validateDomainRegistrationInformatio No No
n
Microsoft.DynamicsLcs
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
lcsprojects No No
lcsprojects / clouddeployments No No
lcsprojects / connectors No No
Microsoft.EdgeOrder
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
orders No No
productFamiliesMetadata No No
Microsoft.EnterpriseKnowledgeGraph
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.EventGrid
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
domains / topics No No
eventSubscriptions No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
extensionTopics No No
partnerNamespaces / channels No No
partnerNamespaces / eventChannels No No
partnerTopics / eventSubscriptions No No
systemTopics / eventSubscriptions No No
topicTypes No No
Microsoft.EventHub
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
namespaces / authorizationrules No No
namespaces / disasterrecoveryconfigs No No
namespaces / eventhubs No No
namespaces / eventhubs / No No
authorizationrules
namespaces / eventhubs / No No
consumergroups
namespaces / networkrulesets No No
namespaces / No No
privateEndpointConnections
Microsoft.Experimentation
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Falcon
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Features
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
featureConfigurations No No
featureProviderNamespaces No No
featureProviders No No
features No No
providers No No
subscriptionFeatureRegistrations No No
Microsoft.Fidalgo
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
devcenters No No
devcenters / catalogs No No
devcenters / environmentTypes No No
devcenters / mappings No No
machinedefinitions No No
networksettings No No
networksettings / healthchecks No No
projects No No
projects / catalogItems No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
projects / environments No No
projects / environmentTypes No No
projects / pools No No
Microsoft.FluidRelay
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
fluidRelayServers No No
fluidRelayServers / fluidRelayContainers No No
Microsoft.Gallery
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
enroll No No
galleryitems No No
generateartifactaccessuri No No
myareas No No
myareas / areas No No
myareas / galleryitems No No
register No No
resources No No
retrieveresourcesbyid No No
Microsoft.Genomics
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Graph
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
AzureAdApplication No No
Microsoft.GuestConfiguration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
configurationProfileAssignments No No
guestConfigurationAssignments No No
software No No
softwareUpdateProfile No No
softwareUpdates No No
Microsoft.HanaOnAzure
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.HardwareSecurityModules
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.HDInsight
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters / applications No No
Microsoft.HealthBot
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
healthBots No No
Microsoft.HealthcareApis
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
services / iomtconnectors No No
services / iomtconnectors / No No
connections
services / No No
privateEndpointConnectionProxies
services / privateEndpointConnections No No
services / privateLinkResources No No
workspaces / eventGridFilters No No
workspaces / iotconnectors / No No
destinations
workspaces / iotconnectors / No No
fhirdestinations
workspaces / No No
privateEndpointConnectionProxies
workspaces / No No
privateEndpointConnections
workspaces / privateLinkResources No No
Microsoft.HpcWorkbench
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
instances No No
instances / chambers No No
instances / consortiums No No
Microsoft.HybridCompute
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
machines / assessPatches No No
machines / installPatches No No
machines / privateLinkScopes No No
privateLinkScopes / No No
privateEndpointConnectionProxies
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
privateLinkScopes / No No
privateEndpointConnections
Microsoft.HybridConnectivity
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
endpoints No No
Microsoft.HybridContainerService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
provisionedClusters No No
provisionedClusters / agentPools No No
provisionedClusters / No No
hybridIdentityMetadata
Microsoft.HybridData
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.HybridNetwork
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
devices No No
networkFunctions No No
networkFunctionVendors No No
registeredSubscriptions No No
vendors No No
vendors / vendorSkus No No
vendors / vendorSkus / No No
previewSubscriptions
Microsoft.Hydra
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.ImportExport
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Insights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
components / analyticsItems No No
components / favorites No No
components / linkedStorageAccounts No No
components / myAnalyticsItems No No
components / pricingPlans No No
components / No No
ProactiveDetectionConfigs
dataCollectionEndpoints No No
dataCollectionRuleAssociations No No
diagnosticSettings No No
myWorkbooks No No
privateLinkScopes / No No
privateEndpointConnections
privateLinkScopes / scopedResources No No
queryPacks / queries No No
Microsoft.Intune
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.IoTCentral
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
appTemplates No No
Microsoft.IoTFirmwareDefense
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
firmwareGroups No No
firmwareGroups / firmwares No No
Microsoft.IoTSecurity
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
alertTypes No No
defenderSettings No No
onPremiseSensors No No
recommendationTypes No No
sensors No No
sites No No
Microsoft.IoTSpaces
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.KeyVault
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
deletedManagedHSMs No No
deletedVaults No No
vaults / accessPolicies No No
vaults / eventGridFilters No No
vaults / keys No No
vaults / secrets No No
Microsoft.Kubernetes
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
connectedClusters No No
registeredSubscriptions No No
Microsoft.KubernetesConfiguration
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
extensions No No
fluxConfigurations No No
namespaces No No
sourceControlConfigurations No No
Microsoft.Kusto
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters / No No
attacheddatabaseconfigurations
clusters / databases No No
clusters / databases / No No
eventhubconnections
clusters / databases / No No
principalassignments
clusters / dataconnections No No
clusters / principalassignments No No
clusters / sharedidentities No No
Microsoft.LabServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
labaccounts Yes No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
users No No
Microsoft.LocationServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Logic
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
integrationServiceEnvironments / No No
managedApis
Microsoft.MachineLearning
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.MachineLearningServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
workspaces / batchEndpoints / No No
deployments / jobs
workspaces / codes No No
workspaces / components No No
workspaces / computes No No
workspaces / data No No
workspaces / datasets No No
workspaces / datastores No No
workspaces / environments No No
workspaces / eventGridFilters No No
workspaces / jobs No No
workspaces / labelingJobs No No
workspaces / linkedServices No No
workspaces / models No No
workspaces / services No No
NOTE
Workspace tags don't propagate to compute clusters and compute instances.
Microsoft.Maintenance
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
applyUpdates No No
configurationAssignments No No
publicMaintenanceConfigurations No No
updates No No
Microsoft.ManagedIdentity
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Identities No No
Microsoft.ManagedServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
marketplaceRegistrationDefinitions No No
registrationAssignments No No
registrationDefinitions No No
Microsoft.Management
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
getEntities No No
managementGroups No No
managementGroups / settings No No
resources No No
startTenantBackfill No No
tenantBackfillStatus No No
Microsoft.Maps
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / eventGridFilters No No
Microsoft.Marketplace
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
macc No No
offers No No
offerTypes No No
offerTypes / publishers No No
privategalleryitems No No
privateStoreClient No No
privateStores No No
privateStores / No No
AdminRequestApprovals
privateStores / billingAccounts No No
privateStores / bulkCollectionsAction No No
privateStores / collections No No
privateStores / collections / No No
transferOffers
privateStores / No No
collectionsToSubscriptionsMapping
privateStores / No No
fetchAllSubscriptionsInTenant
privateStores / offers No No
privateStores / offers / No No
acknowledgeNotification
privateStores / queryApprovedPlans No No
privateStores / queryNotificationsState No No
privateStores / queryOffers No No
privateStores / RequestApprovals No No
privateStores / requestApprovals / No No
query
privateStores / requestApprovals / No No
withdrawPlan
products No No
publishers No No
publishers / offers No No
register No No
Microsoft.MarketplaceApps
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
updateCommunicationPreference No No
Microsoft.MarketplaceNotifications
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
reviewsnotifications No No
Microsoft.MarketplaceOrdering
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
agreements No No
offertypes No No
Microsoft.Media
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
mediaservices / accountFilters No No
mediaservices / assets No No
mediaservices / contentKeyPolicies No No
mediaservices / eventGridFilters No No
mediaservices / graphInstances No No
mediaservices / graphTopologies No No
mediaservices / liveEventOperations No No
mediaservices / liveEvents / No No
liveOutputs
mediaservices / liveOutputOperations No No
mediaservices / mediaGraphs No No
mediaservices / No No
privateEndpointConnectionOperations
mediaservices / No No
privateEndpointConnectionProxies
mediaservices / No No
privateEndpointConnections
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
mediaservices / No No
streamingEndpointOperations
mediaservices / streamingLocators No No
mediaservices / streamingPolicies No No
mediaservices / transforms No No
videoAnalyzers / accessPolicies No No
videoAnalyzers / edgeModules No No
videoAnalyzers / livePipelines No No
videoAnalyzers / pipelineJobs No No
videoAnalyzers / pipelineTopologies No No
videoAnalyzers / videos No No
Microsoft.Migrate
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.MixedReality
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.MobileNetwork
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
mobileNetworks No No
mobileNetworks / dataNetworks No No
mobileNetworks / services No No
mobileNetworks / simPolicies No No
mobileNetworks / sites No No
mobileNetworks / slices No No
networks No No
networks / sites No No
packetCoreControlPlanes No No
packetCoreControlPlanes / No No
packetCoreDataPlanes
packetCoreControlPlanes / No No
packetCoreDataPlanes /
attachedDataNetworks
packetCores No No
sims No No
sims / simProfiles No No
Microsoft.Monitor
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.NetApp
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
netAppAccounts Yes No
netAppAccounts / accountBackups No No
netAppAccounts / capacityPools / No No
volumes / snapshots
netAppAccounts / capacityPools / No No
volumes / subvolumes
netAppAccounts / volumeGroups No No
Microsoft.NetworkFunction
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Network
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
azureFirewallFqdnTags No No
azureFirewalls Yes No
bastionHosts Yes No
bgpServiceCommunities No No
dnsOperationStatuses No No
dnszones / A No No
dnszones / AAAA No No
dnszones / all No No
dnszones / CAA No No
dnszones / CNAME No No
dnszones / MX No No
dnszones / NS No No
dnszones / PTR No No
dnszones / recordsets No No
dnszones / SOA No No
dnszones / SRV No No
dnszones / TXT No No
expressRouteServiceProviders No No
getDnsResourceReference No No
internalNotify No No
networkWatchers / Yes No
connectionMonitors
privateDnsOperationStatuses No No
privateDnsZones / A No No
privateDnsZones / AAAA No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
privateDnsZones / all No No
privateDnsZones / CNAME No No
privateDnsZones / MX No No
privateDnsZones / PTR No No
privateDnsZones / SOA No No
privateDnsZones / SRV No No
privateDnsZones / TXT No No
trafficManagerGeographicHierarchies No No
trafficmanagerprofiles/heatMaps No No
trafficManagerUserMetricsKeys No No
virtualNetworks / subnets No No
virtualWans Yes No
NOTE
For Azure Front Door Service, you can apply tags when creating the resource, but updating or adding tags is not
currently supported. Front Door doesn't support the use of # or : in the tag name.
Azure DNS zones and Traffic Manager doesn't support the use of spaces in the tag or a tag that starts with a number.
Azure DNS tag names do not support special and unicode characters. The value can contain all characters.
Azure IP Groups and Azure Firewall Policies don't support PATCH operations, which means they don't support updating
tags through the portal. Instead, use the update commands for those resources. For example, you can update tags for an
IP group with the az network ip-group update command.
Microsoft.Notebooks
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
NotebookProxies No No
Microsoft.NotificationHubs
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
namespaces Yes No
Microsoft.ObjectStore
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
osNamespaces No No
Microsoft.OffAzure
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.OpenEnergyPlatform
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
energyServices No No
Microsoft.OperationalInsights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
deletedWorkspaces No No
linkTargets No No
storageInsightConfigs No No
workspaces / dataExports No No
workspaces / dataSources No No
workspaces / linkedServices No No
workspaces / linkedStorageAccounts No No
workspaces / metadata No No
workspaces / query No No
workspaces / scopedPrivateLinkProxies No No
workspaces / storageInsightConfigs No No
workspaces / tables No No
Microsoft.OperationsManagement
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
managementassociations No No
Microsoft.Peering
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
cdnPeeringPrefixes No No
legacyPeerings No No
lookingGlass No No
peerAsns No No
peeringServiceCountries No No
peeringServiceProviders No No
Microsoft.PlayFab
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
PlayerAccountPools No No
Titles No No
Microsoft.PolicyInsights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
attestations No No
eventGridFilters No No
policyEvents No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
policyMetadata No No
policyStates No No
policyTrackedResources No No
remediations No No
Microsoft.Portal
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
consoles No No
tenantconfigurations No No
userSettings No No
Microsoft.PowerBI
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
tenants / workspaces No No
Microsoft.PowerBIDedicated
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.PowerPlatform
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.ProjectBabylon
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
deletedAccounts No No
Microsoft.ProviderHub
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
providerRegistrations No No
providerRegistrations / customRollouts No No
providerRegistrations / defaultRollouts No No
providerRegistrations / No No
resourceActions
providerRegistrations / No No
resourceTypeRegistrations
Microsoft.Purview
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / kafkaConfigurations No No
deletedAccounts No No
getDefaultAccount No No
removeDefaultAccount No No
setDefaultAccount No No
Microsoft.Quantum
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Workspaces No No
Microsoft.Quota
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
quotaRequests No No
quotas No No
usages No No
Microsoft.RecommendationsService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts No No
accounts / modeling No No
accounts / serviceEndpoints No No
Microsoft.RecoveryServices
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
backupProtectedItems No No
Microsoft.RedHatOpenShift
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Relay
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
namespaces / authorizationrules No No
namespaces / hybridconnections No No
namespaces / hybridconnections / No No
authorizationrules
namespaces / No No
privateEndpointConnections
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
namespaces / wcfrelays No No
namespaces / wcfrelays / No No
authorizationrules
Microsoft.ResourceConnector
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.ResourceGraph
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
resourceChangeDetails No No
resourceChanges No No
resources No No
resourcesHistory No No
subscriptionsStatus No No
Microsoft.ResourceHealth
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
availabilityStatuses No No
childAvailabilityStatuses No No
childResources No No
emergingissues No No
events No No
impactedResources No No
metadata No No
Microsoft.Resources
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
deployments Yes No
deployments / operations No No
deploymentScripts / logs No No
deploymentStacks No No
deploymentStacks / snapshots No No
links No No
providers No No
resourceGroups Yes No
subscriptions Yes No
tenants No No
Microsoft.SaaS
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
saasresources No No
Microsoft.Scheduler
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.Scom
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
managedInstances No No
Microsoft.ScVmm
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
AvailabilitySets No No
clouds No No
VirtualMachines No No
VirtualMachineTemplates No No
VirtualNetworks No No
vmmservers No No
VMMServers / InventoryItems No No
Microsoft.Search
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
resourceHealthMetadata No No
Microsoft.Security
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
adaptiveNetworkHardenings No No
advancedThreatProtectionSettings No No
alerts No No
alertsSuppressionRules No No
allowedConnections No No
antiMalwareSettings No No
applicationWhitelistings No No
assessmentMetadata No No
assessments No No
assessments / governanceAssignments No No
attackPaths No No
autoDismissAlertsRules No No
AutoProvisioningSettings No No
Compliances No No
connectedContainerRegistries No No
connectors No No
dataCollectionAgents No No
deviceSecurityGroups No No
discoveredSecuritySolutions No No
externalSecuritySolutions No No
governanceRules No No
InformationProtectionPolicies No No
ingestionSettings No No
insights No No
iotSecuritySolutions / analyticsModels No No
iotSecuritySolutions / analyticsModels No No
/ aggregatedAlerts
iotSecuritySolutions / analyticsModels No No
/ aggregatedRecommendations
iotSecuritySolutions / iotAlerts No No
iotSecuritySolutions / iotAlertTypes No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
iotSecuritySolutions / No No
iotRecommendations
iotSecuritySolutions / No No
iotRecommendationTypes
jitNetworkAccessPolicies No No
jitPolicies No No
MdeOnboardings No No
policies No No
pricings No No
regulatoryComplianceStandards No No
regulatoryComplianceStandards / No No
regulatoryComplianceControls
regulatoryComplianceStandards / No No
regulatoryComplianceControls /
regulatoryComplianceAssessments
secureScoreControlDefinitions No No
secureScoreControls No No
secureScores No No
secureScores / secureScoreControls No No
securityContacts No No
securitySolutions No No
securitySolutionsReferenceData No No
securityStatuses No No
securityStatusesSummaries No No
serverVulnerabilityAssessments No No
settings No No
sqlVulnerabilityAssessments No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
subAssessments No No
tasks No No
topologies No No
workspaceSettings No No
Microsoft.SecurityGraph
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.SecurityInsights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
aggregations No No
alertRules No No
alertRuleTemplates No No
automationRules No No
bookmarks No No
cases No No
dataConnectors No No
dataConnectorsCheckRequirements No No
enrichment No No
entities No No
entityQueries No No
entityQueryTemplates No No
incidents No No
metadata No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
MitreCoverageRecords No No
officeConsents No No
onboardingStates No No
settings No No
sourceControls No No
threatIntelligence No No
watchlists No No
Microsoft.SerialConsole
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
consoleServices No No
serialPorts No No
Microsoft.ServiceBus
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
namespaces / authorizationrules No No
namespaces / disasterrecoveryconfigs No No
namespaces / eventgridfilters No No
namespaces / networkrulesets No No
namespaces / No No
privateEndpointConnections
namespaces / queues No No
namespaces / queues / No No
authorizationrules
namespaces / topics No No
namespaces / topics / No No
authorizationrules
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
premiumMessagingRegions No No
Microsoft.ServiceFabric
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters / applications No No
edgeclusters / applications No No
managedclusters / applications No No
managedclusters / applications / No No
services
managedclusters / applicationTypes No No
managedclusters / applicationTypes / No No
versions
managedclusters / nodetypes No No
secretstores / certificates No No
secretstores / secrets No No
Microsoft.ServiceFabricMesh
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.ServiceLinker
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
dryruns No No
linkers No No
Microsoft.Services
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
providerRegistrations No No
providerRegistrations / No No
resourceTypeRegistrations
Microsoft.SignalRService
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
SignalR / eventGridFilters No No
Microsoft.Singularity
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / accountQuotaPolicies No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts / groupPolicies No No
accounts / jobs No No
accounts / models No No
accounts / storageContainers No No
images No No
quotas No No
Microsoft.SoftwarePlan
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
hybridUseBenefits No No
Microsoft.Solutions
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.SQL
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
longtermRetentionManagedInstance / No No
longtermRetentionDatabase /
longtermRetentionBackup
longtermRetentionServer / No No
longtermRetentionDatabase /
longtermRetentionBackup
managedInstances / administrators No No
managedInstances / databases No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
managedInstances / databases / No No
backupLongTermRetentionPolicies
managedInstances / databases / No No
backupShortTermRetentionPolicies
managedInstances / databases / No No
schemas / tables / columns /
sensitivityLabels
managedInstances / databases / No No
vulnerabilityAssessments
managedInstances / databases / No No
vulnerabilityAssessments / rules /
baselines
managedInstances / No No
encryptionProtector
managedInstances / keys No No
managedInstances / No No
restorableDroppedDatabases /
backupShortTermRetentionPolicies
managedInstances / sqlAgent No No
managedInstances / No No
vulnerabilityAssessments
servers / administrators No No
servers / advisors No No
servers / auditingSettings No No
servers / communicationLinks No No
servers / databases / No No
backupLongTermRetentionPolicies
servers / databases / No No
backupShortTermRetentionPolicies
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
servers / databases / No No
dataMaskingPolicies
servers / databases / No No
securityAlertPolicies
servers / databases / No No
transparentDataEncryption
servers / encryptionProtector No No
servers / failoverGroups No No
servers / firewallRules No No
servers / keys No No
servers / restorableDroppedDatabases No No
servers / serviceobjectives No No
servers / tdeCertificates No No
servers / virtualNetworkRules No No
virtualClusters No No
NOTE
The Master database doesn't support tags, but other databases, including Azure Synapse Analytics databases, support
tags. Azure Synapse Analytics databases must be in Active (not Paused) state.
Microsoft.SqlVirtualMachine
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
SqlVirtualMachineGroups / No No
AvailabilityGroupListeners
Microsoft.Storage
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
dataMovers / agents No No
dataMovers / endpoints No No
dataMovers / projects No No
deletedAccounts No No
storageAccounts / blobServices No No
storageAccounts / encryptionScopes No No
storageAccounts / fileServices No No
storageAccounts / queueServices No No
storageAccounts / services No No
storageAccounts / services / No No
metricDefinitions
storageAccounts / tableServices No No
usages No No
Microsoft.StorageCache
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
caches / storageTargets No No
usageModels No No
Microsoft.StorageReplication
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
replicationGroups No No
Microsoft.StorageSync
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
storageSyncServices / No No
registeredServers
storageSyncServices / syncGroups No No
storageSyncServices / syncGroups / No No
cloudEndpoints
storageSyncServices / syncGroups / No No
serverEndpoints
storageSyncServices / workflows No No
Microsoft.StorSimple
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.StreamAnalytics
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
clusters / privateEndpoints No No
Microsoft.Subscription
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
acceptChangeTenant No No
acceptOwnership No No
acceptOwnershipStatus No No
aliases No No
cancel No No
changeTenantRequest No No
changeTenantStatus No No
CreateSubscription No No
enable No No
policies No No
rename No No
SubscriptionDefinitions No No
SubscriptionOperations No No
subscriptions No No
Microsoft.Synapse
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
kustoOperations No No
workspaces / kustoPools / No No
attacheddatabaseconfigurations
workspaces / operationStatuses No No
Microsoft.TestBase
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
testBaseAccounts No No
testBaseAccounts / customerEvents No No
testBaseAccounts / emailEvents No No
testBaseAccounts / flightingRings No No
testBaseAccounts / packages No No
testBaseAccounts / packages / No No
favoriteProcesses
testBaseAccounts / packages / No No
osUpdates
testBaseAccounts / testSummaries No No
testBaseAccounts / testTypes No No
testBaseAccounts / usages No No
Microsoft.TimeSeriesInsights
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
environments Yes No
environments / accessPolicies No No
environments / No No
privateEndpointConnectionProxies
environments / No No
privateEndpointConnections
environments / privateLinkResources No No
Microsoft.VideoIndexer
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts No No
Microsoft.VirtualMachineImages
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
imageTemplates / runOutputs No No
Microsoft.VMware
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
arczones No No
resourcepools No No
vcenters No No
VCenters / InventoryItems No No
virtualmachines No No
virtualmachinetemplates No No
virtualnetworks No No
Microsoft.VMwareCloudSimple
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.VSOnline
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
accounts Yes No
plans Yes No
registeredSubscriptions No No
Microsoft.WindowsDefenderATP
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
diagnosticSettings No No
diagnosticSettingsCategories No No
Microsoft.Web
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
apiManagementAccounts No No
apiManagementAccounts / apiAcls No No
apiManagementAccounts / apis No No
apiManagementAccounts / apis / No No
apiAcls
apiManagementAccounts / apis / No No
connectionAcls
apiManagementAccounts / apis / No No
connections
apiManagementAccounts / apis / No No
connections / connectionAcls
apiManagementAccounts / apis / No No
localizedDefinitions
apiManagementAccounts / No No
connectionAcls
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
apiManagementAccounts / No No
connections
billingMeters No No
deletedSites No No
functionAppStacks No No
generateGithubAccessTokenForAppser No No
viceCLI
hostingEnvironments / No No
eventGridFilters
hostingEnvironments / multiRolePools No No
hostingEnvironments / workerPools No No
publishingUsers No No
recommendations No No
resourceHealthMetadata No No
runtimes No No
serverFarms / eventGridFilters No No
serverFarms / firstPartyApps No No
serverFarms / firstPartyApps / No No
keyVaultSettings
sites / config No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
sites / eventGridFilters No No
sites / hostNameBindings No No
sites / networkConfig No No
sourceControls No No
validate No No
verifyHostingEnvironmentVnet No No
webAppStacks No No
Microsoft.WindowsESU
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.WindowsIoT
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
Microsoft.WorkloadBuilder
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
migrationAgents No No
workloads No No
workloads / instances No No
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
workloads / versions No No
Microsoft.WorkloadMonitor
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
monitors No No
Microsoft.Workloads
RESO URC E T Y P E SUP P O RT S TA GS TA G IN C O ST REP O RT
monitors No No
monitors / providerInstances No No
phpWorkloads No No
phpWorkloads / wordpressInstances No No
sapVirtualInstances No No
sapVirtualInstances / No No
applicationInstances
sapVirtualInstances / centralInstances No No
sapVirtualInstances / No No
databaseInstances
Next steps
To learn how to apply tags to resources, see Use tags to organize your Azure resources.
Azure Resource Graph sample queries for Azure
Resource Manager
2/23/2022 • 4 minutes to read • Edit Online
This page is a collection of Azure Resource Graph sample queries for Azure Resource Manager. For a complete
list of Azure Resource Graph samples, see Resource Graph samples by Category and Resource Graph samples
by Table.
Resources
| where type =~ 'microsoft.storage/storageaccounts'
| join kind=inner (
ResourceContainers
| where type =~ 'microsoft.resources/subscriptions/resourcegroups'
| mv-expand bagexpansion=array tags
| where isnotempty(tags)
| where tags[0] =~ 'key1' and tags[1] =~ 'value1'
| project subscriptionId, resourceGroup)
on subscriptionId, resourceGroup
| project-away subscriptionId1, resourceGroup1
Azure CLI
Azure PowerShell
Portal
Find storage accounts with a specific case -sensitive tag on the resource group
The following query uses an inner join to connect storage accounts with resource groups that have a
specified case-sensitive tag name and tag value.
Resources
| where type =~ 'microsoft.storage/storageaccounts'
| join kind=inner (
ResourceContainers
| where type =~ 'microsoft.resources/subscriptions/resourcegroups'
| where tags['Key1'] =~ 'Value1'
| project subscriptionId, resourceGroup)
on subscriptionId, resourceGroup
| project-away subscriptionId1, resourceGroup1
Azure CLI
Azure PowerShell
Portal
Resources
| project tags
| summarize buildschema(tags)
Azure CLI
Azure PowerShell
Portal
ResourceContainers
| where isnotempty(tags)
| project tags
| mvexpand tags
| extend tagKey = tostring(bag_keys(tags)[0])
| extend tagValue = tostring(tags[tagKey])
| union (
resources
| where isnotempty(tags)
| project tags
| mvexpand tags
| extend tagKey = tostring(bag_keys(tags)[0])
| extend tagValue = tostring(tags[tagKey])
)
| distinct tagKey, tagValue
| where tagKey !startswith "hidden-"
Azure CLI
Azure PowerShell
Portal
az graph query -q "ResourceContainers | where isnotempty(tags) | project tags | mvexpand tags | extend
tagKey = tostring(bag_keys(tags)[0]) | extend tagValue = tostring(tags[tagKey]) | union ( resources | where
isnotempty(tags) | project tags | mvexpand tags | extend tagKey = tostring(bag_keys(tags)[0]) | extend
tagValue = tostring(tags[tagKey]) ) | distinct tagKey, tagValue | where tagKey !startswith "hidden-""
Resources
| where tags.environment=~'internal'
| project name, tags
Azure CLI
Azure PowerShell
Portal
Next steps
Learn more about the query language.
Learn more about how to explore resources.
See samples of Starter language queries.
See samples of Advanced language queries.
Use portal to create private link for managing Azure
resources
2/23/2022 • 3 minutes to read • Edit Online
This article explains how you can use Azure Private Link to restrict access for managing resources in your
subscriptions. It shows using the Azure portal for setting up management of resources through private access.
Private links enable you to access Azure services over a private endpoint in your virtual network. When you
combine private links with Azure Resource Manager's operations, you block users who aren't at the specific
endpoint from managing resources. If a malicious user gets credentials to an account in your subscription, that
user can't manage the resources without being at the specific endpoint.
Private link provides the following security benefits:
Private Access - users can manage resources from a private network via a private endpoint.
Data exfiltration - users are denied access to resources not included in the scope.
NOTE
Azure Kubernetes Service (AKS) currently doesn't support the ARM private endpoint implementation.
Understand architecture
For this release, you can only apply private link management access at the level of the root management group.
This limitation means private link access is applied across your tenant.
There are two resource types you'll use when implementing management through a private link.
Resource management private link (Microsoft.Authorization/resourceManagementPrivateLinks)
Private link association (Microsoft.Authorization/privateLinkAssociations)
The following image shows how to construct a solution that restricts access for managing resources.
The private link association extends the root management group. The private link association and the private
endpoints reference the resource management private link.
Workflow
To set up a private link for resources, use the following steps. The steps are described in greater detail later in
this article.
1. Create the resource management private link.
2. Create a private link association. The private link association extends the root management group. It also
references the resource ID for the resource management private link.
3. Add a private endpoint that references the resource management private link.
After completing those steps, you can manage Azure resources that are within the hierarchy of the scope. You
use a private endpoint that is connected to the subnet.
You can monitor access to the private link. For more information, see Logging and monitoring.
Required permissions
To set up the private link for resource management, you need the following access:
Owner on the subscription. This access is needed to create resource management private link resource.
Owner or Contributor at the root management group. This access is needed to create the private link
association resource.
The Global Administrator for the Azure Active Directory doesn't automatically have permission to assign
roles at the root management group. To enable creating resource management private links, the Global
Administrator must have permission to read root management group and elevate access to have User Access
Administrator permission on all subscriptions and management groups in the tenant. After getting the User
Access Administrator permission, the Global Administrator must grant Owner or Contributor permission at
the root management group to the user creating the private link association.
2. If your subscription doesn't already have resource management private links, you'll see a blank page.
Select Create resource management private link .
3. Provide values for the new resource management private link. The root management group for the
directory you selected is used for the new resource. Select Review + create .
4. After validation passes, select Create .
This article explains how you can use Azure Private Link to restrict access for managing resources in your
subscriptions.
Private links enable you to access Azure services over a private endpoint in your virtual network. When you
combine private links with Azure Resource Manager's operations, you block users who aren't at the specific
endpoint from managing resources. If a malicious user gets credentials to an account in your subscription, that
user can't manage the resources without being at the specific endpoint.
Private link provides the following security benefits:
Private Access - users can manage resources from a private network via a private endpoint.
Data exfiltration - users are denied access to resources not included in the scope.
NOTE
Azure Kubernetes Service (AKS) currently doesn't support the ARM private endpoint implementation.
Understand architecture
For this release, you can only apply private link management access at the level of the root management group.
This limitation means private link access is applied across your tenant.
There are two resource types you'll use when implementing management through a private link.
Resource management private link (Microsoft.Authorization/resourceManagementPrivateLinks)
Private link association (Microsoft.Authorization/privateLinkAssociations)
The following image shows how to construct a solution that restricts access for managing resources.
The private link association extends the root management group. The private link association and the private
endpoints reference the resource management private link.
Workflow
To set up a private link for resources, use the following steps. The steps are described in greater detail later in
this article.
1. Create the resource management private link.
2. Create a private link association. The private link association extends the root management group. It also
references the resource ID for the resource management private link.
3. Add a private endpoint that references the resource management private link.
After completing those steps, you can manage Azure resources that are within the hierarchy of the scope. You
use a private endpoint that is connected to the subnet.
You can monitor access to the private link. For more information, see Logging and monitoring.
Required permissions
To set up the private link for resource management, you need the following access:
Owner on the subscription. This access is needed to create resource management private link resource.
Owner or Contributor at the root management group. This access is needed to create the private link
association resource.
The Global Administrator for the Azure Active Directory doesn't automatically have permission to assign
roles at the root management group. To enable creating resource management private links, the Global
Administrator must have permission to read root management group and elevate access to have User Access
Administrator permission on all subscriptions and management groups in the tenant. After getting the User
Access Administrator permission, the Global Administrator must grant Owner or Contributor permission at
the root management group to the user creating the private link association.
PUT
https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Mic
rosoft.Authorization/resourceManagementPrivateLinks/{rmplName}?api-version=2020-05-01
In the request body, include the location you want for the resource:
{
"location":"{region}"
}
{
"id":
"/subscriptions/{subID}/resourceGroups/{rgName}/providers/Microsoft.Authorization/resourceManagementPrivateL
inks/{name}",
"location": "{region}",
"name": "{rmplName}",
"properties": {
"privateEndpointConnections": []
},
"resourceGroup": "{rgName}",
"type": "Microsoft.Authorization/resourceManagementPrivateLinks"
}
Note the ID that is returned for the new resource management private link. You'll use it for creating the private
link association.
{
"properties": {
"privateLink": "/subscriptions/{subscription-id}/resourceGroups/{rg-
name}/providers/Microsoft.Authorization/resourceManagementPrivateLinks/{rmplName}",
"publicNetworkAccess": "enabled"
}
}
{
"id": {plaResourceId},
"name": {plaName},
"properties": {
"privateLink": {rmplResourceId},
"publicNetworkAccess": "Enabled",
"tenantId": "{tenantId}",
"scope": "/providers/Microsoft.Management/managementGroups/{managementGroupId}"
},
"type": "Microsoft.Authorization/privateLinkAssociations"
}
PUT
https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Mic
rosoft.Network/privateEndpoints/{privateEndpointName}?api-version=2020-11-01
In the request body, set the privateServiceLinkId to the ID from your resource management private link. The
groupIds must contain ResourceManagement . The location of the private endpoint must be the same as the
location of the subnet.
{
"location": "westus2",
"properties": {
"privateLinkServiceConnections": [
{
"name": "{connection-name}",
"properties": {
"privateLinkServiceId":
"/subscriptions/{subID}/resourceGroups/{rgName}/providers/Microsoft.Authorization/resourceManagementPrivateL
inks/{name}",
"groupIds": [
"ResourceManagement"
]
}
}
],
"subnet": {
"id":
"/subscriptions/{subID}/resourceGroups/{rgName}/providers/Microsoft.Network/virtualNetworks/{vnet-
name}/subnets/{subnet-name}"
}
}
}
The next step varies depending whether you're using automatic or manual approval. For more information
about approval, see Access to a private link resource using approval workflow.
The response includes approval state.
"privateLinkServiceConnectionState": {
"actionsRequired": "None",
"description": "",
"status": "Approved"
},
If your request is automatically approved, you can continue to the next section. If your request requires manual
approval, wait for the network admin to approve your private endpoint connection.
Next steps
To learn more about private links, see Azure Private Link.
Manage resource management private links with
REST API
2/23/2022 • 2 minutes to read • Edit Online
This article explains how you to work with existing resource management private links. It shows REST API
operations for getting and deleting existing resources.
If you need to create a resource management private link, see Use portal to create private link for managing
Azure resources or Use REST API to create private link for managing Azure resources.
GET
https://management.azure.com/subscriptions/{subscriptionID}/resourceGroups/{resourceGroupName}/providers/Mic
rosoft.Authorization/resourceManagementPrivateLinks/{rmplName}?api-version=2020-05-01
{
"properties": {
"privateEndpointConnections": []
},
"id": {rmplResourceId},
"name": {rmplName},
"type": "Microsoft.Authorization/resourceManagementPrivateLinks",
"location": {region}
}
GET
https://management.azure.com/subscriptions/{subscriptionID}/providers/Microsoft.Authorization/resourceManage
mentPrivateLinks?api-version=2020-05-01
DELETE
https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Mic
rosoft.Authorization/resourceManagementPrivateLinks/{rmplName}?api-version=2020-05-01
GET
https://management.azure.com/providers/Microsoft.Management/managementGroups/{managementGroupID}/providers/M
icrosoft.Authorization/privateLinkAssociations?api-version=2020-05-01
{
"value": [
{
"properties": {
"privateLink": {rmplResourceID},
"tenantId": {tenantId},
"scope": "/providers/Microsoft.Management/managementGroups/{managementGroupId}"
},
"id": {plaResourceId},
"type": "Microsoft.Authorization/privateLinkAssociations",
"name": {plaName}
}
]
}
Private endpoints
To get all private endpoints in a subscription, use:
GET
https://management.azure.com/subscriptions/{subscriptionId}/providers/Microsoft.Network/privateEndpoints?
api-version=2020-04-01
Next steps
To learn more about private links, see Azure Private Link.
To create a resource management private links, see Use portal to create private link for managing Azure
resources or Use REST API to create private link for managing Azure resources.
Manage Azure Resource Manager resource groups
by using the Azure portal
2/23/2022 • 3 minutes to read • Edit Online
Learn how to use the Azure portal with Azure Resource Manager to manage your Azure resource groups. For
managing Azure resources, see Manage Azure resources by using the Azure portal.
Other articles about managing resource groups:
Manage Azure resource groups by using Azure CLI
Manage Azure resource groups by using Azure PowerShell
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.
3. To customize the information displayed for the resource groups, select Edit columns . The following
screenshot shows the addition columns you could add to the display:
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure Resource Manager resource groups
by using Azure CLI
2/23/2022 • 2 minutes to read • Edit Online
Learn how to use Azure CLI with Azure Resource Manager to manage your Azure resource groups. For
managing Azure resources, see Manage Azure resources by using Azure CLI.
Other articles about managing resource groups:
Manage Azure resource groups by using the Azure portal
Manage Azure resource groups by using Azure PowerShell
az group list
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Deploy resources
You can deploy Azure resources by using Azure CLI, or by deploying an Azure Resource Manager (ARM)
template or Bicep file.
The following example creates a storage account. The name you provide for the storage account must be unique
across Azure.
az storage account create --resource-group exampleGroup --name examplestore --location westus --sku
Standard_LRS --kind StorageV2
For more information about deploying an ARM template, see Deploy resources with Resource Manager
templates and Azure CLI.
For more information about deploying a Bicep file, see Deploy resources with Bicep and Azure CLI.
For more information, see Lock resources with Azure Resource Manager.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
Manage Azure Resource Manager resource groups
by using Azure PowerShell
2/23/2022 • 2 minutes to read • Edit Online
Learn how to use Azure PowerShell with Azure Resource Manager to manage your Azure resource groups. For
managing Azure resources, see Manage Azure resources by using Azure PowerShell.
Other articles about managing resource groups:
Manage Azure resource groups by using the Azure portal
Manage Azure resource groups by using Azure CLI
Get-AzResourceGroup
To get one resource group, provide the name of the resource group.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Deploy resources
You can deploy Azure resources by using Azure PowerShell, or by deploying an Azure Resource Manager (ARM)
template or Bicep file.
The following example creates a storage account. The name you provide for the storage account must be unique
across Azure.
For more information about deploying an ARM template, see Deploy resources with ARM templates and Azure
PowerShell.
For more information about deploying a Bicep file, see Deploy resources with Bicep and Azure PowerShell.
For more information, see Lock resources with Azure Resource Manager.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
Manage Azure resources by using the Azure portal
2/23/2022 • 3 minutes to read • Edit Online
Learn how to use the Azure portal with Azure Resource Manager to manage your Azure resources. For
managing resource groups, see Manage Azure resource groups by using the Azure portal.
Other articles about managing resources:
Manage Azure resources by using Azure CLI
Manage Azure resources by using Azure PowerShell
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.
Open resources
Azure resources are organized by Azure services and by resource groups. The following procedures shows how
to open a storage account called mystorage0207 . The virtual machine resides in a resource group called
mystorage0207rg .
To open a resource by the service type:
1. Sign in to the Azure portal.
2. In the left pane, select the Azure service. In this case, Storage accounts . If you don't see the service
listed, select All ser vices , and then select the service type.
Manage resources
When viewing a resource in the portal, you see the options for managing that particular resource.
The screenshot shows the management options for an Azure virtual machine. You can perform operations such
as starting, restarting, and stopping a virtual machine.
Delete resources
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Delete . The following screenshot shows the management options for a virtual machine.
3. Type the name of the resource to confirm the deletion, and then select Delete .
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Move . The following screenshot shows the management options for a storage account.
3. Select Move to another resource group or Move to another subscription depending on your
needs.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources,
such as Azure subscription, resource group, or resource.
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Locks . The following screenshot shows the management options for a storage account.
Tag resources
Tagging helps organizing your resource group and resources logically.
1. Open the resource in the portal. For the steps, see Open resources.
2. Select Tags . The following screenshot shows the management options for a storage account.
3. Specify the tag properties, and then select Save .
For information, see Using tags to organize your Azure resources.
Monitor resources
When you open a resource, the portal presents default graphs and tables for monitoring that resource type. The
following screenshot shows the graphs for a virtual machine:
You can select the pin icon on the upper right corner of the graphs to pin the graph to the dashboard. To learn
about working with dashboards, see Creating and sharing dashboards in the Azure portal.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure resources by using Azure CLI
2/23/2022 • 3 minutes to read • Edit Online
Learn how to use Azure CLI with Azure Resource Manager to manage your Azure resources. For managing
resource groups, see Manage Azure resource groups by using Azure CLI.
Other articles about managing resources:
Manage Azure resources by using the Azure portal
Manage Azure resources by using Azure PowerShell
Deploy a template
The following script creates deploy a Quickstart template to create a storage account. For more information, see
Quickstart: Create ARM templates with Visual Studio Code.
For more information, see Deploy resources with Resource Manager templates and Azure CLI.
Delete resources
The following script shows how to delete a storage account.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
The following script shows how to remove a storage account from one resource group to another resource
group.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources,
such as Azure subscription, resource group, or resource.
The following script locks a storage account so the account can't be deleted.
For more information, see Lock resources with Azure Resource Manager.
Tag resources
Tagging helps organizing your resource group and resources logically. For information, see Using tags to
organize your Azure resources.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Manage Azure resources by using Azure PowerShell
2/23/2022 • 3 minutes to read • Edit Online
Learn how to use Azure PowerShell with Azure Resource Manager to manage your Azure resources. For
managing resource groups, see Manage Azure resource groups by using Azure PowerShell.
Other articles about managing resources:
Manage Azure resources by using the Azure portal
Manage Azure resources by using Azure CLI
Deploy a template
The following script creates deploy a Quickstart template to create a storage account. For more information, see
Quickstart: Create Azure Resource Manager templates by using Visual Studio Code.
For more information, see Deploy resources with Resource Manager templates and Azure PowerShell.
Delete resources
The following script shows how to delete a storage account.
For more information about how Azure Resource Manager orders the deletion of resources, see Azure Resource
Manager resource group deletion.
Move resources
The following script shows how to remove a storage account from one resource group to another resource
group.
For more information, see Move resources to new resource group or subscription.
Lock resources
Locking prevents other users in your organization from accidentally deleting or modifying critical resources,
such as Azure subscription, resource group, or resource.
The following script locks a storage account so the account can't be deleted.
For more information, see Lock resources with Azure Resource Manager.
Tag resources
Tagging helps organizing your resource group and resources logically. For information, see Using tags to
organize your Azure resources.
Next steps
To learn Azure Resource Manager, see Azure Resource Manager overview.
To learn the Resource Manager template syntax, see Understand the structure and syntax of Azure Resource
Manager templates.
To learn how to develop templates, see the step-by-step tutorials.
To view the Azure Resource Manager template schemas, see template reference.
Azure resource providers and types
2/23/2022 • 7 minutes to read • Edit Online
When deploying resources, you frequently need to retrieve information about the resource providers and types.
For example, if you want to store keys and secrets, you work with the Microsoft.KeyVault resource provider. This
resource provider offers a resource type called vaults for creating the key vault.
The name of a resource type is in the format: {resource-provider}/{resource-type} . The resource type for a
key vault is Microsoft.KeyVault/vaults .
In this article, you learn how to:
View all resource providers in Azure
Check registration status of a resource provider
Register a resource provider
View resource types for a resource provider
View valid locations for a resource type
View valid API versions for a resource type
You can do these steps through the Azure portal, Azure PowerShell, or Azure CLI.
For a list that maps resource providers to Azure services, see Resource providers for Azure services.
IMPORTANT
Only register a resource provider when you're ready to use it. The registration step enables you to maintain least
privileges within your subscription. A malicious user can't use resource providers that aren't registered.
Some resource providers are registered by default. For a list of resource providers registered by default, see
Resource providers for Azure services.
Other resource providers are registered automatically when you take certain actions. When you create a
resource through the portal, the resource provider is typically registered for you. When you deploy an Azure
Resource Manager template or Bicep file, resource providers defined in the template are registered
automatically. However, if a resource in the template creates supporting resources that aren't in the template,
such as monitoring or security resources, you need to manually register those resource providers.
For other scenarios, you may need to manually register a resource provider.
IMPORTANT
Your application code shouldn't block the creation of resources for a resource provider that is in the registering
state. When you register the resource provider, the operation is done individually for each supported region. To create
resources in a region, the registration only needs to be completed in that region. By not blocking a resource provider in
the registering state, your application can continue much sooner than waiting for all regions to complete.
You must have permission to do the /register/action operation for the resource provider. The permission is
included in the Contributor and Owner roles.
You can't unregister a resource provider when you still have resource types from that resource provider in your
subscription.
Azure portal
Register resource provider
To see all resource providers, and the registration status for your subscription:
1. Sign in to the Azure portal.
2. On the Azure portal menu, search for Subscriptions . Select it from the available options.
5. Expand a resource provider and resource type that you want to view.
6. Resource Manager is supported in all regions, but the resources you deploy might not be supported in all
regions. Also, there may be limitations on your subscription that prevent you from using some regions
that support the resource. The resource explorer displays valid locations for the resource type.
7. The API version corresponds to a version of REST API operations that are released by the resource
provider. As a resource provider enables new features, it releases a new version of the REST API. The
resource explorer displays valid API versions for the resource type.
Azure PowerShell
To see all resource providers in Azure, and the registration status for your subscription, use:
To maintain least privileges in your subscription, only register those resource providers that you're ready to use.
To register a resource provider, use:
ProviderNamespace : Microsoft.Batch
RegistrationState : Registering
ResourceTypes : {batchAccounts, operations, locations, locations/quotas}
Locations : {West Europe, East US, East US 2, West US...}
IMPORTANT
As noted earlier, don't block the creation of resources for a resource provider that is in the registering state. By
not blocking a resource provider in the registering state, your application can continue much sooner than waiting for all
regions to complete.
{ProviderNamespace : Microsoft.Batch
RegistrationState : Registered
ResourceTypes : {batchAccounts}
Locations : {West Europe, East US, East US 2, West US...}
...
The API version corresponds to a version of REST API operations that are released by the resource provider. As a
resource provider enables new features, it releases a new version of the REST API.
To get the available API versions for a resource type, use:
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
Resource Manager is supported in all regions, but the resources you deploy might not be supported in all
regions. Also, there may be limitations on your subscription that prevent you from using some regions that
support the resource.
To get the supported locations for a resource type, use.
West Europe
East US
East US 2
West US
...
Azure CLI
To see all resource providers in Azure, and the registration status for your subscription, use:
Provider Status
-------------------------------- ----------------
Microsoft.ClassicCompute Registered
Microsoft.ClassicNetwork Registered
Microsoft.ClassicStorage Registered
Microsoft.CognitiveServices Registered
...
To see all registered resource providers for your subscription, use:
To maintain least privileges in your subscription, only register those resource providers that you're ready to use.
To register a resource provider, use:
{
"id": "/subscriptions/####-####/providers/Microsoft.Batch",
"namespace": "Microsoft.Batch",
"registrationsState": "Registering",
"resourceTypes:" [
...
]
}
IMPORTANT
As noted earlier, don't block the creation of resources for a resource provider that is in the registering state. By
not blocking a resource provider in the registering state, your application can continue much sooner than waiting for all
regions to complete.
Result
---------------
batchAccounts
operations
locations
locations/quotas
The API version corresponds to a version of REST API operations that are released by the resource provider. As a
resource provider enables new features, it releases a new version of the REST API.
To get the available API versions for a resource type, use:
az provider show --namespace Microsoft.Batch --query "resourceTypes[?
resourceType=='batchAccounts'].apiVersions | [0]" --out table
Result
---------------
2017-05-01
2017-01-01
2015-12-01
2015-09-01
2015-07-01
Resource Manager is supported in all regions, but the resources you deploy might not be supported in all
regions. Also, there may be limitations on your subscription that prevent you from using some regions that
support the resource.
To get the supported locations for a resource type, use.
Result
---------------
West Europe
East US
East US 2
West US
...
Next steps
To learn about creating Resource Manager templates, see Authoring Azure Resource Manager templates.
To view the resource provider template schemas, see Template reference.
For a list that maps resource providers to Azure services, see Resource providers for Azure services.
To view the operations for a resource provider, see Azure REST API.
Set up preview features in Azure subscription
2/23/2022 • 5 minutes to read • Edit Online
This article shows you how to manage preview features in your Azure subscription. Preview features let you opt
in to new functionality before it's released. Some preview features are available to anyone who wants to opt in.
Other preview features require approval from the product team.
Azure Feature Exposure Control (AFEC) is available through the Microsoft.Features namespace. Preview features
have the following format for the resource ID:
Microsoft.Features/providers/{resourceProviderNamespace}/features/{featureName}
The portal only shows a preview feature when the service that owns the feature has explicitly opted in to the
preview features management experience.
1. Sign in to the Azure portal.
2. In the search box, enter subscriptions and select Subscriptions .
5. You see a list of available preview features and your current registration status.
6. From Preview features you can filter the list by name , State , or Type :
Filter by name : Must contain text from a preview feature's name, not the Display name .
State : Select the drop-down menu and choose a state. The portal doesn't filter by Unregistered .
Type : Select the drop-down menu and choose a type.
Portal
Azure CLI
PowerShell
You can unregister preview features from Preview features . The State changes to Not registered .
1. Sign in to the Azure portal.
2. In the search box, enter subscriptions and select Subscriptions .
3. Select the link for your subscription's name.
4. From the left menu, under Settings select Preview features .
5. Select the link for the preview feature you want to unregister.
6. Select Unregister .
7. Select OK .
Next steps
To use REST API calls and list, register, or unregister preview features, see the Features documentation.
For more information about how to register a resource provider, see Azure resource providers and types.
For a list that maps resource providers to Azure services, see Resource providers for Azure services.
Azure Resource Manager resource group and
resource deletion
2/23/2022 • 2 minutes to read • Edit Online
This article shows how to delete resource groups and resources. It describes how Azure Resource Manager
orders the deletion of resources when you delete a resource group.
After deletion
Resource Manager issues a GET call on each resource that it tried to delete. The response of this GET call is
expected to be 404. When Resource Manager gets a 404, it considers the deletion to have completed
successfully. Resource Manager removes the resource from its cache.
However, if the GET call on the resource returns a 200 or 201, Resource Manager recreates the resource.
If the GET operation returns an error, Resource Manager retries the GET for the following error code:
Less than 100
408
429
Greater than 500
For other error codes, Resource Manager fails the deletion of the resource.
IMPORTANT
Resource Group deletion is irreversible.
Delete resource
Use one of the following methods to delete a resource.
PowerShell
Azure CLI
Portal
Remove-AzResource `
-ResourceGroupName ExampleResourceGroup `
-ResourceName ExampleVM `
-ResourceType Microsoft.Compute/virtualMachines
Next steps
To understand Resource Manager concepts, see Azure Resource Manager overview.
For deletion commands, see PowerShell, Azure CLI, and REST API.
Lock resources to prevent unexpected changes
2/23/2022 • 11 minutes to read • Edit Online
As an administrator, you can lock a subscription, resource group, or resource to prevent other users in your
organization from accidentally deleting or modifying critical resources. The lock overrides any permissions the
user might have.
You can set the lock level to CanNotDelete or ReadOnly . In the portal, the locks are called Delete and Read-
only respectively.
CanNotDelete means authorized users can still read and modify a resource, but they can't delete the
resource.
ReadOnly means authorized users can read a resource, but they can't delete or update the resource.
Applying this lock is similar to restricting all authorized users to the permissions granted by the Reader role.
Unlike role-based access control, you use management locks to apply a restriction across all users and roles. To
learn about setting permissions for users and roles, see Azure role-based access control (Azure RBAC).
Lock inheritance
When you apply a lock at a parent scope, all resources within that scope inherit the same lock. Even resources
you add later inherit the lock from the parent. The most restrictive lock in the inheritance takes precedence.
Control plane operations are operations sent to https://management.azure.com . Data plane operations are
operations sent to your instance of a service, such as https://myaccount.blob.core.windows.net/ . For more
information, see Azure control plane and data plane. To discover which operations use the control plane URL,
see the Azure REST API.
This distinction means locks prevent changes to a resource, but they don't restrict how resources perform their
own functions. For example, a ReadOnly lock on a SQL Database logical server prevents you from deleting or
modifying the server. It doesn't prevent you from creating, updating, or deleting data in the databases on that
server. Data transactions are permitted because those operations aren't sent to https://management.azure.com .
More examples of the differences between control and data plane operations are described in the next section.
Notice the service includes a link for a Managed Resource Group . That resource group holds the
infrastructure and is locked. It can't be directly deleted.
To delete everything for the service, including the locked infrastructure resource group, select Delete for the
service.
Configure locks
Portal
1. In the Settings blade for the resource, resource group, or subscription that you wish to lock, select Locks .
2. To add a lock, select Add . If you want to create a lock at a parent level, select the parent. The currently
selected resource inherits the lock from the parent. For example, you could lock the resource group to
apply a lock to all its resources.
3. Give the lock a name and lock level. Optionally, you can add notes that describe the lock.
Template
When using an Azure Resource Manager template (ARM template) or Bicep file to deploy a lock, you need to be
aware of the scope of the lock and the scope of the deployment. To apply a lock at the deployment scope, such
as locking a resource group or subscription, don't set the scope property. When locking a resource within the
deployment scope, set the scope property.
The following template applies a lock to the resource group it's deployed to. Notice there isn't a scope property
on the lock resource because the scope of the lock matches the scope of deployment. This template is deployed
at the resource group level.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
},
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource group should not be deleted."
}
}
]
}
To create a resource group and lock it, deploy the following template at the subscription level.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2018-05-01/subscriptionDeploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"rgName": {
"type": "string"
},
"rgLocation": {
"type": "string"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.Resources/resourceGroups",
"apiVersion": "2021-04-01",
"name": "[parameters('rgName')]",
"location": "[parameters('rgLocation')]",
"properties": {}
},
{
"type": "Microsoft.Resources/deployments",
"apiVersion": "2021-04-01",
"name": "lockDeployment",
"resourceGroup": "[parameters('rgName')]",
"dependsOn": [
"[resourceId('Microsoft.Resources/resourceGroups/', parameters('rgName'))]"
],
"properties": {
"mode": "Incremental",
"template": {
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {},
"variables": {},
"resources": [
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "rgLock",
"properties": {
"level": "CanNotDelete",
"notes": "Resource group and its resources should not be deleted."
}
}
],
"outputs": {}
}
}
}
],
"outputs": {}
}
When applying a lock to a resource within the resource group, add the scope property. Set scope to the name
of the resource to lock.
The following example shows a template that creates an app service plan, a website, and a lock on the website.
The scope of the lock is set to the website.
JSON
Bicep
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"hostingPlanName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"variables": {
"siteName": "[concat('ExampleSite', uniqueString(resourceGroup().id))]"
},
"resources": [
{
"type": "Microsoft.Web/serverfarms",
"apiVersion": "2020-12-01",
"name": "[parameters('hostingPlanName')]",
"location": "[parameters('location')]",
"sku": {
"tier": "Free",
"name": "f1",
"capacity": 0
},
"properties": {
"targetWorkerCount": 1
}
},
{
"type": "Microsoft.Web/sites",
"apiVersion": "2020-12-01",
"name": "[variables('siteName')]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.Web/serverfarms', parameters('hostingPlanName'))]"
],
"properties": {
"serverFarmId": "[parameters('hostingPlanName')]"
}
},
{
"type": "Microsoft.Authorization/locks",
"apiVersion": "2016-09-01",
"name": "siteLock",
"scope": "[concat('Microsoft.Web/sites/', variables('siteName'))]",
"dependsOn": [
"[resourceId('Microsoft.Web/sites', variables('siteName'))]"
],
"properties": {
"level": "CanNotDelete",
"notes": "Site should not be deleted."
}
}
]
}
Azure PowerShell
You lock deployed resources with Azure PowerShell by using the New-AzResourceLock command.
To lock a resource, provide the name of the resource, its resource type, and its resource group name.
New-AzResourceLock -LockLevel CanNotDelete -LockName LockSite -ResourceName examplesite -ResourceType
Microsoft.Web/sites -ResourceGroupName exampleresourcegroup
To get information about a lock, use Get-AzResourceLock. To get all the locks in your subscription, use:
Get-AzResourceLock
Azure CLI
You lock deployed resources with Azure CLI by using the az lock create command.
To lock a resource, provide the name of the resource, its resource type, and its resource group name.
To get information about a lock, use az lock list. To get all the locks in your subscription, use:
az lock list
lockid=$(az lock show --name LockSite --resource-group exampleresourcegroup --output tsv --query id)
az lock delete --ids $lockid
REST API
You can lock deployed resources with the REST API for management locks. The REST API enables you to create
and delete locks, and retrieve information about existing locks.
To create a lock, run:
PUT https://management.azure.com/{scope}/providers/Microsoft.Authorization/locks/{lock-name}?api-version=
{api-version}
The scope could be a subscription, resource group, or resource. The lock-name is whatever you want to call the
lock. For api-version, use 2016-09-01 .
In the request, include a JSON object that specifies the properties for the lock.
{
"properties": {
"level": "CanNotDelete",
"notes": "Optional text notes."
}
}
Next steps
To learn about logically organizing your resources, see Using tags to organize your resources.
You can apply restrictions and conventions across your subscription with customized policies. For more
information, see What is Azure Policy?.
For guidance on how enterprises can use Resource Manager to effectively manage subscriptions, see Azure
enterprise scaffold - prescriptive subscription governance.
Authenticate requests across tenants
2/23/2022 • 2 minutes to read • Edit Online
When creating a multi-tenant application, you may need to handle authentication requests for resources that are
in different tenants. A common scenario is when a virtual machine in one tenant must join a virtual network in
another tenant. Azure Resource Manager provides a header value for storing auxiliary tokens to authenticate the
requests to different tenants.
Next steps
To learn about authentication requests, see Authentication flows and application scenarios.
For more information about tokens, see Azure Active Directory access tokens.
Throttling Resource Manager requests
2/23/2022 • 6 minutes to read • Edit Online
This article describes how Azure Resource Manager throttles requests. It shows you how to track the number of
requests that remain before reaching the limit, and how to respond when you've reached the limit.
Throttling happens at two levels. Azure Resource Manager throttles requests for the subscription and tenant. If
the request is under the throttling limits for the subscription and tenant, Resource Manager routes the request
to the resource provider. The resource provider applies throttling limits that are tailored to its operations. The
following image shows how throttling is applied as a request goes from the user to Azure Resource Manager
and the resource provider.
SC O P E O P ERAT IO N S L IM IT
These limits are scoped to the security principal (user or application) making the requests and the subscription
ID or tenant ID. If your requests come from more than one security principal, your limit across the subscription
or tenant is greater than 12,000 and 1,200 per hour.
These limits apply to each Azure Resource Manager instance. There are multiple instances in every Azure region,
and Azure Resource Manager is deployed to all Azure regions. So, in practice, the limits are higher than these
limits. The requests from a user are usually handled by different instances of Azure Resource Manager.
The remaining requests are returned in the response header values.
RESO URC E L IM IT
Storage account management operations (write) 10 per second / 1200 per hour
Network throttling
The Microsoft.Network resource provider applies the following throttle limits:
O P ERAT IO N L IM IT
NOTE
Azure DNS and Azure Private DNS have a throttle limit of 500 read (GET) operations per 5 minutes.
Compute throttling
For information about throttling limits for compute operations, see Troubleshooting API throttling errors -
Compute.
For checking virtual machine instances within a virtual machine scale set, use the Virtual Machine Scale Sets
operations. For example, use the Virtual Machine Scale Set VMs - List with parameters to check the power state
of virtual machine instances. This API reduces the number of requests.
Azure Resource Graph throttling
Azure Resource Graph limits the number of requests to its operations. The steps in this article to determine the
remaining requests and how to respond when the limit is reached also apply to Resource Graph. However,
Resource Graph sets its own limit and reset rate. For more information, see Resource Graph throttling headers.
Other resource providers
For information about throttling in other resource providers, see:
Azure Key Vault throttling guidance
AKS troubleshooting
Error code
When you reach the limit, you receive the HTTP status code 429 Too many requests . The response includes a
Retr y-After value, which specifies the number of seconds your application should wait (or sleep) before
sending the next request. If you send a request before the retry value has elapsed, your request isn't processed
and a new retry value is returned.
After waiting for specified time, you can also close and reopen your connection to Azure. By resetting the
connection, you may connect to a different instance of Azure Resource Manager.
If you're using an Azure SDK, the SDK may have an auto retry configuration. For more information, see Retry
guidance for Azure services.
Some resource providers return 429 to report a temporary problem. The problem could be an overload
condition that isn't directly caused by your request. Or, it could represent a temporary error about the state of
the target resource or dependent resource. For example, the network resource provider returns 429 with the
Retr yableErrorDueToAnotherOperation error code when the target resource is locked by another operation.
To determine if the error comes from throttling or a temporary condition, view the error details in the response.
Remaining requests
You can determine the number of remaining requests by examining response headers. Read requests return a
value in the header for the number of remaining read requests. Write requests include a value for the number of
remaining write requests. The following table describes the response headers you can examine for those values:
The resource provider can also return response headers with information about remaining requests. For
information about response headers returned by the Compute resource provider, see Call rate informational
response headers.
response.Headers.GetValues("x-ms-ratelimit-remaining-subscription-reads").GetValue(0)
For a complete PowerShell example, see Check Resource Manager Limits for a Subscription.
If you want to see the remaining requests for debugging, you can provide the -Debug parameter on your
PowerShell cmdlet.
Get-AzResourceGroup -Debug
Status Code:
OK
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-reads: 11999
Status Code:
Created
Headers:
Pragma : no-cache
x-ms-ratelimit-remaining-subscription-writes: 1199
In Azure CLI , you retrieve the header value by using the more verbose option.
Next steps
For a complete PowerShell example, see Check Resource Manager Limits for a Subscription.
For more information about limits and quotas, see Azure subscription and service limits, quotas, and
constraints.
To learn about handling asynchronous REST requests, see Track asynchronous Azure operations.
Track asynchronous Azure operations
2/23/2022 • 4 minutes to read • Edit Online
Some Azure REST operations run asynchronously because the operation can't be completed quickly. This article
describes how to track the status of asynchronous operations through values returned in the response.
The following example shows other values that might be returned from the operation:
{
"id": "{resource path from GET operation}",
"name": "{operation-id}",
"status" : "Succeeded | Failed | Canceled | {resource provider values}",
"startTime": "2017-01-06T20:56:36.002812+00:00",
"endTime": "2017-01-06T20:56:56.002812+00:00",
"percentComplete": {double between 0 and 100 },
"properties": {
/* Specific resource provider values for successful operations */
},
"error" : {
"code": "{error code}",
"message": "{error description}"
}
}
The error object is returned when the status is Failed or Canceled. All other values are optional. The response
you receive may look different than the example.
provisioningState values
Operations that create, update, or delete (PUT, PATCH, DELETE) a resource typically return a provisioningState
value. When an operation has completed, one of following three values is returned:
Succeeded
Failed
Canceled
All other values indicate the operation is still running. The resource provider can return a customized value that
indicates its state. For example, you may receive Accepted when the request is received and running.
POST
https://management.azure.com/subscriptions/{subscription-id}/resourceGroups/{resource-
group}/providers/Microsoft.Compute/virtualMachines/{vm-name}/start?api-version=2019-12-01
It returns status code 202. Among the header values, you see:
Azure-AsyncOperation : https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01
To check the status of the asynchronous operation, sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Compute/locations/{region}/operations/{operation-id}?api-version=2019-12-01
{
"startTime": "2017-01-06T18:58:24.7596323+00:00",
"status": "InProgress",
"name": "9a062a88-e463-4697-bef2-fe039df73a02"
}
PUT
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/microsoft.resources/deployments/{deployment-name}?api-version=2020-06-01
"provisioningState":"Accepted",
Azure-AsyncOperation: https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2020-06-01
To check the status of the asynchronous operation, sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-id}/resourcegroups/{resource-
group}/providers/Microsoft.Resources/deployments/{deployment-name}/operationStatuses/{operation-id}?api-
version=2020-06-01
{
"status": "Running"
}
{
"status": "Succeeded"
}
And the request body contains properties for the storage account:
{
"location": "South Central US",
"properties": {},
"sku": {
"name": "Standard_LRS"
},
"kind": "Storage"
}
It returns status code 202. Among the header values, you see the following two values:
Location: https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01
Retry-After: 17
After waiting for number of seconds specified in Retry-After, check the status of the asynchronous operation by
sending another request to that URL.
GET
https://management.azure.com/subscriptions/{subscription-
id}/providers/Microsoft.Storage/operations/{operation-id}?monitor=true&api-version=2019-06-01
If the request is still running, you receive a status code 202. If the request has completed, your receive a status
code 200. The body of the response contains the properties of the storage account that was created.
Next steps
For documentation about each REST operation, see REST API documentation.
For information about deploying templates through the Resource Manager REST API, see Deploy resources
with Resource Manager templates and Resource Manager REST API.
Azure Resource Manager metrics in Azure Monitor
2/23/2022 • 4 minutes to read • Edit Online
When you create and manage resources in Azure, your requests are orchestrated through Azure's control plane,
Azure Resource Manager. This article describes how to monitor the volume and latency of control plane requests
made to Azure.
With these metrics, you can observe traffic and latency for control plane requests throughout your
subscriptions. For example, you can now figure out when your requests have been throttled or failed by filtering
for specific status codes. We've dug into this below in examining throttled requests and examining server errors.
The metrics are available for up to three months (93 days) and only track synchronous requests. For a scenario
like a VM creation, the metrics do not represent the performance or reliability of the long running asynchronous
operation.
Metric definition
The definition for Azure Resource Manager metrics in Azure Monitor is only accessible through the 2017-12-01-
preview API version. To retrieve the definition, you can run the following snippet, with your subscription ID
replacing "00000000-0000-0000-0000-000000000000":
This will return the definition for the metrics schema. Notably, this schema includes the dimensions you can
filter on with the Monitor API:
StatusCodeClass The class for the status code returned from Azure Resource
Manager. Possible values are:
- 2xx
- 4xx
- 5xx
Namespace The namespace for the Resource Provider, in all caps, like
"MICROSOFT.COMPUTE"
ResourceType Any resource type in Azure that you have created or sent a
request to, in all caps, like "VIRTUALMACHINES"
Examples
Now, let's look at some scenarios that can help you exploring Azure Resource Manager metrics.
Query traffic and latency control plane metrics via Azure portal
First, navigate to the Azure Monitor blade within the portal:
After selecting Explore Metrics , select a single subscription and then select the Azure Resource Manager
metric:
Then, after selecting Apply , you can visualize your Traffic or Latency control plane metrics with custom filtering
and splitting:
Query traffic and latency control plane metrics via REST API
After you are authenticated with Azure, you can make a request to retrieve control plane metrics for your
subscription. In the script shared below, please replace "00000000-0000-0000-0000-000000000000" with your
subscription ID.
The request below will retrieve the average request latency (in seconds) and the total request count for the 2 day
timespan, broken down by 1 day intervals:
In the case of Azure Resource Manager metrics, you can retrieve the traffic count by using the Latency metric
and including the 'count' aggregation. You'll see the JSON response for the request below:
{
"cost": 5758,
"timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
"interval": "P1D",
"value": [
{
"id": "subscriptions/00000000-0000-0000-0000-
000000000000/providers/Microsoft.Insights/metrics/Latency",
"type": "Microsoft.Insights/metrics",
"name": {
"value": "Latency",
"localizedValue": "Latency"
},
"displayDescription": "Latency data for all requests to Azure Resource Manager",
"unit": "Seconds",
"timeseries": [
{
"metadatavalues": [],
"data": [
{
"timeStamp": "2021-11-01T00:00:00Z",
"count": 1406.0,
"average": 0.19345163584637273
},
{
"timeStamp": "2021-11-02T00:00:00Z",
"count": 1517.0,
"average": 0.28294792353328935
}
]
}
],
"errorCode": "Success"
}
],
"namespace": "microsoft.resources/subscriptions",
"resourceregion": "global"
}
If you want to retrieve only the traffic count, then you can utilize the Traffic metric with the 'count' aggregation:
For the metrics supporting dimensions, you need to specify the dimension value to see the corresponding
metrics values. For example, if you want to focus on the Latency for successful requests to ARM, you need to
filter the StatusCodeClass dimension with 2XX .
If you want to look at the number of requests made in your subscription for Networking resources, like Virtual
Networks and Load Balancers, you would need to filter the Namespace dimension for
MICROSOFT.NETWORK .
Examining Throttled Requests
To view only your throttled requests, you need to filter for 429 status code responses only. For REST API calls,
filtering is accomplished via the $filter property and the StatusCode dimension by appending:
$filter=StatusCode eq '429' as seen at the end of the request in the following snippet:
You can also accomplish generic server errors filtering within portal by setting the filter property to
'StatusCodeClass' and the value to '5xx', similar to what was done in the throttling example above.
Next steps
Azure Monitor Overview
Azure Policy built-in definitions for Azure Resource
Manager
2/23/2022 • 14 minutes to read • Edit Online
This page is an index of Azure Policy built-in policy definitions for Azure Resource Manager. For additional Azure
Policy built-ins for other services, see Azure Policy built-in definitions.
The name of each built-in policy definition links to the policy definition in the Azure portal. Use the link in the
Version column to view the source on the Azure Policy GitHub repo.
Activity log should be This policy audits the AuditIfNotExists, Disabled 1.0.0
retained for at least one activity log if the retention
year is not set for 365 days or
forever (retention days set
to 0).
Add a tag to resource Adds the specified tag and modify 1.0.0
groups value when any resource
group missing this tag is
created or updated. Existing
resource groups can be
remediated by triggering a
remediation task. If the tag
exists with a different value
it will not be changed.
Add a tag to subscriptions Adds the specified tag and modify 1.0.0
value to subscriptions via a
remediation task. If the tag
exists with a different value
it will not be changed. See
https://aka.ms/azurepolicyre
mediation for more
information on policy
remediation.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
An activity log alert should This policy audits specific AuditIfNotExists, Disabled 1.0.0
exist for specific Administrative operations
Administrative operations with no activity log alerts
configured.
An activity log alert should This policy audits specific AuditIfNotExists, Disabled 3.0.0
exist for specific Policy Policy operations with no
operations activity log alerts
configured.
An activity log alert should This policy audits specific AuditIfNotExists, Disabled 1.0.0
exist for specific Security Security operations with no
operations activity log alerts
configured.
Append a tag and its value Appends the specified tag append 1.0.0
to resource groups and value when any
resource group which is
missing this tag is created
or updated. Does not
modify the tags of resource
groups created before this
policy was applied until
those resource groups are
changed. New 'modify'
effect policies are available
that support remediation of
tags on existing resources
(see
https://aka.ms/modifydoc).
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Azure Defender for App Azure Defender for App AuditIfNotExists, Disabled 1.0.3
Service should be enabled Service leverages the scale
of the cloud, and the
visibility that Azure has as a
cloud provider, to monitor
for common web app
attacks.
Azure Defender for Azure Azure Defender for SQL AuditIfNotExists, Disabled 1.0.2
SQL Database servers provides functionality for
should be enabled surfacing and mitigating
potential database
vulnerabilities, detecting
anomalous activities that
could indicate threats to
SQL databases, and
discovering and classifying
sensitive data.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Azure Defender for DNS Azure Defender for DNS AuditIfNotExists, Disabled 1.0.0
should be enabled provides an additional layer
of protection for your cloud
resources by continuously
monitoring all DNS queries
from your Azure resources.
Azure Defender alerts you
about suspicious activity at
the DNS layer. Learn more
about the capabilities of
Azure Defender for DNS at
https://aka.ms/defender-
for-dns . Enabling this Azure
Defender plan results in
charges. Learn about the
pricing details per region on
Security Center's pricing
page:
https://aka.ms/pricing-
security-center .
Azure Defender for Key Azure Defender for Key AuditIfNotExists, Disabled 1.0.3
Vault should be enabled Vault provides an additional
layer of protection and
security intelligence by
detecting unusual and
potentially harmful
attempts to access or
exploit key vault accounts.
Azure Defender for open- Azure Defender for open- AuditIfNotExists, Disabled 1.0.0
source relational databases source relational databases
should be enabled detects anomalous activities
indicating unusual and
potentially harmful
attempts to access or
exploit databases. Learn
more about the capabilities
of Azure Defender for
open-source relational
databases at
https://aka.ms/AzDforOpen
SourceDBsDocu. Important:
Enabling this plan will result
in charges for protecting
your open-source relational
databases. Learn about the
pricing on Security Center's
pricing page:
https://aka.ms/pricing-
security-center
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Azure Defender for servers Azure Defender for servers AuditIfNotExists, Disabled 1.0.3
should be enabled provides real-time threat
protection for server
workloads and generates
hardening
recommendations as well as
alerts about suspicious
activities.
Azure Defender for SQL Azure Defender for SQL AuditIfNotExists, Disabled 1.0.2
servers on machines should provides functionality for
be enabled surfacing and mitigating
potential database
vulnerabilities, detecting
anomalous activities that
could indicate threats to
SQL databases, and
discovering and classifying
sensitive data.
Azure Defender for Storage Azure Defender for Storage AuditIfNotExists, Disabled 1.0.3
should be enabled provides detections of
unusual and potentially
harmful attempts to access
or exploit storage accounts.
Azure Monitor log profile This policy ensures that a AuditIfNotExists, Disabled 1.0.0
should collect logs for log profile collects logs for
categories 'write,' 'delete,' categories 'write,' 'delete,'
and 'action' and 'action'
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Azure Monitor should This policy audits the Azure AuditIfNotExists, Disabled 2.0.0
collect activity logs from all Monitor log profile which
regions does not export activities
from all Azure supported
regions including global.
Azure Monitor solution This policy ensures that AuditIfNotExists, Disabled 1.0.0
'Security and Audit' must be Security and Audit is
deployed deployed.
Azure subscriptions should This policy ensures if a log AuditIfNotExists, Disabled 1.0.0
have a log profile for profile is enabled for
Activity Log exporting activity logs. It
audits if there is no log
profile created to export the
logs either to a storage
account or to an event hub.
Configure Azure Defender Azure Defender for App DeployIfNotExists, Disabled 1.0.1
for App Service to be Service leverages the scale
enabled of the cloud, and the
visibility that Azure has as a
cloud provider, to monitor
for common web app
attacks.
Configure Azure Defender Azure Defender for SQL DeployIfNotExists, Disabled 1.0.0
for Azure SQL database to provides functionality for
be enabled surfacing and mitigating
potential database
vulnerabilities, detecting
anomalous activities that
could indicate threats to
SQL databases, and
discovering and classifying
sensitive data.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Configure Azure Defender Azure Defender for DNS DeployIfNotExists, Disabled 1.0.1
for DNS to be enabled provides an additional layer
of protection for your cloud
resources by continuously
monitoring all DNS queries
from your Azure resources.
Azure Defender alerts you
about suspicious activity at
the DNS layer. Learn more
about the capabilities of
Azure Defender for DNS at
https://aka.ms/defender-
for-dns . Enabling this Azure
Defender plan results in
charges. Learn about the
pricing details per region on
Security Center's pricing
page:
https://aka.ms/pricing-
security-center .
Configure Azure Defender Azure Defender for Key DeployIfNotExists, Disabled 1.0.1
for Key Vaults to be enabled Vault provides an additional
layer of protection and
security intelligence by
detecting unusual and
potentially harmful
attempts to access or
exploit key vault accounts.
Configure Azure Defender Azure Defender for open- DeployIfNotExists, Disabled 1.0.0
for open-source relational source relational databases
databases to be enabled detects anomalous activities
indicating unusual and
potentially harmful
attempts to access or
exploit databases. Learn
more about the capabilities
of Azure Defender for
open-source relational
databases at
https://aka.ms/AzDforOpen
SourceDBsDocu. Important:
Enabling this plan will result
in charges for protecting
your open-source relational
databases. Learn about the
pricing on Security Center's
pricing page:
https://aka.ms/pricing-
security-center
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Configure Azure Defender Azure Defender for servers DeployIfNotExists, Disabled 1.0.0
for servers to be enabled provides real-time threat
protection for server
workloads and generates
hardening
recommendations as well as
alerts about suspicious
activities.
Configure Azure Defender Azure Defender for SQL DeployIfNotExists, Disabled 1.0.0
for SQL servers on provides functionality for
machines to be enabled surfacing and mitigating
potential database
vulnerabilities, detecting
anomalous activities that
could indicate threats to
SQL databases, and
discovering and classifying
sensitive data.
Configure Azure Defender Azure Defender for Storage DeployIfNotExists, Disabled 1.0.0
for Storage to be enabled provides detections of
unusual and potentially
harmful attempts to access
or exploit storage accounts.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Deploy export to Event Hub Enable export to Event Hub deployIfNotExists 4.0.0
for Azure Security Center of Azure Security Center
data data. This policy deploys an
export to Event Hub
configuration with your
conditions and target Event
Hub on the assigned scope.
To deploy this policy on
newly created subscriptions,
open the Compliance tab,
select the relevant non-
compliant assignment and
create a remediation task.
NAME VERSIO N
DESC RIP T IO N EF F EC T ( S)
Email notification for high To ensure the relevant AuditIfNotExists, Disabled 1.0.1
severity alerts should be people in your organization
enabled are notified when there is a
potential security breach in
one of your subscriptions,
enable email notifications
for high severity alerts in
Security Center.
External accounts with read External accounts with read AuditIfNotExists, Disabled 3.0.0
permissions should be privileges should be
removed from your removed from your
subscription subscription in order to
prevent unmonitored
access.
External accounts with write External accounts with write AuditIfNotExists, Disabled 3.0.0
permissions should be privileges should be
removed from your removed from your
subscription subscription in order to
prevent unmonitored
access.
Require a tag and its value Enforces a required tag and deny 1.0.0
on resource groups its value on resource
groups.
Next steps
See the built-ins on the Azure Policy GitHub repo.
Review the Azure Policy definition structure.
Review Understanding policy effects.
Manage personal data associated with Azure
Resource Manager
2/23/2022 • 2 minutes to read • Edit Online
To avoid exposing sensitive information, delete any personal information you may have provided in
deployments, resource groups, or tags. Azure Resource Manager provides operations that let you manage
personal data you may have provided in deployments, resource groups, or tags.
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.
Next steps
For an overview of Azure Resource Manager, see the What is Resource Manager?