Domain 1 β€” Module 4 of 7 57%
4 of 30 overall
Domain 1: Design Identity, Governance, and Monitoring Solutions Free ⏱ ~18 min read

Authorizing Access to Resources

RBAC, custom roles, Conditional Access, and on-premises access design β€” control exactly who can do what, where, and when across your Azure environment.

Why authorization design matters

Simple explanation

Authentication proves WHO you are. Authorization decides WHAT you can do.

In Azure, authorization has two dimensions: Azure RBAC (who can manage Azure resources β€” VMs, storage, networks) and data plane access (who can read/write the actual data inside those resources).

The architect’s job is designing an authorization model that follows least privilege, scales across subscriptions, and doesn’t create bottlenecks.

Azure RBAC: the authorization engine

Scope hierarchy

RBAC assignments inherit downward through the scope hierarchy:

Management Group
  └── Subscription
       └── Resource Group
            └── Resource
Design DecisionGuidance
Assign at the highest useful scopeReduces duplicate assignments. β€œReader on subscription” beats β€œReader on 50 resource groups.”
Use resource groups as permission boundariesGroup resources by team/app/lifecycle β€” RG-level RBAC is the sweet spot.
Avoid resource-level assignmentsHard to audit and maintain at scale. Exception: sensitive resources (Key Vault, databases).
Never assign Owner at subscription scope to usersOwner can change RBAC itself. Use Contributor + separate User Access Administrator if needed.

Built-in roles vs custom roles

Built-in Roles vs Custom Roles
FactorBuilt-in RolesCustom Roles
Availability500+ roles ready to useYou define the exact permissions
MaintenanceMicrosoft updates them as services evolveYou must update when new API actions are added
ScopeAvailable at all scopesDefined at management group or subscription scope
AuditWell-documented, widely understoodCustom β€” requires documentation for your org
When to useFirst choice β€” check built-in before creating customWhen built-in grants too much or too little

πŸ›οΈ David’s approach: CloudPath Advisory designed a custom role for government agency β€œApp Deployers” who need to:

  • Deploy App Services and Function Apps βœ…
  • Configure app settings and connection strings βœ…
  • NOT modify networking or access the data plane ❌
  • NOT manage RBAC assignments ❌

No built-in role matched this exactly β€” Contributor grants too much (networking and full resource management), Website Contributor doesn’t include Functions.

Exam tip: Custom roles β€” know the JSON structure

The exam may show a JSON role definition and ask what it permits or how to fix it. Key properties:

  • Actions: Control plane operations allowed (e.g., Microsoft.Web/sites/*)
  • NotActions: Exceptions to Actions (e.g., Microsoft.Web/sites/config/list/action to block reading connection strings)
  • DataActions: Data plane operations (e.g., Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read)
  • AssignableScopes: Where the role can be assigned (subscription or management group IDs)

Data plane vs control plane authorization

A critical distinction that the exam tests heavily:

PlaneWhat It ControlsExample
Control planeManaging the resource itselfCreating a storage account, configuring firewall rules
Data planeAccessing data inside the resourceReading/writing blobs, querying a database

Why this matters: A user with Contributor on a storage account can manage it (control plane) but CANNOT read the blobs inside it. They need Storage Blob Data Reader for that (data plane).

🏦 Elena’s design principle: β€œSeparate control plane and data plane access. Database administrators manage the SQL server infrastructure (Contributor role on the Azure resource), but data access uses Entra ID-authenticated SQL users and roles β€” not connection strings. No human accounts should have production data access outside of Entra-authenticated, audited sessions.”

Designing on-premises access

Azure Application Proxy

For publishing on-premises web apps to external users without VPN:

FeatureDescription
No inbound portsConnector makes outbound connection β€” no DMZ or firewall changes
Single sign-onEntra ID pre-authentication + Kerberos Constrained Delegation to on-prem app
Conditional AccessApply cloud policies (MFA, device compliance) to on-prem apps
Best forLegacy web apps that can’t be modernised yet

Hybrid access patterns

PatternUse CaseTechnology
App ProxyPublish individual on-prem web appsEntra Application Proxy connector
VPN (P2S)Remote workers accessing on-prem networkAzure VPN Gateway, Point-to-Site
VPN (S2S)Site-to-site connectivity (office to Azure)Azure VPN Gateway, Site-to-Site
ExpressRouteHigh-bandwidth, low-latency private connectionExpressRoute circuit + peering
Entra DSLegacy apps needing LDAP/Kerberos in the cloudEntra Domain Services

πŸ—οΈ Priya’s hybrid design: During GlobalTech’s migration, some apps are on-prem and some are in Azure:

  • App Proxy for the legacy HR portal (web-based, needs Kerberos SSO)
  • S2S VPN for the transition period (Azure VMs talking to on-prem databases)
  • ExpressRoute planned for post-migration (production traffic needs guaranteed bandwidth)

Knowledge check

Question

What's the difference between control plane and data plane in Azure RBAC?

Click or press Enter to reveal answer

Answer

Control plane manages the resource (create, configure, delete). Data plane accesses data inside the resource (read blobs, query databases). A user with Contributor can manage a storage account but cannot read its blobs β€” they need Storage Blob Data Reader for that.

Click to flip back

Question

At what scope should you typically assign RBAC roles?

Click or press Enter to reveal answer

Answer

Resource group level is the sweet spot for most scenarios. It groups related resources by team/application and avoids the management overhead of per-resource assignments. Assign at subscription level only for cross-cutting roles (Security Reader, Cost Management Reader).

Click to flip back

Question

What does Azure Application Proxy provide?

Click or press Enter to reveal answer

Answer

Secure external access to on-premises web applications without VPN or inbound firewall ports. It uses an outbound connector agent, Entra ID pre-authentication (including Conditional Access and MFA), and can provide SSO via Kerberos Constrained Delegation.

Click to flip back

Knowledge Check

🏦 Elena's development team needs to deploy and configure Azure App Services in their resource group, but they must NOT be able to modify network configurations or read application secrets. Which approach should Elena recommend?

Knowledge Check

πŸ—οΈ GlobalTech has a legacy timesheet web application running on-premises. Remote workers need to access it from home without a VPN, and Priya wants to enforce MFA and device compliance. Which solution should she recommend?


Next up: Resources are authorised β€” now let’s protect the secrets that make it all work β€” Secrets, Keys & Certificates.