azureblog.co.uk
← cd ~/roles
// roles/azure · migration

Azure Migrate OwnerAzure built-in role

Grants full access to create and manage Azure Migrate projects including appliance-based discovery, creation of business case & assessment report and execution of migrations; Also grants ability to assign Azure Migrate specific roles in Azure RBAC.

Role IDfd8ea4d5-6509-4db0-bada-356ab233b4fa
CategoryMigration
Actions68
Data actions0

Before you assign it

  • It can give access to others. It allows Microsoft.Authorization/roleAssignments/write, so treat it as a privileged role and assign it through PIM where you can.

What it can do

PermissionWhat it allows
Microsoft.Resources/subscriptions/resourceGroups/readGets or lists resource groups.
Microsoft.Resources/deployments/*Every operation under Microsoft.Resources/deployments
Microsoft.Resources/subscriptions/resourceGroups/writeCreates or updates a resource group.
Microsoft.Resources/subscriptions/readGets the list of subscriptions.
Microsoft.Resources/subscriptions/locations/readGets the list of locations supported.
Microsoft.Resources/checkResourceName/actionCheck the resource name for validity.
Microsoft.Resources/deploymentScripts/writeCreates or updates a deployment script
Microsoft.Resources/deploymentScripts/readGets or lists deployment scripts
Microsoft.Resources/links/writeCreates or updates a resource link.
Microsoft.Authorization/*/readAny read operation on anything under Microsoft.Authorization
Microsoft.Authorization/locks/writeAdd locks at the specified scope.
Microsoft.Authorization/locks/deleteDelete locks at the specified scope.
Microsoft.Insights/alertRules/*Every operation under Microsoft.Insights/alertRules
Microsoft.Migrate/*Every operation under Microsoft.Migrate
Microsoft.ApplicationMigration/*Every operation under Microsoft.ApplicationMigration
Microsoft.OffAzure/*Every operation under Microsoft.OffAzure
Microsoft.Support/*Every operation under Microsoft.Support
Microsoft.MySQLDiscovery/*Every operation under Microsoft.MySQLDiscovery
Microsoft.DependencyMap/*Every operation under Microsoft.DependencyMap
Microsoft.KeyVault/vaults/*Every operation under Microsoft.KeyVault/vaults
Microsoft.KeyVault/checkNameAvailability/readChecks that a key vault name is valid and is not in use
Microsoft.HybridCompute/machines/readRead any Azure Arc machines
Microsoft.HybridCompute/machines/writeWrites an Azure Arc machines
Microsoft.HybridCompute/machines/deleteDeletes an Azure Arc machines
Microsoft.HybridCompute/register/actionRegisters the subscription for the Microsoft.HybridCompute Resource Provider
Microsoft.Network/networkInterfaces/readGets a network interface definition.
Microsoft.Network/networkInterfaces/writeCreates a network interface or updates an existing network interface.
Microsoft.Network/networkInterfaces/deleteDeletes a network interface
Microsoft.Network/virtualNetworks/readGet the virtual network definition
Microsoft.Network/virtualNetworks/subnets/writeCreates a virtual network subnet or updates an existing virtual network subnet
Microsoft.Network/virtualNetworks/subnets/join/actionJoins a virtual network. Not Alertable.
Microsoft.Network/networkSecurityGroups/join/actionJoins a network security group. Not Alertable.
Microsoft.Network/virtualNetworks/join/actionJoins a virtual network. Not Alertable.
Microsoft.Network/privateEndpoints/readGets an private endpoint resource.
Microsoft.Network/privateEndpoints/writeCreates a new private endpoint, or updates an existing private endpoint.
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/writePuts a Private DNS Zone Group
Microsoft.Network/privateDnsZones/writeCreate or update a Private DNS zone within a resource group. Note that this command cannot be used to create or update virtual network links or record sets within the zone.
Microsoft.Network/privateDnsZones/virtualNetworkLinks/writeCreate or update a Private DNS zone link to virtual network.
Microsoft.Network/privateDnsZones/join/actionJoins a Private DNS Zone
Microsoft.Network/privateDnsZones/A/writeCreate or update a record set of type 'A' within a Private DNS zone. The records specified will replace the current records in the record set.
Microsoft.Network/register/actionRegisters the subscription
Microsoft.Network/virtualNetworks/subnets/readGets a virtual network subnet definition
Microsoft.Network/privateEndpoints/privateDnsZoneGroups/readGets a Private DNS Zone Group
Microsoft.Storage/storageAccounts/*Every operation under Microsoft.Storage/storageAccounts
Microsoft.GuestConfiguration/register/actionRegisters the subscription for the Microsoft.GuestConfiguration resource provider.
Microsoft.Compute/register/actionRegisters Subscription with Microsoft.Compute resource provider
Microsoft.Compute/availabilitySets/readGet the properties of an availability set
Microsoft.Compute/availabilitySets/vmSizes/readList available sizes for creating or updating a virtual machine in the availability set
Microsoft.Compute/diskEncryptionSets/readGet the properties of a disk encryption set
Microsoft.Compute/skus/readGets the list of Microsoft.Compute SKUs available for your Subscription
Microsoft.Compute/disks/readGet the properties of a Disk
Microsoft.Compute/disks/writeCreates a new Disk or updates an existing one
Microsoft.Compute/disks/deleteDeletes the Disk
Microsoft.Compute/virtualMachines/readGet the properties of a virtual machine
Microsoft.Compute/virtualMachines/writeCreates a new virtual machine or updates an existing virtual machine
Microsoft.Compute/virtualMachines/deleteDeletes the virtual machine
Microsoft.HybridConnectivity/register/actionRegister the subscription for Microsoft.HybridConnectivity
Microsoft.RecoveryServices/vaults/*Every operation under Microsoft.RecoveryServices/vaults
Microsoft.RecoveryServices/register/actionRegisters subscription for given Resource Provider
Microsoft.RecoveryServices/operations/readOperation returns the list of Operations for a Resource Provider
Microsoft.DataReplication/*/readAny read operation on anything under Microsoft.DataReplication
Microsoft.DataReplication/register/action
Microsoft.DataReplication/replicationVaults/write
Microsoft.KeyVault/register/actionRegisters a subscription
Microsoft.AzureArcData/register/action
Microsoft.Resources/links/readGets or lists resource links.
Microsoft.Authorization/roleAssignments/writeCreate a role assignment at the specified scope.
Microsoft.Authorization/roleAssignments/deleteDelete a role assignment at the specified scope.

Assign it

Scope it as tightly as you can: a resource or resource group rather than the whole subscription.

azure cli
az role assignment create \
  --assignee "jane.doe@contoso.com" \
  --role "Azure Migrate Owner" \
  --scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
powershell3 lines
New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
  -RoleDefinitionName "Azure Migrate Owner" `
  -Scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
bicep7 lines
resource assignment 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
  name: guid(resourceGroup().id, principalId, 'fd8ea4d5-6509-4db0-bada-356ab233b4fa')
  properties: {
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fd8ea4d5-6509-4db0-bada-356ab233b4fa')
    principalId: principalId
  }
}

Who already has it?

kql · azure resource graph
authorizationresources
| where type == "microsoft.authorization/roleassignments"
| where tostring(properties.roleDefinitionId) endswith "fd8ea4d5-6509-4db0-bada-356ab233b4fa"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)

Other migration roles

Find the smallest role for a task →