Skill 1 · 20–25%

Manage identity, access, and governance

Twenty to twenty-five per cent of the exam, and the foundation for everything after it. Three blocks: hardening Microsoft Entra ID, protecting secrets and keys in Azure Key Vault, and governing the estate with policy, roles, locks and code.

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"]
The PIM activation path. Everything on it — the request, the approval, the activation and the expiry — lands in the PIM audit log.

Settings you need to be able to place

SettingLives underWhat it does
Activation maximum durationRole settings → Activation1 to 24 hours. Shorter is the safer answer.
Require MFA on activationRole settings → ActivationForces a fresh strong authentication at activation time.
Require Microsoft Entra Conditional Access authentication contextRole settings → ActivationThe stronger modern option — lets a CA policy (phishing-resistant MFA, compliant device) gate the activation.
Require justification / ticket informationRole settings → ActivationFree text or an ITSM ticket number, recorded in the audit log.
Require approval to activateRole settings → ActivationNames specific approvers; without one, Privileged Role Administrators approve.
Allow permanent eligible / active assignmentRole settings → AssignmentTurn both off to force every assignment to carry an expiry.
Expire eligible / active assignments afterRole settings → AssignmentEligible assignments can run to a year; active assignments are usually far shorter.
Access reviewsPIM → Access reviews (or ID Governance)Recurring attestation that each assignment is still needed, with self-review, manager or named reviewers.
AlertsPIM → 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"]
Conditional Access evaluation. Every policy that matches is applied, and a Block in any one of them wins outright.

The anatomy of a policy

SectionWhat you can set
UsersUsers 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 resourcesCloud 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).
NetworkNamed locations — IP ranges, countries, and Global Secure Access compliant network.
ConditionsUser 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).
GrantBlock, 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.
SessionApp 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

  1. 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.
  2. What If. Simulate a specific user, app and condition set to see which policies would apply and why.
  3. Pilot. Scope to a small group, then widen.
  4. 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.

MethodStrengthNotes worth remembering
Passkeys (FIDO2)Phishing-resistantSecurity keys or device-bound passkeys in Microsoft Authenticator. Restrict by AAGUID to allow only approved key models.
Windows Hello for BusinessPhishing-resistantBiometric or PIN bound to TPM hardware on a specific device.
Certificate-based authenticationPhishing-resistant when multifactorDirect against Entra ID, no AD FS. Authentication binding rules decide whether a certificate counts as single or multifactor.
Microsoft AuthenticatorMFA; passwordless phone sign-in is passwordless but not phishing-resistantNumber matching plus app and location context are on by default and cannot be disabled.
Temporary Access Pass (TAP)Bootstrap credentialA time-limited passcode, one-time or multi-use, for onboarding and for recovering a lost passkey.
OATH tokensMFAHardware or software TOTP. Use when phones are banned from the floor.
SMS and voiceWeakest MFAVulnerable 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 registrationEnterprise application
ObjectApplication object — the global definitionService principal — the local instance in this tenant
LivesIn the tenant that owns the app, onceIn every tenant the app is used in
You configureRedirect URIs, credentials, exposed API and scopes, app roles, requested API permissions, token configurationUser assignment and visibility, SSO, provisioning, granted permissions, Conditional Access targeting
CredentialsClient 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.All still 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.All reads every file in the tenant. These always require admin consent.

Consent settings

SettingWhereEffect
User consent for applicationsEnterprise applications → Consent and permissionsThree options: do not allow; allow for verified publishers, for selected permissions (the recommended middle ground); allow for all apps.
Admin consent workflowEnterprise applications → Admin consent settingsLets a blocked user request access, routing it to named reviewers instead of leaving them stuck.
Group owner consentConsent and permissionsWhether group owners may consent to apps reaching their group's data.
Risk-based step-up consentConsent and permissionsBlocks user consent when the request is judged risky and forces admin review.
Grant admin consentOn the app's API permissions bladeTenant-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-assignedUser-assigned
LifecycleCreated with the resource, deleted with itA standalone Azure resource with its own lifecycle
SharingOne identity, one resourceOne identity assigned to many resources
Use whenA single workload needs its own tightly bound identityA 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 StandardKey Vault PremiumManaged HSM
Key protectionSoftware-protected, multi-tenantHSM-backed, multi-tenantSingle-tenant, dedicated HSM pool
FIPS 140 levelLevel 1Level 2Level 3
HoldsKeys, secrets, certificatesKeys, secrets, certificatesKeys only
Access modelAzure RBAC or access policyAzure RBAC or access policyIts own local RBAC, managed inside the HSM
RecoverySoft delete and purge protectionSoft delete and purge protectionSecurity 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
Two independent gates: the network gets its answer first, and the permission model is only consulted for requests that arrive.
Built-in roleGrants
Key Vault AdministratorFull data-plane access to keys, secrets and certificates. Not vault management.
Key Vault Secrets OfficerFull management of secrets, including set and delete.
Key Vault Secrets UserRead secret contents. The role an application's managed identity should have.
Key Vault Crypto OfficerFull management of keys.
Key Vault Crypto UserPerform cryptographic operations with keys — wrap, unwrap, sign, verify.
Key Vault Certificates OfficerFull management of certificates.
Key Vault ReaderRead 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 VaultSecret scanning in Defender CSPM
Question it answersIs somebody abusing this vault right now?Are there plaintext credentials lying around my estate?
TypeA workload protection plan — runtime threat detectionAn agentless posture capability
FindsUnusual access patterns, access from suspicious IPs or Tor exit nodes, unusual volumes of secret retrieval, denied access spikesSecrets on VM disks, in container images, in source repositories and in IaC files — then maps where each one can be used
Surfaced asSecurity alertsRecommendations 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 evaluation order. Everything up to Deny happens before the resource exists; the two IfNotExists effects run afterwards, which is why they can deploy or audit related resources.
EffectUse it to…
DenyStop non-compliant resources being created or updated at all.
AuditFlag non-compliance without blocking anything. The safe first step.
AppendAdd a field or a tag to the request as it is submitted.
ModifyAdd, 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.
DenyActionBlock a specific action rather than a property — in practice, block delete.
DisabledTurn the rule off without removing the assignment. Useful while testing.
ManualTrack an attestation that cannot be measured technically, for compliance reporting.
policy rule
{
  "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.

RoleCan manage resourcesCan assign roles
OwnerYes, everythingYes
ContributorYes, everythingNo
ReaderView onlyNo
User Access AdministratorNoYes
Role Based Access Control AdministratorNoYes, 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.

custom role
{
  "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

LockBlocksAllows
CanNotDelete (portal: Delete)Deleting the resourceReading and modifying it
ReadOnlyAny write or deleteReading 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:

ControlWhat it stops
Soft deleteDeleted 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 vaultBlocks 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 monitoringBuilt-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.