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

Azure Local Migrate OwnerAzure built-in role

Grants full access to create and manage Azure Local based Azure Migrate projects including appliance-based discovery and execution of migrations; Also grants ability to assign Azure Migrate Local specific roles in Azure RBAC

Role IDfd8ea4d5-6509-4db0-bada-356ab233b4fb
CategoryMigration
Actions64
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/deployments/validate/actionValidates a deployment.
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/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/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.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/replicationFabrics/*Every operation under Microsoft.DataReplication/replicationFabrics
Microsoft.DataReplication/replicationVaults/*Every operation under Microsoft.DataReplication/replicationVaults
Microsoft.KeyVault/register/actionRegisters a subscription
Microsoft.AzureArcData/register/action
Microsoft.Resources/links/readGets or lists resource links.
Microsoft.AzureStackHCI/*/ReadAny read operation on anything under Microsoft.AzureStackHCI
Microsoft.AzureStackHCI/LogicalNetworks/join/actionJoins logical networks resource
Microsoft.AzureStackHCI/NetworkInterfaces/*Every operation under Microsoft.AzureStackHCI/NetworkInterfaces
Microsoft.AzureStackHCI/VirtualHardDisks/*Every operation under Microsoft.AzureStackHCI/VirtualHardDisks
Microsoft.AzureStackHCI/VirtualMachines/WriteCreates/Updates virtual machine resource
Microsoft.AzureStackHCI/VirtualMachineInstances/WriteCreates/Updates virtual machine instance resource
Microsoft.ExtendedLocation/customLocations/readGets an Custom Location resource
Microsoft.KubernetesConfiguration/extensions/readGets extension instance resource.
Microsoft.ResourceConnector/appliances/readGets an Appliance resource
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 Local Migrate Owner" \
  --scope "/subscriptions/<subscription id>/resourceGroups/<resource group>"
powershell3 lines
New-AzRoleAssignment -SignInName "jane.doe@contoso.com" `
  -RoleDefinitionName "Azure Local 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-356ab233b4fb')
  properties: {
    roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'fd8ea4d5-6509-4db0-bada-356ab233b4fb')
    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-356ab233b4fb"
| project principalId = tostring(properties.principalId), principalType = tostring(properties.principalType), scope = tostring(properties.scope)

Other migration roles

Find the smallest role for a task →