azureblog.co.uk
← cd ~/posts

Azure built-in roles explained: Owner, Contributor, Reader and what to use instead

Owner, Contributor and Reader cover most Azure role assignments, and they're usually far more access than anyone needs. Here's how Azure roles work, which ones Microsoft treats as privileged, and how to find a smaller role that still does the job.

AzureNEW4 min read✓ checked 5 Nov 2026Azure · Governance · Security
On this page
  1. Azure roles aren't Entra roles
  2. Three things decide what a role assignment can do
  3. The five privileged roles
  4. Owner, Contributor, Reader: the differences
  5. Pick a smaller role
  6. Find who has the big roles
  7. Checklist

Azure has hundreds of built-in roles, but most tenants lean on three: Owner, Contributor and Reader. They're easy to assign and they always work, which is exactly the problem. This guide explains how Azure roles fit together, so you can pick the smallest one that does the job.

Azure roles aren't Entra roles

There are two separate role systems, and mixing them up causes a lot of confusion:

  • Azure roles (Azure ) control access to Azure resources: subscriptions, resource groups, VMs, storage accounts, key vaults.
  • Microsoft Entra roles control access to the directory: users, groups, apps, . is an Entra role.

Being Global Administrator doesn't give you access to Azure resources by default, and being Owner of a subscription doesn't let you manage users. This site has pages for both: Azure roles and Entra roles.

Three things decide what a role assignment can do

  1. The role: a list of allowed actions and not actions, such as Microsoft.Compute/virtualMachines/start/action.
  2. The scope: where it applies. That can be a , subscription, resource group or single resource. Access is inherited downwards, so Owner on a subscription is Owner on everything in it.
  3. The principal: who gets it, whether a user, group, or .

Roles also separate the control plane (managing the resource, through Actions) from the data plane (the data inside it, through DataActions). Contributor can manage a storage account but can't read the blobs inside it through Entra ID authentication. That needs a data role such as Storage Blob Data Reader or Contributor.

The five privileged roles

Microsoft groups five built-in roles as privileged administrator roles. In Microsoft's words:

RoleWhat Microsoft says it does
Owner"Grants full access to manage all resources, including the ability to assign roles in Azure RBAC."
Contributor"Grants full access to manage all resources, but does not allow you to assign roles in Azure RBAC, manage assignments in Azure Blueprints, or share image galleries."
User Access Administrator"Lets you manage user access to Azure resources."
Role Based Access Control Administrator"Manage access to Azure resources by assigning roles using Azure RBAC. This role does not allow you to manage access using other ways, such as ."
Reservations Administrator"Lets one read and manage all the reservations in a tenant"

The ones that can grant access (Owner, User Access Administrator and Role Based Access Control Administrator) are the most dangerous, because anyone holding them can give themselves or anyone else any other role.

Owner, Contributor, Reader: the differences

  • Owner can do everything, including assigning roles. Keep it to a handful of people per subscription, ideally as eligible assignments in . See Owner vs Contributor.
  • Contributor can create, change and delete any resource but can't grant access. It's still very broad: a Contributor can delete production. See Contributor vs Reader.
  • Reader can view everything but change nothing. It's fine for auditors and dashboards. Monitoring Reader is smaller if they only need monitoring data.

If someone needs to assign roles but shouldn't be Owner, use Role Based Access Control Administrator instead of User Access Administrator. Its description says it manages access "by assigning roles using Azure RBAC" only, and Microsoft lets you add conditions to role assignments to limit which roles it can assign.

Pick a smaller role

For most jobs there's a built-in role far smaller than Contributor:

The least-privilege role finder searches every built-in role for the actions you need and suggests the smallest match.

Find who has the big roles

With Azure PowerShell, list every Owner and User Access Administrator on a subscription, including inherited assignments:

powershell6 lines
Connect-AzAccount
$sub = "/subscriptions/00000000-0000-0000-0000-000000000000"
foreach ($role in "Owner", "User Access Administrator", "Role Based Access Control Administrator") {
    Get-AzRoleAssignment -Scope $sub -RoleDefinitionName $role |
        Select-Object @{ n = "Role"; e = { $role } }, DisplayName, SignInName, ObjectType, Scope
}

Or with the Azure CLI, across every subscription you can see:

shell2 lines
az role assignment list --all --role Owner --include-inherited \
    --query "[].{who:principalName, type:principalType, scope:scope}" -o table

Checklist

  • Keep Owner and the access-granting roles to as few people as possible, and make them eligible in PIM.
  • Assign roles to groups, not individuals, so access is reviewed in one place.
  • Assign at the smallest scope that works: a resource group, not the subscription.
  • Replace Contributor with a resource-specific role wherever one exists.
  • Remember data roles: control-plane roles don't automatically give access to the data inside.

More on Azure →

Spotted something out of date or wrong? Tell us and we'll fix it.