Skip to main content

Command Palette

Search for a command to run...

Understanding Azure Permissions: A Practical Guide

A clear and actionable breakdown of Azure RBAC roles, scopes, and the permissions required for real-world cloud operations.

Updated
9 min read
Understanding Azure Permissions: A Practical Guide

Introduction.

Understanding who can do what in Azure is one of the most common pain points for businesses adopting or scaling their cloud infrastructure. Assigning permissions might appear straightforward—until a user with “Contributor” access cannot assign a role, deploy a service, or view cost data.

These types of roadblocks are especially common when developers, DevOps engineers, or IT support teams are expected to build or manage infrastructure but lack the necessary access.

This guide was written to remove the guesswork. It covers the fundamentals of Azure Role-Based Access Control (RBAC), explains the purpose and limitations of common built-in roles, and maps those roles to specific operational tasks.

Whether you're managing SQL resources, deploying Function Apps, configuring managed identities, or setting policies, this article will help you understand the exact permissions needed—and the best way to assign them securely.

By the end of this guide, you should be able to:

  • Confidently determine which Azure role is required for a given task

  • Avoid the pitfalls of over- or under-provisioning access

  • Support technical users with the correct access model from the outset

This article is ideal for IT service providers, internal support teams, and cloud engineers who want to align autonomy with governance in Azure.


Azure RBAC Explained.

Azure Role-Based Access Control (RBAC) is Microsoft’s native system for managing access to Azure resources. It allows organisations to grant users only the permissions they need to perform specific tasks, and nothing more—supporting the principle of least privilege.

Each role assignment in Azure consists of three parts:

  • Security Principal: The user, group, or service principal being granted access.

  • Role Definition: A predefined or custom set of permissions (e.g. Reader, Contributor, Owner).

  • Scope: The level at which the permissions apply—this can be a subscription, resource group, or specific resource.

Understanding this model is essential to managing Azure securely and effectively. A user might have the right role but at the wrong scope, leading to frustrating permission errors.


Key Built-in Roles (and What They Actually Do).

Microsoft Azure includes a long list of built-in roles, but for most practical cases, the following are the most relevant:

RoleWhat it allowsCan assign roles?
ReaderView resources onlyNo
ContributorCreate and manage resources (excluding IAM)No
OwnerFull access to all resources, including IAMYes
User Access AdministratorAssign RBAC roles to othersYes
Key Vault AdministratorManaged secrets, keys, certificates, and policiesNo
Application AdministratorManage app registrations and enterprise appsNo
Managed Identity ContributorCreate and assign managed identities to resourcesNo
Cost Management ContributorView and manage budget and cost alertsNo
Policy ContributorCreate and assign Azure PoliciesNo

Note: Assigning a role at a higher scope (e.g. subscription) gives access to everything underneath it (e.g. all resource groups and resources).


Common Microsoft Azure Tasks & The Roles Required.

The following sections explain what roles are needed for common Azure administration tasks, including those frequently encountered in service desk escalations and infrastructure deployments.

1.1 Creating and managing resource groups.

TaskRequired roleScope
Create, rename, or delete resource groupsContributorSubscription
Deploy resources into a groupContributorResource Group
Assign permissions within a groupContributor + User Access Administrator or OwnerResource Group

A common mistake is assuming Contributor alone allows IAM changes. It does not.

1.2 Creating and managing Azure subscriptions.

Azure subscription management takes place largely outside the Azure portal, often via the Microsoft 365 admin centre or Azure EA/partner portals.

TaskRequired roleWhere Set
Create or rename a subscriptionGlobal Administrator or Billing AdministratorMicrosoft 365 Admin Portal
View and manage resources inside a subscriptionContributor or OwnerAzure Portal
Assign roles within the subscriptionOwner or User Access AdminAzure Portal

You cannot create new Azure subscriptions directly from the Azure portal without billing permissions in Microsoft 365.


1.3 Budget and Cost Monitoring

TaskRequired roleScope
View cost reportsReader or Cost Management ReaderSubscription
Create budgets and alertsCost Management ContributorSubscription
Manage cost recommendations and advisor settingsCost Management ContributorSubscription

The Contributor role alone does not allow access to cost tools unless explicitly granted.


1.4 Managing App Registrations and Service Principals

Azure Active Directory (Entra ID) governs identity-related actions. Roles assigned in the Azure portal alone are insufficient for app registration control.

TaskRequired roleScope
Create and manage app registrationsApplication AdministratorEntra ID
Grant permissions to appsApplication AdministratorEntra ID
Manage Enterprise ApplicationsApplication AdministratorEntra ID
Assign roles to service principals in AzureUser Access Administrator or OwnerAzure Resource Scope

1.5 Deploying Secure Workloads with Managed Identities

Managed Identities allow services to authenticate securely without passwords or connection strings.

TaskRequired roleScope
Enable managed identity on resourcesContributorResource
Assign roles to managed identitiesUser Access AdministratorTarget resource
Allow function apps or VMs to use managed identityContributorFunction App or VM
Create or manage identity role bindings (e.g. Key Vault)Managed Identity ContributorVault or resource

1.6 Azure SQL Servers and Databases

Azure SQL requires both RBAC and SQL-specific permissions. Some access must be configured within SQL itself.

TaskRequired roleScope
Deploy SQL servers and DBsContributorResource Group
Configure networking, firewall rulesContributorSQL Server
Enable Azure AD authenticationSQL Active Directory AdminSQL Server
Grant database access via Entra IDSQL Admin (internal) + Entra rolesSQL Server / Entra ID

1.7 Key Vaults and Secrets

Key Vault is highly secured. Access must be explicitly granted, regardless of Contributor rights.

TaskRequired roleScope
Create and delete Key VaultsContributorResource Group
View or modify secretsKey Vault Reader or Key Vault AdministratorKey Vault
Assign access to identitiesKey Vault AdministratorKey Vault
Link Vaults with apps securelyContributor (on app) + Role assignment on VaultApp and Key Vault

1.8 Azure Function Apps and Automation Workloads

TaskRequired roleScope
Create or delete Function AppsContributorResource Group
Assign identity for automationContributorFunction App
Connect app to Key Vault securelyContributor + User Access Admin (on Vault)App + Vault
Deploy from GitHub using managed identityApplication Admin (Entra) + ContributorAzure and Entra

1.9 Creating and Applying Azure Policy

Policy allows organisations to enforce compliance controls across resources.

TaskRequired roleScope
Create custom policiesPolicy ContributorSubscription or Management Group
Assign initiatives (policy sets)Policy Contributor or OwnerSubscription
View policy complianceReader or Policy ReaderSubscription or below

A Contributor cannot create or assign policies unless explicitly granted the Policy Contributor role.


Summary: Suggested Role Set For A Cloud Engineer.

For someone building and managing Azure infrastructure autonomously (e.g. a DevOps or Lead Software Engineer), the following roles should be considered:

ScopeRecommended roles
SubscriptionOwner or Contributor + User Access Administrator
Entra IDApplication Administrator
Key VaultsKey Vault Administrator
Budgets & CostsCost Management Contributor
SQL ServersContributor + SQL AD Admin (set in SQL)
Function AppsContributor
Automation & IdentityManaged Identity Contributor
Policy ManagementPolicy Contributor

If autonomy must be balanced with oversight, use Privileged Identity Management (PIM) to grant time-limited access to elevated roles.


Custom Roles & Security Groups In Azure.

In some scenarios, the built-in roles provided by Microsoft do not precisely match the requirements of your organisation. For example, you may want to grant a user the ability to manage storage accounts but not virtual networks, or allow access to Cost Management tools without exposing billing settings.

1.1 Custom Roles.

Custom roles allow you to define a permission set tailored to your organisation’s needs. They are created using Azure Resource Manager and consist of a list of allowed actions, denied actions, and the scope to which they apply.

Use caseExample
A developer needs to manage Function Apps but not delete themCreate a custom role without Microsoft.Web/sites/delete
An auditor needs read-only access to all resources plus cost dataBase the role on Reader + add Microsoft.CostManagement/*/read
A third party should manage storage but not modify networking or IAMGrant storage actions only, and deny network/IAM actions

Custom roles require planning and testing but can significantly reduce over-permissioning.
Learn more:
Create or update Azure custom roles

1.2 Security Groups for Role Assignments.

Rather than assigning roles directly to individuals, it is best practice to assign RBAC roles to Microsoft Entra security groups. This offers several advantages:

  • Scalability: Assign a role once to the group, and it applies to all members.

  • Audibility: Easily see who inherits access via group membership.

  • Lifecycle management: Use Entra dynamic groups or HR-connected provisioning to manage group population.

Group typeUse case
Static security group“Cloud Engineers - UK” with direct membership
Dynamic group“All users with job title = ‘Software Engineer’”
Nested groupFor complex structures (e.g. team leads, contractors)

Security groups can be used both in Azure RBAC and Entra roles (e.g. Application Administrator), making them a key part of scalable access control.

Tip: Assigning roles to groups makes permissions easier to audit and rotate when staff change roles.


Final Thoughts.

Azure permissions are powerful, but when misconfigured, either by selecting the wrong role or applying it at the wrong scope, they can introduce serious barriers to progress.

Poorly assigned access can delay deployments, create security gaps, undermine governance, and prevent critical infrastructure from being managed effectively.

Avoid defaulting to "Contributor" or "Owner" for all users. Instead, use targeted combinations of roles like Contributor + User Access Administrator, Application Administrator, and Key Vault Administrator to provide operational access without compromising governance.

As teams scale, consider formalising a permissions baseline per role (e.g. Developer, DevOps, Analyst), and use Azure PIM to support just-in-time access for high-risk actions.