This domain is where the exam tests standing privilege hardest. If you remember one thing: almost every keyed answer here removes a permanent permission, narrows a scope, or moves a credential out of a configuration file. Guess in that direction when you are unsure.
1.1 Privileged Identity Management
PIM turns permanent role assignments into eligible ones that a user activates when they need them. It covers three things, and the exam expects you to know which is which:
- PIM for Microsoft Entra roles — Global Administrator, Security Administrator and friends.
- PIM for Azure resources — Azure RBAC roles at management group, subscription, resource group or resource scope.
- PIM for Groups — membership or ownership of a role-assignable group, which is how you make anything group-based eligible, including third-party SaaS access and Azure roles assigned to a group.
flowchart TB
E["Eligible assignment — the user holds zero standing permission"] --> A["The user requests activation in PIM"]
A --> C{"What did you require on the role setting?"}
C -->|"MFA, justification, a ticket number"| S["Self-service activation, immediate"]
C -->|"Approval"| P["An approver grants or denies; the requester is notified"]
S --> ACT["Active for the maximum activation duration — configurable from 1 to 24 hours"]
P --> ACT
ACT --> EXP["Deactivates automatically · request, approval and activation are all audited"]Settings you need to be able to place
| Setting | Lives under | What it does |
|---|---|---|
| Activation maximum duration | Role settings → Activation | 1 to 24 hours. Shorter is the safer answer. |
| Require MFA on activation | Role settings → Activation | Forces a fresh strong authentication at activation time. |
| Require Microsoft Entra Conditional Access authentication context | Role settings → Activation | The stronger modern option — lets a CA policy (phishing-resistant MFA, compliant device) gate the activation. |
| Require justification / ticket information | Role settings → Activation | Free text or an ITSM ticket number, recorded in the audit log. |
| Require approval to activate | Role settings → Activation | Names specific approvers; without one, Privileged Role Administrators approve. |
| Allow permanent eligible / active assignment | Role settings → Assignment | Turn both off to force every assignment to carry an expiry. |
| Expire eligible / active assignments after | Role settings → Assignment | Eligible assignments can run to a year; active assignments are usually far shorter. |
| Access reviews | PIM → Access reviews (or ID Governance) | Recurring attestation that each assignment is still needed, with self-review, manager or named reviewers. |
| Alerts | PIM → Alerts | "Too many Global Administrators", "roles are being assigned outside of PIM", "administrators aren't using their privileged roles". |
Who can configure PIM
To manage PIM for Microsoft Entra roles you need Privileged Role Administrator (or Global Administrator). To manage PIM for Azure resources you need Owner or User Access Administrator on the scope. They are different systems with different administrators — a Privileged Role Administrator cannot configure PIM on a subscription they have no Azure rights over. PIM requires Microsoft Entra ID P2 (or Microsoft Entra ID Governance).
Break-glass accounts stay out of PIM
Keep at least two emergency access accounts with permanent Global Administrator, cloud-only, excluded from Conditional Access policies and from PIM, with credentials in a physical safe and sign-ins alerted on. An exam answer that puts every Global Administrator behind PIM and MFA with no exclusion is the wrong answer — a federation or MFA outage would lock the tenant out entirely.
1.2 Conditional Access
Conditional Access is the Zero Trust policy engine: if these signals, then these controls. It runs after first-factor authentication succeeds, and it is the last gate before a token is issued.
flowchart TB
A["Sign-in attempt — first factor has already succeeded"] --> B{"Does every assignment and condition match?<br/>users and workload identities · target resources · network · device · risk"}
B -->|"No"| D["This policy does not apply to this sign-in"]
B -->|"Yes"| E{"Is the policy set to Block?"}
E -->|"Yes"| F["Access denied — no grant control can override a block"]
E -->|"No"| G["Grant controls — MFA · authentication strength · compliant device<br/>hybrid joined · approved app · app protection · terms of use · password change"]
G --> H["Session controls attached to the token — sign-in frequency · CAE<br/>persistent browser · app enforced restrictions · token protection"]
H --> I["Access granted, with those session constraints"]The anatomy of a policy
| Section | What you can set |
|---|---|
| Users | Users and groups, directory roles, guest and external user types, workload identities (service principals and managed identities), and exclusions. Always exclude your break-glass accounts. |
| Target resources | Cloud apps, user actions (register security information, register or join a device), Global Secure Access traffic profiles, and authentication context (the hook PIM and sensitivity labels use). |
| Network | Named locations — IP ranges, countries, and Global Secure Access compliant network. |
| Conditions | User risk, sign-in risk, insider risk, device platforms, client apps, filter for devices (a rule over device attributes, including extension attributes), and authentication flows (device code flow, authentication transfer). |
| Grant | Block, or require: MFA, authentication strength, compliant device, Microsoft Entra hybrid joined device, approved client app, app protection policy, password change, terms of use. Combine with require all or require one. |
| Session | App enforced restrictions, Conditional Access App Control (Defender for Cloud Apps), sign-in frequency, persistent browser session, customise continuous access evaluation, disable resilience defaults, require token protection, and a Global Secure Access security profile. |
Authentication strengths
"Require MFA" is coarse. Authentication strength lets you demand a specific class of credential. Three are built in, and you can author custom strengths from the allowed combinations list:
- Multifactor authentication — anything that counts as MFA, the equivalent of the old checkbox.
- Passwordless MFA — Windows Hello for Business, passkeys (FIDO2), certificate-based authentication (multifactor), Microsoft Authenticator passwordless phone sign-in.
- Phishing-resistant MFA — Windows Hello for Business, passkeys (FIDO2), certificate-based authentication (multifactor). Authenticator push is not phishing-resistant.
Deploy in this order, every time
- Report-only. Create the policy in report-only mode and let it run. Results appear in the sign-in logs under the Conditional Access tab.
- What If. Simulate a specific user, app and condition set to see which policies would apply and why.
- Pilot. Scope to a small group, then widen.
- On. With break-glass accounts excluded.
Any scenario that says "without affecting users" or "validate the impact first" is asking for report-only; any scenario that says "for one specific user" is asking for What If.
Continuous access evaluation is not sign-in frequency
Sign-in frequency is a timer — re-authenticate every n hours or days.Continuous access evaluation (CAE) is event-driven: when a critical event fires (the account is disabled or deleted, the password changes, MFA is enabled, an admin explicitly revokes sessions, or ID Protection raises high user risk), the resource provider rejects the still-valid token in near real time. CAE also enforces IP-based named locations at the resource. They solve different problems and both can be needed.
1.3 Authentication methods, MFA and passwordless
Methods are managed in one place: Microsoft Entra admin center → Entra ID → Authentication methods → Policies. Each method is enabled for all users or for named groups, with exclusions, and most carry their own configuration.
| Method | Strength | Notes worth remembering |
|---|---|---|
| Passkeys (FIDO2) | Phishing-resistant | Security keys or device-bound passkeys in Microsoft Authenticator. Restrict by AAGUID to allow only approved key models. |
| Windows Hello for Business | Phishing-resistant | Biometric or PIN bound to TPM hardware on a specific device. |
| Certificate-based authentication | Phishing-resistant when multifactor | Direct against Entra ID, no AD FS. Authentication binding rules decide whether a certificate counts as single or multifactor. |
| Microsoft Authenticator | MFA; passwordless phone sign-in is passwordless but not phishing-resistant | Number matching plus app and location context are on by default and cannot be disabled. |
| Temporary Access Pass (TAP) | Bootstrap credential | A time-limited passcode, one-time or multi-use, for onboarding and for recovering a lost passkey. |
| OATH tokens | MFA | Hardware or software TOTP. Use when phones are banned from the floor. |
| SMS and voice | Weakest MFA | Vulnerable to SIM swap and interception; the exam treats them as the option to migrate away from. |
Security defaults vs Conditional Access
Security defaults are a free, all-or-nothing baseline: MFA for everyone, MFA enforced for administrators, legacy authentication blocked, privileged action protection. They cannot be customised or scoped, and they are mutually exclusive with Conditional Access — you must disable them before you can enable a single CA policy. Any question mentioning exclusions, groups or named locations has ruled security defaults out.
1.4 Application identity, consent and permissions
Two objects, one application. Getting them straight is worth several marks.
| App registration | Enterprise application | |
|---|---|---|
| Object | Application object — the global definition | Service principal — the local instance in this tenant |
| Lives | In the tenant that owns the app, once | In every tenant the app is used in |
| You configure | Redirect URIs, credentials, exposed API and scopes, app roles, requested API permissions, token configuration | User assignment and visibility, SSO, provisioning, granted permissions, Conditional Access targeting |
| Credentials | Client secret, certificate, or a federated identity credential | — |
Delegated versus application permissions
- Delegated — the app acts on behalf of a signed-in user. Effective access is the intersection of the app's granted scope and the user's own rights, so a delegated
Files.ReadWrite.Allstill only reaches files that user can already reach. - Application — the app acts as itself, with no user present. There is no intersection to save you: an application-permission
Files.Read.Allreads every file in the tenant. These always require admin consent.
Consent settings
| Setting | Where | Effect |
|---|---|---|
| User consent for applications | Enterprise applications → Consent and permissions | Three options: do not allow; allow for verified publishers, for selected permissions (the recommended middle ground); allow for all apps. |
| Admin consent workflow | Enterprise applications → Admin consent settings | Lets a blocked user request access, routing it to named reviewers instead of leaving them stuck. |
| Group owner consent | Consent and permissions | Whether group owners may consent to apps reaching their group's data. |
| Risk-based step-up consent | Consent and permissions | Blocks user consent when the request is judged risky and forces admin review. |
| Grant admin consent | On the app's API permissions blade | Tenant-wide consent for every user at once. Needs Privileged Role Administrator, Application Administrator or Cloud Application Administrator. |
Illicit consent grant, the attack this exists for
An attacker phishes a user into consenting to a malicious multi-tenant app that requests Mail.Read and offline_access. No password is stolen, MFA is never challenged, and the refresh token survives a password reset. The defences the exam wants: restrict user consent, turn on the admin consent workflow, review the OAuth permission grants and app consent in Enterprise applications, and revoke the service principal's grants and sign-in ability. Defender for Cloud Apps app governance surfaces these as OAuth app alerts.
1.5 Managed identities and workload identity federation
A managed identity is a service principal Azure creates and rotates for you, so a resource can authenticate to Microsoft Entra ID without a credential stored anywhere. It is the answer to almost every "remove the connection string from the app" question.
| System-assigned | User-assigned | |
|---|---|---|
| Lifecycle | Created with the resource, deleted with it | A standalone Azure resource with its own lifecycle |
| Sharing | One identity, one resource | One identity assigned to many resources |
| Use when | A single workload needs its own tightly bound identity | A fleet, or a scale set, needs one consistent identity, or role assignments must exist before the resource does |
Code retrieves a token from the local Azure Instance Metadata Service endpoint; in practice you use DefaultAzureCredential or ManagedIdentityCredential from the Azure Identity library and never see it.
Workload identity federation
For workloads outside Azure — a GitHub Actions job, a GitLab pipeline, a Kubernetes service account, another cloud — you cannot use a managed identity. Instead add a federated identity credential to an app registration or user-assigned managed identity, which trusts an external issuer and subject. The pipeline then exchanges its own OIDC token for a Microsoft Entra token. Same benefit: no secret to store, no secret to rotate, no secret to leak. This is the modern answer to "our deployment pipeline holds a client secret that expires every year".
1.6 Azure Key Vault
Key Vault is where SC-500 puts almost all of its "protect the credential" marks. Know the deployment choices, the two access models, the network controls and the two safety nets.
Choosing the offering
| Key Vault Standard | Key Vault Premium | Managed HSM | |
|---|---|---|---|
| Key protection | Software-protected, multi-tenant | HSM-backed, multi-tenant | Single-tenant, dedicated HSM pool |
| FIPS 140 level | Level 1 | Level 2 | Level 3 |
| Holds | Keys, secrets, certificates | Keys, secrets, certificates | Keys only |
| Access model | Azure RBAC or access policy | Azure RBAC or access policy | Its own local RBAC, managed inside the HSM |
| Recovery | Soft delete and purge protection | Soft delete and purge protection | Security domain — download and guard the key material or the HSM is unrecoverable |
The two safety nets
- Soft delete — always on and cannot be turned off. A deleted vault or object goes into a recoverable state for the retention period (7 to 90 days, default 90), during which it can be recovered or explicitly purged.
- Purge protection — optional, and irreversible once enabled. It blocks the purge operation entirely, so nothing can be permanently destroyed before the retention period elapses. Several services that use customer-managed keys (Azure Storage, Azure SQL TDE, disk encryption sets) require it.
Getting to the secret
flowchart TB
R["A caller asks a key vault for a secret"] --> N{"Does the request reach<br/>the vault at all?"}
N -->|"Public access disabled,<br/>or the firewall rejects<br/>the source"| BLOCK["Forbidden at the network layer —<br/>the permission model is<br/>never consulted"]
N -->|"Allowed by a firewall rule,<br/>a selected virtual network, a trusted<br/>services bypass or a private endpoint"| P{"Which permission model<br/>is the vault configured for?"}
P -->|"Azure RBAC —<br/>recommended"| RB["Needs a data-plane role such as<br/>Key Vault Secrets User — Owner and<br/>Contributor alone grant nothing here"]
P -->|"Vault access<br/>policy — legacy"| AP["Needs an access policy entry<br/>granting Get on Secrets"]
RB --> OK["Secret returned"]
AP --> OK| Built-in role | Grants |
|---|---|
| Key Vault Administrator | Full data-plane access to keys, secrets and certificates. Not vault management. |
| Key Vault Secrets Officer | Full management of secrets, including set and delete. |
| Key Vault Secrets User | Read secret contents. The role an application's managed identity should have. |
| Key Vault Crypto Officer | Full management of keys. |
| Key Vault Crypto User | Perform cryptographic operations with keys — wrap, unwrap, sign, verify. |
| Key Vault Certificates Officer | Full management of certificates. |
| Key Vault Reader | Read vault and object metadata, but never secret values. |
Access policies versus Azure RBAC
The legacy vault access policy model grants permissions per principal, per object type, on a single vault — and it is all-or-nothing within an object type: you cannot grant access to one secret and not another. Azure RBAC is the recommended model: it inherits from management group down, supports assignment at the level of an individual secret, works with PIM, and shows up in a single place with every other role assignment. When a question asks for least privilege on one specific secret, or for consistent management across hundreds of vaults, the answer is RBAC.
Network controls
- Firewall — allow all networks, allow selected networks (IP ranges plus virtual network subnets via service endpoints), or disable public access entirely.
- Trusted Microsoft services — a bypass checkbox that lets platform services such as Azure Disk Encryption, Azure Backup and App Service reach the vault when the firewall would otherwise refuse. The caller still needs permissions.
- Private endpoint — a private IP inside your virtual network. The pairing the exam wants is private endpoint plus public network access disabled; a private endpoint alone leaves the public path open.
Detection: two different features, easily confused
| Microsoft Defender for Key Vault | Secret scanning in Defender CSPM | |
|---|---|---|
| Question it answers | Is somebody abusing this vault right now? | Are there plaintext credentials lying around my estate? |
| Type | A workload protection plan — runtime threat detection | An agentless posture capability |
| Finds | Unusual access patterns, access from suspicious IPs or Tor exit nodes, unusual volumes of secret retrieval, denied access spikes | Secrets on VM disks, in container images, in source repositories and in IaC files — then maps where each one can be used |
| Surfaced as | Security alerts | Recommendations and attack paths |
1.7 Governance with Azure Policy
Three objects: a definition is a rule; an initiative (policy set) bundles definitions so they can be assigned and reported on together; an assignment applies either to a scope. Compliance is evaluated on change and on a roughly 24-hour cycle, and can be triggered on demand.
flowchart TB A["A create or update request arrives at Azure Resource Manager"] --> B["Disabled — the rule is skipped entirely"] B --> C["Append and Modify — the request is altered before it is written"] C --> D["Deny — the request is rejected outright"] D --> E["Audit — the request proceeds; non-compliance is recorded"] E --> F["The resource provider creates or updates the resource"] F --> G["AuditIfNotExists and DeployIfNotExists — evaluated once the resource exists"]
| Effect | Use it to… |
|---|---|
Deny | Stop non-compliant resources being created or updated at all. |
Audit | Flag non-compliance without blocking anything. The safe first step. |
Append | Add a field or a tag to the request as it is submitted. |
Modify | Add, replace or remove properties and tags, including on existing resources through a remediation task. |
DeployIfNotExists (DINE) | Deploy a related resource when it is missing — a diagnostic setting, an agent extension, a backup configuration. |
AuditIfNotExists (AINE) | Audit when a related resource is missing, without deploying it. |
DenyAction | Block a specific action rather than a property — in practice, block delete. |
Disabled | Turn the rule off without removing the assignment. Useful while testing. |
Manual | Track an attestation that cannot be measured technically, for compliance reporting. |
{
"policyRule": {
"if": {
"allOf": [
{ "field": "type", "equals": "Microsoft.Storage/storageAccounts" },
{
"field": "Microsoft.Storage/storageAccounts/allowBlobPublicAccess",
"notEquals": "false"
}
]
},
"then": { "effect": "deny" }
}
}Remediation needs an identity
DeployIfNotExists and Modify assignments deploy things, so the assignment needs a managed identity and that identity needs the roles to do the work — which means whoever creates the assignment must themselves hold those roles, or the assignment fails. Existing resources are only brought into line when you run a remediation task; creating the assignment fixes nothing retroactively on its own.
Exemption is not exclusion
An exclusion (notScopes) removes a scope from the assignment entirely — the policy simply never evaluates there. An exemption keeps the scope in the assignment but suppresses the compliance result, with a category of Waiver (accepting the non-compliance) or Mitigated (handled by another control), an optional expiry and a recorded justification. When the scenario says "temporarily, and we must be able to show why", it is an exemption.
1.8 RBAC, custom roles and over-privileged access
A role assignment is three things: a security principal (user, group, service principal, managed identity), a role definition, and a scope. Assignments are additive and inherit downwards.
| Role | Can manage resources | Can assign roles |
|---|---|---|
| Owner | Yes, everything | Yes |
| Contributor | Yes, everything | No |
| Reader | View only | No |
| User Access Administrator | No | Yes |
| Role Based Access Control Administrator | No | Yes, but cannot grant Owner or User Access Administrator |
When no built-in role fits, write a custom one. The definition is JSON with Actions/NotActions for the control plane and DataActions/NotDataActions for the data plane; AssignableScopes lists where it may be used.
{
"Name": "Virtual Machine Operator",
"IsCustom": true,
"Description": "Start, restart and monitor virtual machines, but never delete one.",
"Actions": [
"Microsoft.Compute/virtualMachines/start/action",
"Microsoft.Compute/virtualMachines/restart/action",
"Microsoft.Compute/virtualMachines/read",
"Microsoft.Insights/alertRules/*",
"Microsoft.Resources/subscriptions/resourceGroups/read"
],
"NotActions": [],
"DataActions": [],
"NotDataActions": [],
"AssignableScopes": [
"/providers/Microsoft.Management/managementGroups/contoso-platform"
]
}Three custom-role facts that get tested
One: NotActions is not a deny — it subtracts from the wildcard in Actions, and a second assignment can grant the permission straight back.Two: AssignableScopes controls where the role can be assigned, not what it can reach; a management group there makes the role reusable across every subscription beneath it.Three: a tenant supports up to 5,000 custom roles, and the fastest way to write one is to clone the nearest built-in from the portal.
Finding and fixing over-privileged assignments
- Defender for Cloud identity and access recommendations — "there should be more than one owner", "accounts with owner permissions should be MFA enabled", "external accounts with owner permissions should be removed", "deprecated accounts should be removed".
- Access reviews for Azure resource roles in PIM — recurring attestation of who still needs what.
- Defender CSPM attack path analysis — surfaces the toxic combination of an over-permissioned identity that can reach an internet-exposed, sensitive-data resource.
- The role assignment view itself — filter for Owner and Contributor at subscription scope and for assignments inherited from a management group, which are the two that surprise people.
1.9 Resource locks
| Lock | Blocks | Allows |
|---|---|---|
CanNotDelete (portal: Delete) | Deleting the resource | Reading and modifying it |
ReadOnly | Any write or delete | Reading only |
- Apply at subscription, resource group or resource — not at a management group.
- Locks inherit downwards, and the most restrictive lock in the chain wins.
- Managing locks needs
Microsoft.Authorization/locks/*— in practice Owner or User Access Administrator. - They apply to the control plane only. Data inside a locked resource can still be deleted.
1.10 Azure Backup security
Backups are the last line against ransomware, which makes them a target. Four controls, in the order the exam layers them:
| Control | What it stops |
|---|---|
| Soft delete | Deleted backup data is retained for a recovery window rather than destroyed. Always on for Recovery Services vaults; the retention period is configurable and it can be made always-on (irreversible). |
| Immutable vault | Blocks operations that would shorten retention or delete recovery points before they expire. Optionally locked, after which the setting itself cannot be reversed. |
| Multi-user authorization (MUA) | Protected operations require approval from a second identity. Implemented with a Resource Guard placed in a different subscription and tenant, owned by a different administrator, so a single compromised admin cannot both disable protection and delete backups. |
| Alerts and monitoring | Built-in security alerts on critical operations — stop protection with delete data, disable soft delete, change passphrase — sent to subscription owners by default. |
The phrase to listen for
"A rogue administrator must not be able to delete backups on their own" is multi-user authorization with a Resource Guard. "Backups must not be deletable before their retention expires" is an immutable vault. "We must be able to recover backups deleted by mistake" is soft delete. Three similar-sounding requirements, three different features.
1.11 Security controls through infrastructure as code
The exam treats IaC as both a way to apply controls consistently and a surface that itself needs securing.
- Deploy controls as code. Bicep and ARM templates, Terraform, and Azure Verified Modules express hardened baselines — private endpoints, diagnostic settings, TLS minimums — so a compliant resource is the default rather than a remediation task. Deployment stacks add deny settings, which behave like a managed deny assignment over everything the stack manages.
- Scan the code before it ships. Defender for Cloud's DevOps security connects to Azure DevOps, GitHub and GitLab and surfaces IaC misconfigurations, exposed secrets, code and dependency findings as recommendations in the same secure score as the running estate. The Microsoft Security DevOps extension runs the analysers inside the pipeline itself.
- Authenticate the pipeline without secrets. Use workload identity federation for the deployment service connection, and never a long-lived client secret.
- Pair it with Azure Policy. IaC covers what your pipelines create; Policy covers everything else, including what somebody creates by hand in the portal at two in the morning.
Skill 1 checklist
- Eligible beats active; approval and a short activation window beat a long one; PIM for Groups is how you make anything group-based eligible.
- Report-only first, What If for one user, break-glass accounts excluded from everything.
- Phishing-resistant MFA means passkeys, Windows Hello for Business or certificate-based authentication — not Authenticator push.
- Application permissions have no user to intersect with; they always need admin consent.
- Managed identity inside Azure; workload identity federation outside it.
- Key Vault: soft delete is mandatory, purge protection is optional and irreversible, RBAC beats access policies, private endpoint plus disabling public access.
- Policy governs shape, RBAC governs who, locks govern deletion — and a lock never protects data.
- MUA with a Resource Guard is the answer to the rogue-administrator backup question.
Next: Skill 2, the heaviest domain on the exam.