Skip to main content

Azure Resource Provider Registration

Azure Resource Providers are services that provide Azure resource types. To use specific Azure services, you must register the corresponding Resource Provider with your subscription.

What is a Resource Provider?

A Resource Provider is a namespace that handles operations for creating, managing, and deleting Azure resources. Each Azure service has one or more Resource Providers following this naming convention:

  • Format: Microsoft.<ServiceName>
  • Examples:
    • Microsoft.Compute - Virtual Machines, VM Scale Sets
    • Microsoft.Storage - Storage Accounts
    • Microsoft.Web - App Service, Functions
    • Microsoft.Network - Virtual Networks, Load Balancers
    • Microsoft.Sql - Azure SQL Database

Key Resource Providers

Microsoft.ContainerService

Provides Azure Kubernetes Service (AKS) cluster resources.

Microsoft.KubernetesConfiguration

Provides GitOps, Flux, and other configuration management features for AKS clusters. Required when using AKS extensions and configuration management.

# Registration example
az provider register --namespace Microsoft.KubernetesConfiguration

Microsoft.ServiceNetworking

Provides application load balancing and service mesh features for AKS. Required for advanced networking features like Application Gateway for Containers.

# Registration example
az provider register --namespace Microsoft.ServiceNetworking

Other Important Providers

Microsoft.OperationalInsights

Provides Azure Monitor Log Analytics workspaces. Used for container insights and various monitoring features.

Microsoft.AlertsManagement

Provides alert management features for Azure Monitor.

Microsoft.Insights

Provides monitoring and diagnostics features including Application Insights and metrics collection.

How to Register Resource Providers

Azure Portal

  1. Navigate to your target subscription in Azure Portal
  2. Select "Resource providers" from the left menu
  3. Search for the Provider you want to register
  4. Click the "Register" button

Registration may take a few minutes. Once the status shows "Registered", it's complete.

Azure CLI

# Register a Resource Provider
az provider register --namespace <ProviderNamespace>

# Check registration status
az provider show --namespace <ProviderNamespace> --query "registrationState"

# List all Providers with their status
az provider list --query "[].{Provider:namespace, Status:registrationState}" --output table

Example Execution

# Register Microsoft.ServiceNetworking
az provider register --namespace Microsoft.ServiceNetworking

# Check registration status
az provider show --namespace Microsoft.ServiceNetworking --query "registrationState"
# Output: "Registered"

Azure PowerShell

# Register a Resource Provider
Register-AzResourceProvider -ProviderNamespace <ProviderNamespace>

# Check registration status
Get-AzResourceProvider -ProviderNamespace <ProviderNamespace>

# List all Providers with their status
Get-AzResourceProvider | Select-Object ProviderNamespace, RegistrationState

Terraform

resource "azurerm_resource_provider_registration" "example" {
name = "Microsoft.ServiceNetworking"
}

ARM Template / Bicep

resource servicenetworking 'Microsoft.Resources/providers@2021-04-01' = {
name: 'Microsoft.ServiceNetworking'
}

When Registration is Required

Resource Provider registration is necessary in the following scenarios:

  1. First-time use of a new service

    • Microsoft.ContainerService required when creating AKS for the first time
  2. Using extension features

    • Microsoft.KubernetesConfiguration needed for GitOps on AKS
    • Microsoft.ServiceNetworking needed for Application Gateway for Containers
  3. Using preview features

    • New preview features may require dedicated Resource Providers

Notes and Best Practices

Permission Requirements

Registering Resource Providers requires one of the following permissions:

  • Owner role on the subscription
  • Contributor role on the subscription
  • Custom role with Microsoft.Resources/subscriptions/resourceProviders/register/action permission

Automatic Registration

Some Azure services automatically register required Resource Providers during resource creation. However, pre-registration is recommended for these reasons:

  • Faster deployment: Automatic registration can take time
  • Error prevention: Detect permission issues before deployment
  • Infrastructure as Code: Explicit dependency management in Terraform or Bicep

Dependency Management in Terraform

# Register Resource Provider
resource "azurerm_resource_provider_registration" "servicenetworking" {
name = "Microsoft.ServiceNetworking"
}

# Resource dependent on the Provider
resource "azurerm_kubernetes_cluster" "example" {
# ... other configurations ...

depends_on = [
azurerm_resource_provider_registration.servicenetworking
]
}

Common Errors

Example Error Message

The subscription is not registered to use namespace 'Microsoft.ServiceNetworking'.
See https://aka.ms/rps-not-found for how to register subscriptions.

If you encounter this error, register the corresponding Resource Provider.

Checking Available Resource Providers

Frequently Used Providers

NamespaceService
Microsoft.ComputeVirtual Machines, VM Scale Sets
Microsoft.NetworkVirtual Network, Load Balancer, Application Gateway
Microsoft.StorageStorage Accounts
Microsoft.WebApp Service, Functions
Microsoft.SqlSQL Database, SQL Managed Instance
Microsoft.ContainerServiceAzure Kubernetes Service
Microsoft.ContainerRegistryAzure Container Registry
Microsoft.KeyVaultKey Vault
Microsoft.OperationalInsightsLog Analytics
Microsoft.InsightsApplication Insights, Monitoring

List All Available Providers

# Get all Provider list with Azure CLI
az provider list --output table

# Search with specific keyword (e.g., Kubernetes-related)
az provider list --query "[?contains(namespace,'Kubernetes')]" --output table

Summary

  • Resource Providers are service namespaces that must be registered to use Azure services
  • Follow the naming convention Microsoft.<ServiceName>
  • Can be registered via Azure Portal, CLI, PowerShell, or IaC tools
  • Requires appropriate permissions (Owner/Contributor)
  • Recommended to manage dependencies explicitly in Infrastructure as Code