Sample questions

SC-500 practice questions, with full explanations

75 sample SC-500 (Cloud and AI Security Engineer) questions, each with the correct answer, a breakdown of why every other option is wrong, a memory hook, and the Microsoft Learn reference. Work the questions by topic; each topic names the book behind it.

The books

The SC-500 bookshelf

The SC-500 exam set

Going deeper on one product: nine field guides, one product each.

Each has a sample on its Amazon page.

Work the 75 questions, one topic at a time

Each topic opens to its questions with the full explanation, the memory hook and the Microsoft Learn page behind it.

Cover of SC-500 Cloud and AI Security Engineer Complete Exam Guide
Topic 1 of 4

Manage identity, access, and governance (18 questions)

Go deeper in SC-500 Cloud and AI Security Engineer Complete Exam Guide. Get it on Amazon

Show the 18 questions and explanations

Litware's help desk lead will issue Temporary Access Passes so that users can register passkeys, including users who already hold Microsoft Entra administrator roles. Following least privilege, which role should the help desk lead hold to create passes for both standard users and administrators?

Correct answer: B. Privileged Authentication Administrator

The Temporary Access Pass article lists who can act on passes: Privileged Authentication Administrators can create, delete and view a pass for admins and members (except themselves), Authentication Administrators can do so for members only, and Authentication Policy Administrators enable the method and choose which users and groups can sign in with it. Only Privileged Authentication Administrator reaches users who hold administrator roles.

Why the other options are wrong:

  • A. Privileged Role Administrator Privileged Role Administrator manages directory role assignments. Learn's list of roles that create passes names only the two authentication administrator roles.
  • C. Authentication Policy Administrator Authentication Policy Administrator enables the Temporary Access Pass method and sets its scope and lifetimes, but Learn doesn't list it among the roles that create passes for users.
  • D. Authentication Administrator Authentication Administrator can create passes for members only, so users who hold administrator roles would be out of reach.

Memory hook: TAP for admins and members: Privileged Authentication Administrator; members only: Authentication Administrator.

Microsoft Learn: Authentication temporary access pass

At Litware, the security engineer opens the PIM role settings for the Exchange Administrator Microsoft Entra role, turns on Require approval to activate, and saves without selecting any approvers. Later, an eligible user submits an activation request. Who can approve it?

Correct answer: D. Any active Privileged Role Administrator or Global Administrator in the tenant

The PIM article on Microsoft Entra role settings says approvers don't need any role, at least one approver should be selected (two are recommended), and if no specific approvers are selected, active Privileged Role Administrators and Global Administrators become the default approvers. It also warns that a tenant is locked out when approval is required, no approvers are configured, and every Privileged Role Administrator and Global Administrator holds only an eligible assignment.

Why the other options are wrong:

  • A. No one, because the setting can't be saved until at least one approver is chosen That is the rule for Azure resource roles, which have no default approvers and require you to select at least one. Microsoft Entra roles fall back to default approvers instead.
  • B. Any user who currently holds an active Exchange Administrator assignment Holding the requested role doesn't make someone an approver. With no approvers selected, PIM routes the request to active Privileged Role Administrators and Global Administrators.
  • C. The requesting user's manager, as recorded on the user's directory profile Manager approval is an entitlement management access package option. A PIM role setting with no selected approvers sends requests to the default approvers, not to a manager.

Memory hook: Entra role, approval on, no approvers named: active PRAs and GAs approve; Azure resource roles make you pick.

Microsoft Learn: PIM change default settings

Litware assigned the built-in Add a tag to resources policy definition, which uses the modify effect, to a subscription in the Azure portal with a system-assigned managed identity. New resources now receive the tag, but 240 resources that existed before the assignment still show as non-compliant a week later. What should the security engineer do so that the existing resources get the tag?

Correct answer: C. Create a remediation task for the policy assignment.

The modify effect changes a request only while a resource is being created or updated. The Azure Policy modify effect page says an evaluation cycle makes no changes to resources that already exist; it marks them non-compliant so that a remediation task can fix them. A remediation task for the assignment applies the modify operations to the existing resources as the assignment's managed identity, which the portal already granted the roles the definition lists.

Why the other options are wrong:

  • A. Assign a copy of the definition that uses the append effect. Append also acts only on create and update requests and leaves existing resources unchanged, and Learn recommends modify rather than append for tags.
  • B. Run Start-AzPolicyComplianceScan against the subscription. An on-demand scan only reevaluates compliance state. It reports the same 240 resources as non-compliant and changes none of them.
  • D. Grant the assignment's managed identity Owner on the subscription. Permissions aren't the gap, because the portal already granted the roles the definition lists. No identity change starts remediation without a task.

Memory hook: Modify and deployIfNotExists fix new requests on their own; existing resources wait for a remediation task.

Microsoft Learn: Effect modify

Adatum's Azure subscription has Defender CSPM enabled. The security team wants Microsoft Defender for Cloud to block the creation of storage accounts that fail one specific Microsoft cloud security benchmark recommendation, which supports both the Deny and Enforce actions, without anyone writing Azure Policy JSON. What should the engineer configure?

Correct answer: B. Set the recommendation's effect to Deny in the subscription's Security policies.

The page on managing benchmark recommendations describes Deny as preventing deployment of resources that don't comply, so a storage account that fails the recommendation can't be created. It's set in Environment settings: select the subscription, open Security policies, choose the benchmark, then Manage recommendations and Manage effect and parameters, and select Deny. Enforce instead applies the DeployIfNotExists effect to remediate noncompliant resources upon creation.

Why the other options are wrong:

  • A. Create a workflow automation that triggers a logic app when the recommendation is unhealthy. Workflow automation reacts after the recommendation reports the account, by which point the account already exists.
  • C. Create a governance rule for the recommendation with a 7-day remediation time frame. A governance rule assigns an owner and a due date for fixing findings later; it never stops a deployment.
  • D. Select Enforce on the recommendation's details page and save the change. Enforce uses DeployIfNotExists to remediate a noncompliant resource as it's created, so the storage account still gets created.

Memory hook: Deny blocks the create; Enforce lets it through and remediates with DeployIfNotExists.

Microsoft Learn: Prevent misconfigurations

Tailspin Toys connected its Azure DevOps organization to Defender for Cloud with only foundational CSPM enabled. Pipelines run the Microsoft Security DevOps extension, branch policies already require build validation on main, and IaC misconfiguration recommendations for Bicep files appear in Defender for Cloud. Developers now want those findings shown on their pull requests. What should you do?

Correct answer: D. Enable the Defender CSPM plan, and then turn on pull request annotations for the repositories in DevOps security

IaC misconfiguration recommendations are included with foundational CSPM, but Learn's DevOps security support matrix lists pull request annotations under Defender CSPM only. With the Microsoft Security DevOps extension running and build validation already on main, the remaining steps are to enable the paid Defender CSPM plan and switch pull request annotations on in Defender for Cloud, under DevOps security, then Manage resources.

Why the other options are wrong:

  • A. Enable agentless code scanning (preview) for the Azure DevOps connector so that findings appear on pull requests Agentless code scanning is another way to produce IaC recommendations, which Tailspin already gets; it doesn't add pull request annotations on its own.
  • B. Turn on pull request annotations for the repositories in DevOps security while keeping only foundational CSPM The toggle is the right place, but pull request annotations are a Defender CSPM capability, so they aren't delivered while only foundational CSPM is enabled.
  • C. Enable GitHub Advanced Security for Azure DevOps on the repositories so that findings appear on pull requests GitHub Advanced Security for Azure DevOps supplies exposed secret and open source vulnerability findings; IaC pull request annotations still need Defender CSPM.

Memory hook: Foundational CSPM finds IaC issues; Defender CSPM puts them on the pull request.

Microsoft Learn: Devops support

Tailspin Toys connected an AWS account to Microsoft Defender for Cloud and runs foundational CSPM only. The security team wants a custom recommendation that marks EC2 instances missing a CostCenter tag as unhealthy and wants it grouped into a custom standard. What should the team do?

Correct answer: A. Enable Defender CSPM, then create the custom recommendation with a KQL query in Security policies.

The page on creating custom standards and recommendations says KQL-based custom recommendations cover Azure, AWS, and GCP and require the Defender CSPM plan, while custom recommendations built from Azure Policy are a legacy method for Azure subscriptions. An EC2 tag check therefore needs a KQL query, which means enabling Defender CSPM first. Creating the recommendation needs Security Admin, and creating the custom standard that holds it needs Owner on the subscription.

Why the other options are wrong:

  • B. Create a governance rule that reads the owner from the CostCenter tag on each EC2 instance. A governance rule assigns owners and due dates to existing recommendations; it can't detect a missing tag or create a recommendation.
  • C. Enable Defender for Servers Plan 2 on the AWS connector, then create the recommendation in Security policies. Defender for Servers Plan 2 protects machines, but KQL custom recommendations are unlocked by Defender CSPM, not by a server plan.
  • D. Write an Azure Policy definition, add it to an initiative whose metadata sets ASC to true, and onboard it. The legacy Azure Policy method builds custom recommendations for Azure subscriptions; KQL is the documented route for AWS resources.

Memory hook: Custom recommendations for AWS or GCP mean KQL, and KQL custom recommendations mean Defender CSPM.

Microsoft Learn: Create custom recommendations

At Adatum, an audit-effect policy assignment flags a legacy virtual machine that must keep a nonstandard configuration until it's decommissioned at the end of the quarter. Compliance wants the VM to stay visible in compliance results as a temporarily accepted deviation and to be evaluated normally again after the quarter without anyone having to undo the change. What should the engineer create?

Correct answer: C. A policy exemption for the VM in the Waiver category, with expiresOn set to the end of the quarter

The Azure Policy exemption structure page defines Waiver as an exemption granted because the resource's non-compliance is temporarily accepted, while Mitigated means the policy intent is met another way. An exempt resource still counts toward compliance and shows as Exempt. When the expiresOn date passes, the exemption object is kept for record-keeping but is no longer honored, so the VM is evaluated normally again with no cleanup step.

Why the other options are wrong:

  • A. An entry for the VM in the assignment's notScopes, to be removed at the end of the quarter Excluded scopes drop out of compliance results entirely, and notScopes has no expiry, so someone must remember to remove the entry.
  • B. A policy exemption for the VM in the Mitigated category, with expiresOn set to the end of the quarter Mitigated claims the policy intent is met through another control, which isn't true for a VM that is simply allowed to stay out of line for a while.
  • D. An assignment update that sets enforcementMode to DoNotEnforce until the end of the quarter Enforcement mode applies to every resource in the assignment, an audit effect blocks nothing anyway, and the VM would still report as non-compliant.

Memory hook: Waiver means accepted for now, Mitigated means handled elsewhere, and expiresOn ends either one on schedule.

Microsoft Learn: Exemption structure

At Litware, engineers create virtual machines in the RG-Ops resource group and then wait days for a central administrator to grant them sign-in access. The team lead must be able to assign only the Virtual Machine Administrator Login and Virtual Machine User Login roles in RG-Ops, and must not be able to assign any other role. Which assignment should you give the team lead?

Correct answer: A. Role Based Access Control Administrator at the RG-Ops scope, with a condition allowing only the two login roles

Role Based Access Control Administrator is the built-in role designed for delegating role assignment management, and a condition on the assignment constrains which roles the delegate can assign, so the lead can grant only the two login roles. Learn's delegation article warns that Owner and User Access Administrator let a delegate assign any role, including Owner, to any user at that scope, while Contributor's NotActions exclude Microsoft.Authorization write and delete actions, so it can't create role assignments.

Why the other options are wrong:

  • B. Contributor at the RG-Ops scope, which covers creating and managing the team's virtual machines and their settings Contributor's NotActions exclude Microsoft.Authorization write and delete actions, so the lead could run the virtual machines but couldn't create any role assignment.
  • C. Role Based Access Control Administrator at the RG-Ops scope, with no condition on the assignment This is the right role without its safeguard: until a condition is added, nothing limits which roles its roleAssignments/write permission can assign, so the lead could grant roles far beyond the two login roles.
  • D. User Access Administrator at the RG-Ops scope, with a written rule to grant only the two login roles It sounds like the access role, but User Access Administrator can create any role assignment at that scope, including Owner, so the written rule has no technical control behind it.

Memory hook: Constrained delegation is Role Based Access Control Administrator plus a condition on the roles it may assign.

Microsoft Learn: Delegate role assignments overview

Defender for Cloud shows the recommendation 'A maximum of 3 owners should be designated for subscriptions' for a Woodgrove Bank subscription with seven Owner assignments. Four of those users deploy and manage resources across this subscription, never grant access to anyone, and must not gain access to any other subscription. Which change resolves the finding while letting the four users keep managing resources?

Correct answer: A. Replace the four users' Owner assignments with Contributor assignments at the subscription scope

The recommendation limits subscription owners to three to reduce the damage a compromised owner account can do. Contributor grants full access to manage all resources, but its NotActions exclude role assignment, which fits users who build and run resources but never grant access. Moving the four users to Contributor at the same subscription scope drops the owner count to three without widening or narrowing where they can work.

Why the other options are wrong:

  • B. Replace the four users' Owner assignments with Role Based Access Control Administrator assignments at the subscription scope Role Based Access Control Administrator can create and delete role assignments and read resources, but it can't create or change resources.
  • C. Replace the four users' Owner assignments with Contributor assignments at the parent management group scope Contributor at the management group is inherited by every subscription beneath it, which gives the four users access to other subscriptions.
  • D. Replace the four users' Owner assignments with User Access Administrator assignments at the subscription scope The name suggests a lesser admin role, but User Access Administrator holds only read access, support actions, and Microsoft.Authorization actions, so the users could grant access yet could no longer manage resources.

Memory hook: Three owners at most: people who build but never grant access get Contributor at the same scope.

Microsoft Learn: Recommendations reference identity access

Defender for Cloud flags 'Service Principals should not be assigned with administrative roles at the subscription and resource group level' at Litware. The flagged service principal runs an unattended pipeline several times a day. It holds Contributor on the subscription but only deploys code and settings to existing web apps in the RG-Web resource group. What should you do?

Correct answer: B. Replace the Contributor assignment with a Website Contributor assignment at the RG-Web resource group scope

The recommendation flags service principals that hold privileged administrator roles, such as Owner, Contributor, or User Access Administrator, at subscription or resource group level, so the fix is a narrower role at a narrower scope. Website Contributor manages websites but not web plans and can't assign roles, which covers deployments to existing web apps. Assigning it at RG-Web removes the subscription-wide reach and the administrative role together.

Why the other options are wrong:

  • A. Create a Conditional Access policy for workload identities that blocks the service principal outside the pipeline's IP ranges Conditional Access for workload identities limits where the service principal can authenticate, but it leaves the Contributor permissions and the finding in place.
  • C. Move the Contributor assignment from the subscription scope down to the RG-Web resource group scope The recommendation covers privileged roles at the resource group level as well, so Contributor on RG-Web still triggers it and grants far more than deployments need.
  • D. Convert the Contributor assignment to an eligible assignment in Privileged Identity Management so the pipeline activates it per run Just-in-time access is the usual answer for standing privilege, but Learn's article on eligible Azure role assignments says they can't be created for service principals or managed identities, because those can't perform the activation steps.

Memory hook: A pipeline can't activate PIM: shrink its role and its scope instead.

Microsoft Learn: Recommendations reference identity access

Fabrikam applied a Read-only lock to storage account stfin01, the only storage account in resource group rg-fin, which has no lock. An analyst who holds Storage Account Contributor used to browse its blobs in the Azure portal with the account key but no longer can. The security team keeps the lock and asks the engineer to restore the analyst's read access to the blobs. Which action works?

Correct answer: D. Assign Storage Blob Data Reader scoped to rg-fin, then switch the portal to Microsoft Entra user account authentication.

A Read-only lock blocks every POST request to Resource Manager, including List Keys, so the portal can't use the account key and users must authorize with Microsoft Entra credentials. The lock resources page adds that a Read-only lock on a storage account also prevents role assignments scoped to the account or its containers. Storage Blob Data Reader assigned at rg-fin, which isn't locked, reaches stfin01 through inheritance, and the analyst's existing management role lets the portal open the account.

Why the other options are wrong:

  • A. Assign the analyst the Owner role scoped to rg-fin so that the lock no longer applies to the analyst. Locks apply to all users and roles. An Owner could remove the lock, but the requirement is to keep it in place.
  • B. Assign Storage Blob Data Reader scoped to stfin01, then switch the portal to Microsoft Entra user account authentication. The Read-only lock blocks new role assignments scoped to stfin01 or its containers, so this assignment can't be created.
  • C. Assign the analyst the Contributor role scoped to stfin01 so that the List Keys operation is authorized. The lock blocks List Keys for every user whatever their role, and it also blocks creating a role assignment scoped to stfin01.

Memory hook: Read-only lock on storage: no List Keys and no role assignments at the account, so grant the data role one scope up.

Microsoft Learn: Lock resources

Woodgrove Bank's audit logs show that a former contractor's service principal ran KeyBackup on the key in the vault kv-wg-cmk. That key protects several Azure SQL databases through transparent data encryption (TDE) and a storage account through customer-managed keys. The principal's backup and restore permissions are already revoked. What should you do next?

Correct answer: A. Create a new key in a separate, tightly restricted vault, move the services to it, then disable the old key

A restored backup is a fully independent copy: disabling, deleting, or purging the original has no effect on it, and Key Vault has no way to revoke a backup blob. Disabling the key first would only take the SQL databases and storage account offline. The Key Vault backup article's response is to contain access, create a new key (not a new version) in a separate restricted vault, move dependent services to it, verify them, and only then disable the old key.

Why the other options are wrong:

  • B. Create a new version of the compromised key and let each service pick it up through the versionless key URI Learn calls for a new key rather than a new version of the compromised key, so that the replacement can't be obtained from existing backup blobs.
  • C. Purge the compromised key so that the backup blob can no longer be restored into any other vault No mechanism revokes or invalidates a backup blob, so purging leaves restored copies working while breaking every service that depends on the key.
  • D. Disable the compromised key right away so that any copy restored from the backup stops working Disabling the original doesn't touch any restored copy, and it takes the TDE databases and the storage account offline at once.

Memory hook: Key copied by backup: new key in a new vault, migrate, verify, then disable. Never disable first.

Microsoft Learn: General: Backup

Litware onboarded an existing Azure subscription that hosts virtual machines and storage accounts to Microsoft Defender for Cloud and turned on the Defender for Storage plan. Nobody has assigned any standards. When a compliance analyst opens the regulatory compliance dashboard, which standard shows assessment results without further configuration?

Correct answer: D. Microsoft cloud security benchmark

When Defender for Cloud is enabled on an Azure subscription, the Microsoft cloud security benchmark is assigned and starts assessing resources automatically; the regulatory compliance standards page lists it as the default standard for Azure. Every other standard, such as ISO IEC 27001:2022 or PCI DSS v4.0.1, has to be added explicitly, and adding one requires a paid Defender plan, which this subscription has through Defender for Storage.

Why the other options are wrong:

  • A. EU General Data Protection Regulation 2016 679 The GDPR standard is available, but no regulatory standard beyond the benchmark is assigned by default.
  • B. ISO IEC 27001:2022 ISO IEC 27001:2022 is in the Defender for Cloud catalog, but it shows results only after someone assigns it.
  • C. PCI DSS v4.0.1 PCI DSS v4.0.1 must be turned on explicitly, so with no standards assigned it shows no results.

Memory hook: Defender for Cloud on Azure assigns the Microsoft cloud security benchmark by itself; every other standard is opt-in.

Microsoft Learn: Concept regulatory compliance standards

Contoso's internal audit team needs read-only access to every resource in all subscriptions under the Production management group, including subscriptions that the cloud team will add to that management group next quarter. The auditors must not see any subscription in the Development management group. What should you do?

Correct answer: D. Assign the Reader role to the auditors' group at the Production management group scope

A role assigned at a management group is inherited by every subscription, resource group, and resource beneath it, and a subscription added to that management group later picks up the same inherited access. Learn's guide to assigning Azure roles uses this case: Reader at the management group scope lets the principal read everything in all subscriptions in that management group. One group assignment at Production covers the future subscriptions and keeps Development out.

Why the other options are wrong:

  • A. Assign the Reader role to the auditors' group at each subscription in the Production management group It works for today's subscriptions, but the subscriptions added next quarter get no access until someone remembers to create more assignments.
  • B. Assign the Reader role to the auditors' group at each resource group in the Production subscriptions Resource group assignments miss resource groups and subscriptions created later, and they multiply the assignments you must maintain.
  • C. Assign the Reader role to the auditors' group at the tenant root management group scope The root management group sits above Development as well, so Reader there exposes the subscriptions the auditors must not see.

Memory hook: One assignment at the management group covers today's and tomorrow's subscriptions beneath it.

Microsoft Learn: Role assignments steps

Contoso's operations team holds the Contributor role on subscription Sub-Ops, but its attempts to add or remove resource locks during maintenance windows fail. The security team requires that the operations team be able to manage locks while having no ability to grant access to anyone. Which role should the engineer assign to the team at Sub-Ops?

Correct answer: A. Locks Contributor

Contributor can't manage locks because its NotActions exclude Microsoft.Authorization write and delete operations, and the lock resources page says creating or deleting locks needs Microsoft.Authorization/* or Microsoft.Authorization/locks/*. The built-in Locks Contributor role grants only lock read, write, and delete. Azure RBAC is additive, so adding it alongside Contributor restores lock management without granting any role assignment rights.

Why the other options are wrong:

  • B. User Access Administrator User Access Administrator includes Microsoft.Authorization/*, which covers locks but also lets the team create role assignments and grant access.
  • C. Role Based Access Control Administrator Role Based Access Control Administrator creates and deletes role assignments, the opposite of the requirement, and it has no lock permissions.
  • D. Owner Owner can manage locks, but it also carries role assignment rights, which breaks the requirement.

Memory hook: Lock management without access-granting rights is Locks Contributor; Contributor alone can't touch locks.

Microsoft Learn: Built in roles: Security

Fabrikam's production subscription returns RoleAssignmentLimitExceeded when administrators add role assignments. An Azure Resource Graph query shows about 1,900 assignments that give the Reader role to individual users at the same handful of resource group scopes. Fabrikam licenses Microsoft Entra ID P1 only. What should you do to make room for new assignments?

Correct answer: B. Add the users to Microsoft Entra groups and give each group one assignment in place of the individual ones

Azure supports 5,000 role assignments per subscription across subscription, resource group, and resource scopes, and Learn states that the limit is fixed. The first fix in Learn's RBAC limits troubleshooting article is to replace principal-based assignments with group-based ones: many users holding one role at one scope collapse into a single group assignment. Eligible assignments don't count toward the limit, but Learn ties that fix to Microsoft Entra ID P2.

Why the other options are wrong:

  • A. Re-create the Reader assignments at individual resource scope instead of at resource group scope Resource scope assignments still count toward the subscription's limit, and splitting the same access across more scopes adds assignments instead of removing them.
  • C. Open a support request that asks Microsoft to raise this subscription's role assignment limit It treats the limit like an adjustable quota, but Learn states that the 5,000 assignments per subscription limit is fixed and cannot be increased.
  • D. Convert the individual Reader assignments to eligible assignments in Privileged Identity Management so they stop counting Eligible assignments don't count toward the limit, but Learn ties that option to Microsoft Entra ID P2, and Fabrikam has only P1.

Memory hook: At 5,000 assignments, fold many users with one role at one scope into one group assignment.

Microsoft Learn: Troubleshoot limits

Fabrikam deploys a production resource group from a Bicep file through a pipeline that signs in as a service principal. Engineers hold Contributor on that resource group for troubleshooting. No one except the pipeline may modify or delete the resources the Bicep file declares, and the engineers must not be able to change that protection. What should you implement?

Correct answer: C. A deployment stack stored at the subscription scope that targets the resource group, using denyWriteAndDelete with the pipeline excluded

Deployment stack deny settings put a deny assignment on the managed resources that applies to everyone except the excluded principals, and denyWriteAndDelete blocks both changes and deletion. The deny assignment exists where the stack exists, and Learn advises storing a stack at the parent scope: a subscription-scope stack that deploys to the resource group keeps engineers, whose access stops at the resource group, away from the stack and its deny settings.

Why the other options are wrong:

  • A. An Azure Policy assignment with the deny effect on the resource group, with the pipeline's service principal added to its exclusions list Azure Policy evaluates resource properties, and assignment exclusions name scopes through notScopes, not identities, so it can't let one service principal through while blocking everyone else.
  • B. A deployment stack stored at the resource group scope, using denyDelete with the pipeline's service principal excluded denyDelete blocks deletion only, so engineers with Contributor could still modify the declared resources, and the stack would sit in the resource group they work in instead of at the parent scope Learn recommends.
  • D. A CanNotDelete lock on the resource group that the pipeline service principal re-creates at the end of each deployment A CanNotDelete lock still lets every user modify the resources, which fails the requirement that only the pipeline can change them.

Memory hook: Only the pipeline may change it: parent-scope stack, denyWriteAndDelete, pipeline excluded.

Microsoft Learn: Deployment stacks

Contoso runs a web tier on a virtual machine scale set plus two Azure Functions apps, and all of them read the same key vault. The platform team wants one identity whose role assignment exists before any of the compute is deployed and survives when instances are rebuilt. Which identity should the team use?

Correct answer: C. A user-assigned managed identity assigned to all three resources

The managed identities overview says a user-assigned identity is a standalone Azure resource with an independent lifecycle that can be associated with more than one resource, and lists workloads needing preauthorization during provisioning, and resources recycled while permissions stay consistent, among its use cases. The best practice article adds that user-assigned identities and their role assignments can be configured before the resources that need them exist.

Why the other options are wrong:

  • A. A system-assigned managed identity enabled on each resource System-assigned identities are created and deleted with their resource and can't be shared, so no role assignment can exist before deployment and each resource needs its own.
  • B. A service principal with a certificate deployed to each resource A certificate still has to be deployed, protected and renewed on every resource, while a managed identity's credentials are handled by Azure and aren't accessible to anyone.
  • D. An app registration with a client secret in each app's settings A client secret is a credential the team must store and rotate, the burden managed identities remove, and it can expire and break all three workloads at once.

Memory hook: Shared, pre-authorized and outliving the compute: a user-assigned managed identity.

Microsoft Learn: Managed identities for Azure resources: Overview

Topic 2 of 4

Secure storage, databases, and networking (21 questions)

Go deeper in SC-500 Cloud and AI Security Engineer Complete Exam Guide. Get it on Amazon

Show the 21 questions and explanations

Contoso's Azure SQL Managed Instance has a server audit named CorpAudit that writes to blob storage through TO URL and captures logins and batches. Compliance now also needs a record of what Microsoft support engineers do when they access the instance during a support case, and CorpAudit must keep recording Contoso's own activity. What should the DBA do?

Correct answer: A. Create a second server audit with Microsoft support operations selected, leaving CorpAudit as is

The SQL Managed Instance auditing articles say Microsoft support operations are audited by selecting Microsoft support operations when you create an audit, and that it must be a separate server audit: enabling the option on an existing audit overwrites that audit so it logs only support operations. In T-SQL, the separate audit carries OPERATOR_AUDIT = ON, so CorpAudit keeps recording Contoso's own activity unchanged.

Why the other options are wrong:

  • B. Select Microsoft support operations in CorpAudit's properties so that a single audit records both Turning the option on for an existing audit overwrites it, so CorpAudit would log only support operations and stop recording Contoso's activity.
  • C. Add the DevOps operations Audit Logs category to a diagnostic setting, without creating a new audit A diagnostic setting only routes events from an audit that targets EXTERNAL_MONITOR; with no audit created for support operations, nothing is captured.
  • D. Add FAILED_LOGIN_GROUP to CorpAudit's specification so that support engineers' sign-ins are captured Standard action groups record standard events; Microsoft support operations are captured only by an audit created with OPERATOR_AUDIT = ON.

Memory hook: Managed Instance support-ops audit: a separate server audit with OPERATOR_AUDIT = ON, never a checkbox on the existing one.

Microsoft Learn: Auditing configure

Litware deployed a security admin configuration from Azure Virtual Network Manager to the East US and West US regions. The target network group uses dynamic membership. A new virtual network in North Europe matches the policy condition and now shows as a group member, but none of the security admin rules apply to it. What should Litware do?

Correct answer: A. Deploy the security admin configuration to the North Europe region as well

A configuration takes effect only in the regions chosen when its deployment is committed. A network group can hold virtual networks from any region, but each member receives only the configurations applied to the group and deployed to that member's own region. Deploying the security admin configuration to North Europe adds it to that region's goal state. In East US and West US, new members already receive the deployed configuration without a redeployment.

Why the other options are wrong:

  • B. Wait up to 24 hours for the eventual consistency model to apply the rules Eventual consistency covers a short delay where the configuration is deployed; North Europe has no deployment, so waiting never applies the rules.
  • C. Add the virtual network to the group as a static member instead of a dynamic one Membership type isn't the gap: the network is already a member, and static and dynamic members alike get only what is deployed to their region.
  • D. Redeploy the configuration to East US and West US to pick up the new member Redeploying to the same two regions leaves North Europe outside the goal state, so the new member still receives nothing.

Memory hook: Network group membership is global; deployments are regional.

Microsoft Learn: Concept deployments

After a network change, VMs in Fabrikam's application subnet can't reach an on-premises database at 192.168.10.20 over ExpressRoute. No NSG rules changed. The engineer suspects a user-defined route now sends that traffic to a retired network virtual appliance, and needs the next hop type, next hop IP address and route table ID for that destination. Which Network Watcher tool fits?

Correct answer: C. Next hop

The next hop overview describes a tool that returns the next hop type, IP address and route table ID for a specific destination IP. When a user-defined route matches, it names the route table that holds the route; otherwise it reports System Route. A VirtualAppliance result pointing at the retired appliance's address would confirm the misroute, which none of the security rule tools can show.

Why the other options are wrong:

  • A. Effective security rules Effective security rules lists the security rules applied to a network interface; it shows nothing about routes or next hops.
  • B. IP flow verify IP flow verify evaluates NSG and admin rules for a flow; the stem rules out a security rule change, and the tool reports nothing about routes.
  • D. VPN troubleshoot VPN troubleshoot diagnoses virtual network gateways and their connections; it doesn't report the route a VM uses, and this path runs over ExpressRoute.

Memory hook: Where does this packet go next, and which route table says so? Next hop.

Microsoft Learn: Next hop overview

Tailspin Toys runs a TCP licensing service on virtual machines behind an internal Standard Load Balancer whose backend pool is configured by IP address. Customers in their own Microsoft Entra tenants must reach the service privately from their own virtual networks. Several customer address spaces overlap Tailspin's, and no other Tailspin subnet may become reachable. What should Tailspin do?

Correct answer: D. Switch to a NIC-based backend pool, create a Private Link service on the load balancer frontend, then share its alias.

The Private Link service overview lists two load balancer limits: it works only with Standard Load Balancer, and only where the backend pool is configured by NIC, not by IP address. With a NIC-based pool in place, the service fronts the load balancer, customers in other Microsoft Entra tenants connect through private endpoints in their own virtual networks, and destination-side NAT from a provider subnet keeps overlapping address spaces from conflicting.

Why the other options are wrong:

  • A. Publish the service on a public load balancer frontend, then allow only the customers' public IP prefixes in an NSG rule. A public frontend carries customer traffic across the internet, which fails the requirement for private access from customer virtual networks.
  • B. Peer each customer's virtual network with Tailspin's virtual network, then restrict the peered traffic with NSG rules. Peering is refused when address spaces overlap, and where it works it exposes the whole virtual network rather than a single service.
  • C. Create a Private Link service on the existing load balancer frontend without changes, then share its alias with customers. The overview states Private Link service isn't supported on a Standard Load Balancer whose backend pool is configured by IP address, so the pool has to change first.

Memory hook: Private Link service: Standard Load Balancer, NIC-based backend pool, and NAT that absorbs overlapping addresses.

Microsoft Learn: Private link service overview

Adatum piloted point-to-site VPN on a route-based gateway that uses the Basic SKU. For production, users must authenticate through the company's existing NPS server by using RADIUS so that on-premises MFA applies. The team accepts a new gateway public IP address if one is needed. What should the engineer do?

Correct answer: C. Delete the Basic gateway, create a VpnGw1AZ gateway with a Standard SKU public IP address, and configure RADIUS

The Basic SKU doesn't support RADIUS authentication, so the gateway has to move to another SKU. The Upgrade a VPN Gateway SKU article lists Basic to any other SKU as delete and re-create only: remove the connections, delete the gateway, create the new one, update devices with the new public IP address, and download new client profiles. New VPN gateways must use a Standard SKU public IP address, and the RADIUS limit belongs to Basic, so a VpnGw1AZ gateway can use RADIUS.

Why the other options are wrong:

  • A. Keep the Basic gateway and set its point-to-site authentication type to RADIUS by using Azure PowerShell cmdlets The Basic SKU is configured only through PowerShell or the Azure CLI, but no tool can enable RADIUS on it, because the SKU itself doesn't support RADIUS authentication.
  • B. Upgrade the gateway in place to VpnGw1AZ from its Configuration page, and then set the authentication type to RADIUS In-place SKU upgrades exist for most gateways, which makes this attractive, but the upgrade article marks Basic to any other SKU as not eligible; the gateway must be deleted and re-created.
  • D. Keep the Basic SKU but re-create the gateway as policy-based, and then point its point-to-site settings at the NPS server A policy-based Basic gateway supports a single IKEv1 site-to-site tunnel and no point-to-site at all, so this change removes point-to-site instead of adding RADIUS.

Memory hook: Basic means no RADIUS and no in-place upgrade: delete, re-create on an AZ SKU, reissue profiles.

Microsoft Learn: Gateway sku upgrade

Contoso's security admin configuration in Azure Virtual Network Manager targets a network group that includes VNet-Data, which hosts an Azure SQL Managed Instance. None of the configuration's rules reach VNet-Data, while other members enforce both Allow and Deny rules. Contoso wants the Allow rules enforced on VNet-Data without filing an exception request. What should Contoso do?

Correct answer: B. Deploy a security admin configuration whose applyOnNetworkIntentPolicyBasedServices is AllowRulesOnly

By default, security admin rules skip a virtual network that contains Azure SQL Managed Instance or Azure Databricks, because those services' network intent policies govern their traffic. The security admin rules page offers two ways around it: request an exception through Microsoft's form, or use a security configuration whose applyOnNetworkIntentPolicyBasedServices field is set to AllowRulesOnly, which applies only the Allow rules to such networks while Deny rules still skip them.

Why the other options are wrong:

  • A. Change the configuration's Allow rules to Always Allow so that they outrank the network intent policy By default the skip covers every security admin rule on that network, whatever its action, so switching to Always Allow doesn't apply them.
  • C. Add VNet-Data to the network group as a static member in addition to its current membership VNet-Data is already a member; it's skipped because it hosts a managed instance, and membership type doesn't change that.
  • D. Move the Allow rules into a separate rule collection that targets only VNet-Data at priority 1 Neither rule collections nor priorities override the skip; only the configuration-level AllowRulesOnly setting changes it without an exception request.

Memory hook: SQL Managed Instance or Databricks in the network: admin rules skip it; AllowRulesOnly applies just the Allow rules.

Microsoft Learn: Concept security admins

Litware runs VM2 in Subnet-App. NSG-Subnet, associated with Subnet-App, has an inbound rule at priority 200 that allows TCP 443 from the Internet service tag. NSG-NIC2, associated with VM2's network interface, has only the default rules. Internet clients still can't open HTTPS sessions to VM2's public IP address. What should the engineer do?

Correct answer: B. Add an inbound rule to NSG-NIC2 that allows TCP 443 from the Internet service tag

For inbound traffic, Azure processes the subnet NSG first and then the NIC NSG, and each must allow the flow. NSG-Subnet allows TCP 443, so the packet moves on to NSG-NIC2, where no custom rule allows it and the DenyAllInbound default rule at priority 65500 drops it. The How network security groups filter network traffic page says that to permit a port to a VM with NSGs at both levels, both NSGs need a rule that allows it, so the fix is an allow rule in NSG-NIC2.

Why the other options are wrong:

  • A. Change the NSG-Subnet rule's priority from 200 to 100 so that Azure processes it sooner Priority orders rules only inside one NSG, and the subnet rule already matches and allows the traffic; the drop happens afterward, in NSG-NIC2.
  • C. Delete the DenyAllInbound default rule from NSG-NIC2 so that the subnet rule's decision stands Default rules can't be deleted; they can only be overridden by a custom rule with a lower priority number.
  • D. Add an outbound rule to NSG-NIC2 that allows the TCP 443 return traffic to the internet NSGs are stateful: the flow record lets the response leave without an outbound rule, so a return-traffic rule changes nothing.

Memory hook: Inbound: subnet NSG, then NIC NSG; both must say allow.

Microsoft Learn: Network security group how IT works

Contoso's central network team uses Azure Virtual Network Manager. Its monitoring system in 10.100.5.0/24 must always reach agents on TCP 443 in every virtual network of a network group, even if a workload team later adds an NSG rule that blocks that traffic. What should the central team deploy?

Correct answer: B. A security admin rule with the Always Allow action for TCP 443 from 10.100.5.0/24

Security admin rules are evaluated before NSG rules. An Always Allow rule ends evaluation and sends matching traffic straight to the resource, so no NSG rule a workload team adds can block it. The security admin rules page describes Always Allow as allowing traffic regardless of lower-priority rules or user-defined network security groups, while an Allow rule passes the traffic on to NSG evaluation, where a deny still wins.

Why the other options are wrong:

  • A. A security admin rule with the Allow action for TCP 443 from 10.100.5.0/24 Allow hands matching traffic on to the NSGs, so a workload team's deny rule would still block the monitoring traffic.
  • C. An NSG rule at priority 100 in every workload NSG that allows TCP 443 from 10.100.5.0/24 Workload teams own their NSGs and can edit or delete this rule at any time, so an allow inside their NSGs guarantees nothing.
  • D. A hub and spoke connectivity configuration that connects the monitoring network to each spoke A connectivity configuration builds the peering topology; it doesn't override NSG rules that block the traffic.

Memory hook: Always Allow and Deny end evaluation; plain Allow gives the NSG the last word.

Microsoft Learn: Concept security admins

Fabrikam's Azure Virtual Network Manager instance is scoped to its root management group, which holds 400 subscriptions. Every virtual network tagged Environment=Prod, including networks created next year, must receive the production security admin configuration without anyone adding networks by hand. What should the network team configure?

Correct answer: C. A network group with dynamic membership from an Azure Policy that uses the addToNetworkGroup effect

Dynamic membership lets Azure Policy evaluate a condition such as a tag and place matching virtual networks in the network group through the addToNetworkGroup effect, in a custom definition whose mode is Microsoft.Network.Data. Networks created later join when they match. The configuration deployments page adds that membership changes take effect without redeploying the configuration, and below 1,000 subscriptions conditional membership updates within a few minutes.

Why the other options are wrong:

  • A. A second network manager whose scope holds only the subscriptions that host tagged virtual networks A network manager's scope only sets which resources it can manage; virtual networks still need network group membership to receive configurations.
  • B. An Azure Policy assignment with the deployIfNotExists effect that adds an NSG to each tagged subnet deployIfNotExists can deploy NSGs, but NSGs aren't the security admin configuration the requirement names, and the policy adds no network to a network group.
  • D. A network group with static membership that lists every virtual network tagged Environment=Prod today Static members are picked by hand, so a virtual network created next year joins only when someone adds it.

Memory hook: Tag-driven, hands-off membership: Azure Policy with addToNetworkGroup.

Microsoft Learn: Concept Azure policy integration

Woodgrove Bank's security admin configuration, deployed to East US, has one rule collection that targets a network group of all virtual networks and holds a Deny rule for inbound TCP 3389 at priority 10. The jump-host team must now accept RDP into VNet-Jump from 10.50.0.0/24, and wants its own NSG to decide which hosts get it. What should the central network team do?

Correct answer: B. Add a rule collection for a VNet-Jump network group to the deployed configuration with an Allow rule for TCP 3389 from 10.50.0.0/24 at priority 5, and redeploy

A network manager deploys only one security admin configuration to a region, so more rules go into new rule collections inside it. The high-risk ports guide builds this exception: a network group for the excepted networks, a rule collection with an allow rule numbered lower than the blocking rule (1 to 9 against a Deny at 10), then a redeployment, since changes to a deployed configuration apply only after it is deployed again. Allow, unlike Always Allow, passes matching traffic on to NSG evaluation.

Why the other options are wrong:

  • A. Create a second security admin configuration with an Allow rule for TCP 3389 from 10.50.0.0/24 at priority 5 for a VNet-Jump network group, and deploy it to East US Only one security admin configuration per network manager can be deployed to a region, so a second one can't run beside the first in East US.
  • C. Add a rule collection for a VNet-Jump network group to the deployed configuration with an Always Allow rule for TCP 3389 from 10.50.0.0/24 at priority 5, and redeploy Always Allow ends evaluation and bypasses NSGs, so the jump-host team's NSG could no longer decide which hosts accept RDP.
  • D. Have the jump-host team add an NSG rule that allows TCP 3389 from 10.50.0.0/24 at priority 100 on the VNet-Jump subnet, and leave the configuration as it is The Deny security admin rule ends evaluation before any NSG rule runs, so an NSG allow can't rescue the traffic.

Memory hook: Exception to an admin Deny: lower number, new rule collection, same configuration, redeploy.

Microsoft Learn: Block high risk ports

During a review, Contoso finds that a container in a production storage account has its anonymous access level set to Container. The security team wants one change that blocks anonymous reads of every container in the account and prevents anyone from enabling anonymous access on a container later. What should they configure?

Correct answer: A. Set Allow Blob anonymous access to Disabled on the storage account.

Setting AllowBlobPublicAccess to false, shown in the portal as Allow Blob anonymous access set to Disabled, overrides every container's setting: Azure Storage rejects all anonymous read requests, containers already configured for anonymous access stop accepting them, and users cannot configure anonymous access on a container afterward. The Remediate anonymous read access article notes the change can take up to 30 seconds to propagate and does not affect the $web container.

Why the other options are wrong:

  • B. Assign an Azure Policy definition that audits anonymous access settings. An audit effect only reports noncompliant accounts; it neither blocks anonymous reads nor stops anyone from changing a container's setting.
  • C. Set the anonymous access level of every container to Private. Setting each container to Private closes today's exposure, but while the account still allows anonymous access, a user with the right permissions can set a container back to Blob or Container.
  • D. Set Allow storage account key access to Disabled on the storage account. Disallowing Shared Key blocks key-signed requests; anonymous requests carry no authorization and still proceed when the account and container allow them.

Memory hook: Account-level anonymous access set to Disabled beats every container setting.

Microsoft Learn: Anonymous read access prevent

Adatum must let VMs in Subnet-Batch reach Azure Storage in the East US region over TCP 443 and block every other outbound connection to the internet, without maintaining lists of IP addresses. NSG-Batch, associated with Subnet-Batch, has only the default rules. Which outbound rules should the engineer add to NSG-Batch?

Correct answer: D. Allow TCP 443 to the Storage.EastUS service tag at priority 100, then deny all traffic to the Internet service tag at priority 110

The Storage tag supports regional scope, so Storage.EastUS covers only East US storage ranges and stays current as Microsoft changes them. Learn's service tags overview says the Internet tag includes Azure-owned public IP space, so the storage allow needs the lower priority number to be processed first. A custom deny for Internet is required because the AllowInternetOutBound default rule at 65001 is processed before DenyAllOutBound at 65500.

Why the other options are wrong:

  • A. Allow TCP 443 to the Storage.EastUS service tag at priority 100, and rely on the DenyAllOutBound default rule for the rest AllowInternetOutBound at priority 65001 is processed before DenyAllOutBound at 65500, so all other internet traffic would still leave the subnet.
  • B. Allow TCP 443 to the Storage service tag at priority 100, then deny all traffic to the Internet service tag at priority 110 The global Storage tag covers storage in every region, which breaks the requirement to block everything except East US storage.
  • C. Deny all traffic to the Internet service tag at priority 100, then allow TCP 443 to the Storage.EastUS service tag at priority 110 The Internet tag includes Azure-owned public IP addresses, so the deny at priority 100 matches the storage traffic first and the allow is never reached.

Memory hook: Narrow allow first, broad Internet deny second; outbound, the defaults allow the internet at 65001.

Microsoft Learn: Service tags overview

Litware's Azure Firewall Standard uses a Firewall Policy with one rule collection group. An application rule collection at priority 100 denies *.contoso.com over HTTPS from the workload subnet. A network rule collection at priority 300 allows TCP 443 from the workload subnet to any destination. A workload VM opens www.contoso.com over HTTPS. What happens?

Correct answer: A. The connection is allowed, because network rules are processed before application rules whatever the collection priorities.

The Azure Firewall rule processing article states that application rules are always processed after network rules, and network rules after DNAT rules, regardless of rule collection group priority, rule collection priority or policy inheritance. Rules are terminating, so once the network rule allowing TCP 443 matches, processing stops and the application rule that denies *.contoso.com is never evaluated.

Why the other options are wrong:

  • B. The connection is denied, because traffic on TCP 443 is evaluated only against application rules, never network rules. Network rules match TCP and UDP traffic on any port, 443 included; application rules are evaluated only when no network rule has matched.
  • C. The connection is denied, because the firewall evaluates deny actions before allow actions within a rule collection group. Azure Firewall has no deny-first pass: collections run by rule type and then by priority, and the first matching rule ends processing.
  • D. The connection is denied, because the application rule collection has the lower priority number and is processed first. Priority numbers order collections only within one rule type; a lower-numbered application collection still runs after every network collection.

Memory hook: DNAT, then network, then application: priority numbers never jump the rule-type order.

Microsoft Learn: Rule processing

Adatum stores national ID numbers in a column of an Azure SQL Database table. Compliance requires that privileged users, including the server admin, the Microsoft Entra admin and members of db_owner, can never read the plaintext values, while the HR application must still read and write them. Which feature should the security engineer implement?

Correct answer: D. Always Encrypted on the column, with the column master key kept in Azure Key Vault

The Azure SQL security overview describes Always Encrypted as protecting specific columns, such as national identification numbers, from database administrators and other privileged users who have no business need to see the data. Values are decrypted only by client applications that can reach the encryption key, which is never exposed to the database engine, so the HR application keeps working while administrators see only ciphertext.

Why the other options are wrong:

  • A. Row-level security, with a filter predicate that hides those rows from administrators Row-level security filters which rows a query returns rather than protecting a column's values, and it doesn't encrypt anything.
  • B. Transparent data encryption, with a customer-managed TDE protector in Azure Key Vault TDE protects data files and backups at rest; queries still return plaintext to authorized users, administrators included, whoever manages the key.
  • C. Dynamic data masking on the column, with UNMASK granted only to the HR application Masking changes query results only for nonprivileged users; the server admin, the Microsoft Entra admin and db_owner members always see the original data.

Memory hook: Hide it from the DBA: Always Encrypted. From ordinary users: masking. Rows: RLS. Stolen disks and backups: TDE.

Microsoft Learn: Security overview

Contoso wants to retire its legacy VPN by publishing on-premises file shares and web apps to remote staff through Microsoft Entra Private Access. Every user already holds a Microsoft Entra ID P1 license and no other Entra product license. What licensing must be in place for these users before Private Access can go into production?

Correct answer: D. Microsoft Entra Private Access licenses, standalone or through Microsoft Entra Suite, assigned alongside the existing P1 licenses

The licensing overview in What is Global Secure Access states that Microsoft Entra Private Access is included in the Microsoft Entra Suite license and is also sold standalone, and that users of Private Access also need Microsoft Entra ID P1 or P2. P1 or P2 by itself includes only Internet Access for Microsoft services. With P1 already assigned, Contoso adds Private Access standalone or Entra Suite for each user, since most Global Secure Access services are licensed per user.

Why the other options are wrong:

  • A. Microsoft Entra ID P2 licenses, because moving the users to P2 adds the Private Access traffic forwarding profile to the tenant Moving to P2 changes the identity tier, not the Global Secure Access entitlement: neither P1 nor P2 includes Private Access, and P2 only meets the prerequisite that P1 already satisfies.
  • B. Microsoft Entra Internet Access licenses, because one Global Secure Access add-on covers both the private and internet profiles Internet Access and Private Access are licensed separately; an Internet Access license enables the internet profile, not access to private resources.
  • C. No additional licenses, because Microsoft Entra ID P1 already includes the Global Secure Access private and Microsoft traffic features P1 does carry a Global Secure Access entitlement, which is the trap, but it covers Internet Access for Microsoft services only; private resources need a Private Access or Entra Suite license.

Memory hook: Private Access needs Entra Private Access or Entra Suite, on top of P1 or P2.

Microsoft Learn: Overview global secure access

Fabrikam will give three partners read access to a blob container named catalogs by using shared access signatures. Security requires that any one partner's tokens can be revoked at any time without affecting the other partners and without regenerating the storage account keys. Which approach should the engineer use?

Correct answer: B. Create one stored access policy per partner on catalogs, and issue each partner a service SAS bound to its policy.

A stored access policy lets you revoke a service SAS without regenerating the account keys: delete the policy, change its signed identifier, or set its expiry in the past, and every signature bound to it stops working. A container holds up to five stored access policies, so one policy per partner on catalogs isolates each partner. Only a service SAS can reference a stored access policy; user delegation and account SAS are always ad hoc.

Why the other options are wrong:

  • A. Issue each partner an account SAS that references its own stored access policy defined on the account. Stored access policies live on a container, file share, queue or table and are not supported for an account SAS, which is always ad hoc.
  • C. Issue each partner a user delegation SAS that references its own stored access policy on catalogs. A user delegation SAS cannot reference a stored access policy, so per-partner policies cannot govern these tokens.
  • D. Issue each partner a short-lived ad hoc service SAS, and simply stop renewing a partner's tokens when its access must end. An ad hoc SAS stays valid until it expires, so a partner keeps access until then; revoking it sooner would mean regenerating the signing key.

Memory hook: Revocable SAS per audience: one stored access policy each, five per container, service SAS only.

Microsoft Learn: Define stored access policy

Fabrikam replaced its VPN with Quick Access in Microsoft Entra Private Access, which publishes 10.30.0.0/16 to all employees. A finance application at 10.30.8.15 on TCP 443 must now be reachable only by the Finance group and only from compliant devices, while every other internal app keeps its current access. What should the engineer configure?

Correct answer: D. A per-app enterprise application with a 10.30.8.15 TCP 443 segment, assigned only to Finance and targeted by a compliant device policy

Per-app access creates an enterprise application whose segment covers only the finance destination, so user assignment and Conditional Access apply to that app alone. Learn's per-app segmentation tutorial states that when an enterprise application segment overlaps Quick Access, the enterprise application takes precedence for that resource, which enforces explicit assignment. Only assigned Finance users on compliant devices reach the app, and other apps keep their Quick Access path; the segmentation guidance also suggests removing the address from Quick Access.

Why the other options are wrong:

  • A. A per-app enterprise application with a 10.30.8.15 TCP 443 segment, assigned to all employees, plus a compliant device policy for Finance The per-app segment is right, but assigning all employees lets everyone reach the finance app, and a Finance-only policy leaves other users unchecked for device compliance.
  • B. A Conditional Access policy that targets the Quick Access application, includes only the Finance group, and requires a compliant device Targeting Quick Access forces compliance on every app Finance users reach, yet employees outside Finance still reach the finance app through the broad Quick Access range.
  • C. Assignment of only the Finance group to the Quick Access application, plus a compliant device policy that targets that application Scoping Quick Access to Finance does protect the finance app, which is the trap, but every other employee loses access to all the internal apps that Quick Access publishes.

Memory hook: One sensitive app, its own rules: carve it out of Quick Access into a per-app application.

Microsoft Learn: Tutorial private access app segmentation

Fabrikam has three Azure Cosmos DB accounts in one subscription: one is Azure Cosmos DB for NoSQL, one Azure Cosmos DB for MongoDB and one Azure Cosmos DB for Apache Cassandra. The security engineer enables Defender for Azure Cosmos DB at the subscription level. Which accounts can generate Defender for Azure Cosmos DB alerts?

Correct answer: B. Only the NoSQL account, because the plan doesn't support the other two APIs

The Defender for Azure Cosmos DB overview lists Azure Cosmos DB for NoSQL as the only supported API; Azure Cosmos DB for Apache Cassandra, MongoDB, Table and Apache Gremlin aren't supported. Enabling the plan at subscription level is a valid scope on its own, so the NoSQL account is protected with no resource-level step, while the MongoDB and Cassandra accounts produce no alerts.

Why the other options are wrong:

  • A. All three accounts, because subscription-level enablement covers every account Subscription scope doesn't extend the plan to unsupported APIs; the MongoDB and Cassandra accounts aren't covered.
  • C. None of them until the plan is also turned on for each account at resource level Subscription-level and resource-level enablement are alternatives; turning the plan on for the subscription already covers its supported accounts.
  • D. The NoSQL and MongoDB accounts, because the plan supports document APIs only Azure Cosmos DB for MongoDB is document-oriented but sits on the not-supported list; only the API for NoSQL is covered.

Memory hook: Defender for Cosmos DB covers the API for NoSQL only: no MongoDB, Cassandra, Table or Gremlin.

Microsoft Learn: Concept Defender for cosmos

Woodgrove Bank created a private endpoint for the blob subresource of a storage account and linked the privatelink.blob.core.windows.net zone to its virtual networks. Internal apps now resolve the account to a private IP address. A penetration tester outside the company can still read blobs over the internet with a valid SAS token. What should the security engineer change?

Correct answer: D. Set the storage account's public network access to Disabled so that only traffic through private endpoints is accepted

Learn's private endpoint overview states that private endpoints provide a privately accessible IP address for a service but don't necessarily restrict public network access to it. The account's public endpoint stays open until public network access is set to Disabled, after which traffic is allowed only through a private endpoint. DNS resolution and access control are independent: with public access disabled, the service rejects the tester's connection regardless of what the name resolves to.

Why the other options are wrong:

  • A. Re-create the private endpoint with the manual approval method so that approving the connection revokes public access Approval decides whether the private endpoint can carry traffic; approving or rejecting a connection has no effect on the account's public network access setting.
  • B. Create a private DNS zone named blob.core.windows.net and link it so that the account name no longer resolves publicly A private zone changes resolution only inside linked virtual networks, and Learn cautions against overriding a zone used for public endpoints; internet clients still resolve and reach the public endpoint.
  • C. Enable network policies for network security groups on the endpoint subnet and add a rule that denies the Internet tag Network policies make an NSG apply to traffic that reaches the private endpoint, but the tester never touches the endpoint; the requests arrive at the account's public endpoint, which no subnet NSG governs.

Memory hook: A private endpoint adds a private door; it never locks the public one.

Microsoft Learn: Private endpoint overview

Contoso hosts 20 databases on one Azure SQL Database logical server, which already has server-level IP firewall rules for Contoso's administrators. A partner's analysts connect from the public range 203.0.113.16 to 203.0.113.31 and must reach only the PartnerSales database. The DBA who must grant this access holds CONTROL DATABASE on PartnerSales and no Azure role assignment. What should the DBA create?

Correct answer: D. A database-level IP firewall rule for the range, created in PartnerSales with sp_set_database_firewall_rule

The Azure SQL Database IP firewall rules article says database-level rules admit clients to one database only, are stored in that database, and can be created only with Transact-SQL, through sp_set_database_firewall_rule, once a first server-level rule exists. Configuring them needs CONTROL DATABASE, which the DBA holds. Any server-level rule would open all 20 databases to the partner, and the portal routes need Azure role permissions the DBA doesn't have.

Why the other options are wrong:

  • A. A server-level IP firewall rule for the range, created in master with sp_set_firewall_rule sp_set_firewall_rule creates a server-level rule that opens every database on the server, and running it requires the server-level principal login or the Microsoft Entra admin connected to master.
  • B. A database-level IP firewall rule for the range, created on the database's Networking page in the portal The portal can't create database-level IP firewall rules; they exist only through Transact-SQL.
  • C. A server-level IP firewall rule for the range, created on the logical server's Networking page in the portal A server-level rule admits the range to all 20 databases, and managing rules in the portal needs an Azure role such as SQL Server Contributor, which the DBA lacks.

Memory hook: One database for one partner: sp_set_database_firewall_rule, T-SQL only, and checked before server-level rules.

Microsoft Learn: Firewall configure

Fabrikam has Defender for Azure SQL Databases enabled. Its security engineer holds the SQL Security Manager role on the Azure SQL Database servers but no role on any storage account, and policy forbids new storage accounts for security tooling. The engineer must turn on SQL vulnerability assessment and approve baselines that take effect without waiting for a rescan. Which configuration fits?

Correct answer: C. Express configuration, with scan results kept in Microsoft-managed storage in the server's region

The SQL vulnerability assessment article says express configuration needs no customer-managed storage account, stores results in the same region as the logical server, and lets SQL Security Manager change its settings. Its comparison table adds that an express baseline takes effect without rescanning the database. Classic configuration needs a storage account, SQL Security Manager plus Storage Blob Data Reader and Owner on it, and applies baselines only after a rescan.

Why the other options are wrong:

  • A. Data discovery and classification, with sensitivity labels applied to the flagged columns Data discovery and classification labels sensitive columns; it isn't a vulnerability scanner and has no baselines.
  • B. Classic configuration scoped to each database, with baselines approved one rule at a time Database scope is a classic option, but classic still needs a storage account and still waits for a rescan before a baseline applies.
  • D. Classic configuration, with scan results written to a new storage account in the server's region Classic configuration breaks the storage policy, needs Storage Blob Data Reader and Owner on the account, and applies a baseline only after the next scan.

Memory hook: SQL VA express: no storage account, results in the server's region, baselines apply without a rescan.

Microsoft Learn: SQL Azure vulnerability assessment overview

Topic 3 of 4

Secure compute (18 questions)

Go deeper in SC-500 Cloud and AI Security Engineer Complete Exam Guide. Get it on Amazon

Show the 18 questions and explanations

Fabrikam connected 600 on-premises servers to Azure Arc last month with a script that authenticated as a service principal. All 600 servers show Connected. A security review finds that the service principal's client secret is still valid and stored in plain text on the file share that held the script. The servers must stay connected and managed through Azure Arc. What should the engineer do about the secret?

Correct answer: C. Delete the client secret, because connected servers no longer need the credential that onboarded them.

The Azure Arc-enabled servers security guidance on onboarding credentials says the credential is needed only when azcmagent connect runs on a server. After a server connects it isn't needed, and if the credential expires or is deleted the server stays connected to Azure. Deleting the exposed secret removes the risk that someone uses it to onboard machines outside Fabrikam into the subscription, while each agent keeps rotating its own managed identity credential.

Why the other options are wrong:

  • A. Keep the secret valid, because each agent uses it to renew its managed identity certificate every 45 days. The 45-day figure belongs to the managed identity certificate, which each agent renews on its own while connected; the onboarding secret plays no part after connect, so keeping it only keeps the exposure.
  • B. Rotate the secret, then push the new value to each server's agent configuration by using azcmagent config. Rotation sounds like hygiene, but the onboarding secret is used only when azcmagent connect runs, so connected agents have no use for a new value, and a valid secret stays in circulation.
  • D. Disconnect and reconnect each server with an interactive sign-in, so that no server relies on a shared secret. Reconnecting 600 servers causes needless disruption and leaves the existing secret valid on the share, so the exposure the review found remains.

Memory hook: The Arc onboarding credential matters only at connect time; retire it after rollout and servers stay connected.

Microsoft Learn: Security onboarding

Tailspin Toys uses Microsoft Purview Data Security Posture Management (DSPM). Auditing is on, Copilot licenses are assigned, and Copilot interactions already appear in its reports. The security team now needs to see sensitive data that employees paste into third-party generative AI sites from Windows devices in Microsoft Edge, and to warn or block those pastes with endpoint DLP. Which action is required?

Correct answer: A. Onboard the Windows devices to Microsoft Purview so endpoint signals and DLP actions apply

The DSPM setup tasks state that devices must be onboarded to Microsoft Purview both to see sensitive information shared with third-party generative AI sites, such as card numbers pasted into ChatGPT, and to apply endpoint DLP policies that warn or block those shares. Auditing and Copilot licenses cover only the Copilot and agent signal Tailspin already sees. The Purview browser extension matters for Chrome DLP and Insider Risk Management site visits, which this scenario doesn't need.

Why the other options are wrong:

  • B. Run a data risk assessment on the organization's most used SharePoint sites to find exposure Data risk assessments look for oversharing in SharePoint, useful for Copilot readiness, but they give no visibility into pastes to external AI sites.
  • C. Assign the Purview Data Security AI Content Viewer role to each member of the security team That role lets a viewer read prompt and response content DSPM already collected; it can't make devices send the missing signal or enforce DLP.
  • D. Create the collection policy from the Secure interactions in Microsoft Copilot experiences setup task That collection policy captures prompts and responses from Copilot in Fabric and Security Copilot; it adds nothing for third-party AI sites used in a browser.

Memory hook: Copilot signal needs audit plus licenses; third-party AI sites need onboarded devices.

Microsoft Learn: Data security posture management setup

Fabrikam uses Microsoft Defender as the external threat detection provider (preview) for Copilot Studio agents in its Production environment. Last week it created a Sales environment whose generative agents call tools that update customer records. Security requires that tool invocations in both environments be evaluated and that no tool call runs when the provider fails to decide in time. What should a Power Platform administrator do?

Correct answer: B. Set up additional threat detection for the Sales environment, and set the error behavior to Block the query in both environments

Copilot Studio's external threat detection is configured per environment in the Power Platform admin center, under Security, then Threat detection, then Additional threat detection, and no tenant-wide setting exists, so a new environment must be set up after it is created. If no allow or block decision arrives within one second, the default error behavior lets the tool run; choosing Block the query makes a timeout or error fail closed.

Why the other options are wrong:

  • A. Set up additional threat detection for the Sales environment, and keep Allow the agent to respond as the error behavior in both environments Allow the agent to respond is the default, and it lets a tool run when no decision arrives within one second, which breaks the fail-closed requirement.
  • C. Turn on additional threat detection once at the tenant level so that it covers every current and future environment No global or tenant-wide switch exists for this integration; Learn says each environment, including ones created later, must be configured individually.
  • D. Create a custom real-time protection rule in the Defender portal scoped to All agents, with every detection type selected A Defender rule decides which detections block, but it can't connect an environment that was never set up, and it does nothing about provider timeouts.

Memory hook: Threat detection is set per environment, and Block the query makes timeouts fail closed.

Microsoft Learn: External security provider

Woodgrove Bank disabled public network access on its Microsoft Foundry resource and wants AI Gateway (preview). In the Foundry portal, under Manage, then AI Gateway, the engineer selects Add AI Gateway and Use existing, but the bank's API Management instance, a classic Premium tier injected into a virtual network in the same tenant and subscription, isn't listed, although the engineer is Owner on it. Which API Management instance should the bank use?

Correct answer: A. A Premium v2 instance injected into a virtual network, in the same tenant and subscription as Foundry

Use existing lists only instances in a v2 tier, in the same Microsoft Entra tenant and subscription as the Foundry resource, where you hold API Management Service Contributor or Owner, so a classic Premium instance never appears. Because public network access is disabled on the Foundry resource, the instance must also be privately accessible: Learn names a Standard v2 or Premium v2 instance with a private endpoint, or a Premium v2 instance injected into a virtual network. Among the v2 tiers, only Premium v2 supports injection.

Why the other options are wrong:

  • B. A Standard v2 instance in the same tenant and subscription, using outbound virtual network integration A Standard v2 instance can be listed under Use existing, but outbound integration only lets the gateway reach private backends; its gateway endpoint stays publicly accessible, so it would also need an inbound private endpoint.
  • C. The Basic v2 instance that Create new provisions from the AI Gateway pane in the Foundry portal Create new provisions a Basic v2 instance meant for development and testing, and Basic v2 supports neither virtual network injection nor an inbound private endpoint, so it can't be privately accessible for a private Foundry resource.
  • D. The existing classic Premium instance, after granting the engineer API Management Service Contributor Owner already satisfies the role requirement; the blocker is the tier, because Use existing lists only v2 instances, so the classic Premium instance stays hidden whatever role the engineer holds.

Memory hook: Foundry AI Gateway takes v2 tiers only; a private Foundry needs a private endpoint on Standard v2 or Premium v2, or Premium v2 injection.

Microsoft Learn: Enable AI API management gateway portal

Litware has threat protection for AI services enabled on the subscription that hosts its Microsoft Foundry deployments. The privacy officer rules that text from user prompts and model responses must no longer appear in security alerts, but the security operations center (SOC) must keep receiving alerts for jailbreak and data leakage attempts. What should the security engineer change?

Correct answer: C. In the AI services plan settings, turn off suspicious prompt evidence (user prompt evidence)

The AI services plan lets you control its components separately. Suspicious prompt evidence adds redacted snippets of user prompts and model responses to alerts; with user prompt evidence turned off, Defender for Cloud keeps analyzing prompts and responses for threat detection, but the prompt content is masked in alerts. The toggle is under Environment settings, the subscription, then Settings for AI services, so the SOC keeps its alerts without the text.

Why the other options are wrong:

  • A. Turn off the AI services plan on the subscription and rely on Defender CSPM recommendations instead Turning off the plan stops threat detection for AI services, so the SOC would lose the jailbreak and data leakage alerts it must keep; Defender CSPM raises no runtime alerts.
  • B. In the AI services plan settings, turn off data security for AI interactions with Microsoft Purview Data security for AI interactions lets Microsoft Purview access prompts and responses for compliance features; it doesn't control alert evidence, so prompt text would still appear in alerts.
  • D. Create a Defender for Cloud suppression rule that dismisses AI alerts carrying prompt evidence A suppression rule sets matching alerts to Dismissed, so they stop triggering notifications and leave active views; that hides alerts the SOC must work instead of masking their content.

Memory hook: Prompt evidence off: detection continues and prompt text is masked in alerts.

Microsoft Learn: AI onboarding

Contoso runs an HTTP-triggered function app on the Consumption plan. A new requirement says that clients in the company's Azure virtual network must reach the app only through a private IP address in that network, and that public network access to the app must be disabled. What should the security engineer do?

Correct answer: C. Redeploy the functions to a new app on the Flex Consumption plan, add a private endpoint, and disable public access

The Azure Functions networking options article lists a private endpoint for the function app as supported on Flex Consumption, Elastic Premium, and Dedicated, and as not supported on the Consumption plan. A private endpoint gives the app a private IP address from the virtual network, after which public network access can be turned off. Because the Consumption plan can't host one, the functions have to move to a plan that can, and Flex Consumption keeps the pay-for-what-you-use serverless billing model.

Why the other options are wrong:

  • A. Add access restriction rules that allow the virtual network's address space and deny every other inbound source Access restrictions filter requests that arrive at the public endpoint; they give the app no private IP address and leave public network access on.
  • B. Add a private endpoint to the storage account that the function app uses as its host storage, then disable its public access A private endpoint on the host storage account protects the app's own outbound storage traffic, not client calls into the function app.
  • D. Turn on virtual network integration for the existing app and route all of its outbound traffic through the network Virtual network integration carries outbound traffic only and gives no private inbound path, and the Consumption plan doesn't support it anyway.

Memory hook: Consumption plan: access restrictions yes; private endpoints and virtual network integration no.

Microsoft Learn: Functions networking options

Fabrikam runs a LangGraph agent on Amazon Web Services and registers it in the Foundry Control Plane with the A2A protocol, so clients now reach it through the URL that its Foundry resource's AI gateway (preview) provides. The security team wants every prompt sent to this agent screened for jailbreak attempts and blocked before it reaches the agent. What should the security engineer configure?

Correct answer: D. An llm-content-safety policy with shield-prompt set to true on the agent's API in the gateway's API Management instance

Foundry guardrails currently apply only to agents developed in the Foundry Agent Service, not to other agents registered in the Foundry Control Plane. A registered custom agent is proxied through the AI gateway's API Management instance, where policies such as content safety apply. The llm-content-safety policy sends content to Azure AI Content Safety, can check A2A agent APIs managed in API Management, and blocks a detection with a 403; its shield-prompt attribute, false by default, turns on the user prompt attack check.

Why the other options are wrong:

  • A. Threat protection for AI services in Defender for Cloud, with suspicious prompt evidence turned on for the subscription Defender for AI Services raises alerts for Azure OpenAI and model inference deployments; it doesn't sit in the agent's request path, so it can't block a prompt before the agent receives it.
  • B. An llm-token-limit policy with a tokens-per-minute limit on the agent's API in the gateway's API Management instance A token limit throttles consumption and returns 429 or 403 on volume, but it never inspects prompt content, so jailbreak attempts still reach the agent.
  • C. A Foundry guardrail with a user prompt attacks control at user input, set to Annotate and block and assigned to the agent The guardrail system applies only to agents built in the Foundry Agent Service, so a guardrail does nothing for an external agent registered in the control plane, and its prompts would still pass unscreened.

Memory hook: Foundry guardrails cover Agent Service agents only; a registered outside agent is screened by the AI gateway's policies.

Microsoft Learn: Llm content safety policy

Woodgrove Bank (Microsoft 365 E7) runs autonomous agents that call Microsoft Graph on a schedule with their own agent identities and no signed-in user. The CISO wants a Conditional Access policy that cuts these agents off when ID Protection flags them as compromised. Which policy configuration can the engineer build for this access pattern?

Correct answer: B. Target All agent identities, add the agent risk (preview) condition at High, and select Block access

In application-only access the agent identity is the token subject, so the policy targets agent identities. Learn's guidance on targeting agent identities in Conditional Access says the only condition available for them is Agent risk (preview), with high, medium and low levels from ID Protection, and that Block access is the only control because no interactive remediation is possible. Device and network controls apply only to agents' user accounts.

Why the other options are wrong:

  • A. Target All agent identities, add a high sign-in risk condition, and require multifactor authentication Agent identities can't complete MFA, and sign-in risk isn't offered for them; agent risk is their only condition and Block their only control.
  • C. Target the users who created the agents, add a high user risk condition, and require a password change No user signs in during an app-only call, so user conditions and a password change never evaluate; the agent identity is the token subject.
  • D. Target All agent identities, add a Windows device platform condition, and require a compliant device Device platforms and compliant device apply only to agents' user accounts running on endpoints; a policy targeting agent identities offers neither.

Memory hook: Agent identity policy: one condition, agent risk, and one control, Block.

Microsoft Learn: Target agent identities

Woodgrove Bank hosts a customer-facing web app on an App Service Premium v3 plan, and customers must keep reaching it from the internet. Self-hosted pipeline agents in an Azure virtual network must reach the advanced tools (scm) site at a private IP address in that network to deploy, and the scm site must refuse all internet traffic. No access restriction rules exist, and the app access setting has never been set. What should you configure?

Correct answer: D. Add a private endpoint, set app access to Enabled, and set the advanced tools site's unmatched rule action to Deny

The App Service access restrictions article describes this case: add a private endpoint to keep deployment traffic private, make sure public app access is enabled, and set the advanced tools site's unmatched rule to deny, which blocks public traffic to that site. Traffic through a private endpoint bypasses access restrictions, so the agents still reach scm. App access must be set explicitly because, when it isn't set, the default changes to disabled once a private endpoint exists.

Why the other options are wrong:

  • A. Set the advanced tools site's unmatched rule action to Deny and allow the agents' subnet with a service endpoint rule A service endpoint rule admits the agents' subnet at the app's public entry point, and the scm site never gets a private IP address in the network, so the private-path requirement fails.
  • B. Add a private endpoint, set app access to Disabled, and keep the advanced tools site's unmatched rule action at Allow Disabling app access closes the public entry point for the main site as well as scm, so customers can't reach the app.
  • C. Add a private endpoint and leave app access unset, then set the advanced tools site's unmatched rule action to Deny With app access unset, adding a private endpoint switches the default to disabled, so customers on the internet lose the main site.

Memory hook: Private endpoint traffic skips access restrictions; once a private endpoint exists, set app access to Enabled on purpose.

Microsoft Learn: Overview access restrictions

Tailspin Toys turned on Defender for Storage and threat protection for AI services for its subscription, and foundational CSPM is its only posture coverage. In the Data and AI security dashboard, Top issues lists high-severity alerts and recommendations but never any attack paths, and the security engineer also needs an AI bill of materials for the company's Foundry workloads. What should the engineer enable?

Correct answer: D. The Defender CSPM plan for the subscription, in Defender plans under Environment settings

Attack path analysis and AI security posture management, including discovery of the generative AI bill of materials, are Defender CSPM capabilities that foundational CSPM doesn't include. The Data and AI security dashboard is enabled per subscription and reflects the plans enabled there; for full access Learn lists Defender CSPM with its sensitive data discovery extension, Defender for Storage, Defender for Databases, and threat protection for AI workloads, and Top issues then shows critical and high attack paths.

Why the other options are wrong:

  • A. The Defender for Databases plan for the subscription, in Defender plans under Environment settings Defender for Databases adds database threat protection and coverage to the dashboard, but attack path analysis and the AI bill of materials still need Defender CSPM.
  • B. AI model security, turned on in the AI services plan settings for the subscription AI model security scans models in Azure Machine Learning registries for malware, unsafe operators, and exposed secrets; it produces no attack paths or AI bill of materials.
  • C. Data security for AI interactions, turned on in the AI services plan settings for the subscription Data security for AI interactions shares prompts and responses with Microsoft Purview for compliance scenarios; it adds no posture data such as attack paths in Defender for Cloud.

Memory hook: Alerts come from the workload plans; attack paths and the AI BOM come from Defender CSPM.

Microsoft Learn: AI security posture

Fabrikam exposes an HTTP-triggered function on the Elastic Premium plan, and three partner applications call it with one shared function key. The security team now requires that every caller present a Microsoft Entra ID access token, that requests without a valid token be rejected before any function code runs, and that the function code stay unchanged. What should you do?

Correct answer: C. Enable App Service built-in authentication with Microsoft Entra ID as the provider and require authentication

The Securing Azure Functions article says access keys only make endpoints harder to reach and that the way to truly secure them is positive authentication of clients, so authorization can rest on identity. Built-in authentication is platform middleware that every request passes through before the app handles it, and the Require authentication setting rejects unauthenticated traffic, with HTTP 401 recommended for APIs. It needs no SDK and no change to function code.

Why the other options are wrong:

  • A. Add inbound access restriction rules that allow only the partner applications' public IP ranges and deny all others IP rules filter by source address and never validate a token, so they can't enforce a Microsoft Entra token requirement.
  • B. Turn on a system-assigned managed identity so that the function app authenticates its incoming callers A managed identity is the app's own identity for calling other Microsoft Entra protected resources; it doesn't authenticate requests that come in.
  • D. Change the function's authorization level to admin so that every caller must present the master key The admin level swaps one shared secret for a more powerful one, the master key, and still identifies no caller through Microsoft Entra ID.

Memory hook: A function key is a shared secret, not an identity; built-in authentication checks the token before your code runs.

Microsoft Learn: Overview authentication authorization

In a Consumption logic app workflow, an HTTP action calls an identity endpoint that returns an access token, and a later HTTP action sends that token in its Authorization header by referencing the first action's output. Support engineers must keep viewing run history from the corporate network, but they must not see the token in the first action's outputs or in the later action's inputs. What should you do?

Correct answer: A. Turn on Secure Outputs in the HTTP action that returns the access token

The Logic Apps article on securing access and data says that when Secure Outputs is turned on in a trigger or action, its outputs are hidden in run history, and a downstream action that explicitly uses those secured outputs as inputs has its inputs hidden too, without its own Secure Inputs setting being turned on. One setting on the first HTTP action therefore hides the token in both places, while the engineers keep their run history access.

Why the other options are wrong:

  • B. Turn on Secure Inputs only in the later HTTP action that sends the token Securing the later action's inputs hides the token only there; the first action's outputs still show it in run history.
  • C. Limit run history inputs and outputs to the corporate network's IP range The run history IP setting controls where history can be read from, not what it shows, so engineers on the corporate network would still see the token.
  • D. Turn on Secure Inputs in the HTTP action that returns the access token Secure Inputs hides the first action's request and any downstream inputs built from its outputs, but the token in that action's own outputs stays visible.

Memory hook: Secret in a response? Secure Outputs on the action that returns it; downstream inputs that use it are hidden too.

Microsoft Learn: Logic apps securing a logic app

A Contoso file server in a branch office was offline for four months while the site moved to a new building. The server is Azure Arc-enabled and protected by Defender for Servers. Network access is restored, but the Azure portal shows its Arc status as Expired, and its extensions can't be managed from Azure. What should the engineer do to bring the server back under Azure Arc management?

Correct answer: A. Disconnect the Connected Machine agent on the server, then connect it again by using an onboarding credential.

The Arc identity and authorization article explains that the certificate behind each server's managed identity is valid for 90 days and that the agent renews it automatically only while it stays connected. A server offline long enough for that credential to expire becomes Expired, and automatic reconnection isn't possible: you disconnect the agent and reconnect it to Azure with an onboarding credential. Four months offline is past the 90-day lifetime, so no restart or wait brings it back.

Why the other options are wrong:

  • B. Run azcmagent check on the server so that the agent renews its expired certificate once the endpoints respond. azcmagent check is the documented connectivity test, so it looks like a repair step, but it only tests the required endpoints and doesn't renew an expired credential or reconnect the agent.
  • C. Delete the server's resource in Azure so that the agent registers a new resource with its next heartbeat. Removing the Azure resource is the cleanup step for a retired server; the agent doesn't register again on its own, because an expired agent needs a disconnect and a reconnect with an onboarding credential.
  • D. Restart the Connected Machine agent services so that the next heartbeat renews the managed identity certificate. Restarting services is the first fix for a Disconnected server, which is why it tempts, but an expired managed identity credential can't renew itself, so the agent still can't authenticate.

Memory hook: Expired Arc server: disconnect, then reconnect with an onboarding credential; nothing renews by itself.

Microsoft Learn: Security identity authorization

Contoso deploys a web app from a Bicep file. Because app settings must resolve Key Vault references while the app is created, the app gets only a user-assigned managed identity, which already holds Key Vault Secrets User on a vault that uses the Azure RBAC permission model and accepts traffic from all networks. After deployment, every Key Vault reference in the app settings shows an error. What should you do?

Correct answer: B. Set the app's keyVaultReferenceIdentity property to the resource ID of the user-assigned identity

The Key Vault references article says references use the app's system-assigned identity by default. For apps that need secrets at creation time, before a system-assigned identity exists, it says to grant a user-assigned identity access in advance, assign it to the app, and set keyVaultReferenceIdentity to that identity's resource ID; the setting applies to every Key Vault reference in the app. Until it's set, the references don't use the identity that holds the role.

Why the other options are wrong:

  • A. Replace the identity's Key Vault Secrets User assignment with Key Vault Secrets Officer on the vault Key Vault Secrets User already reads secret contents, so a broader role adds rights without changing which identity the references use.
  • C. Turn on virtual network integration and set vnetRouteAllEnabled so that secret requests use the network Routing through a virtual network matters for a network-restricted vault; this vault accepts all networks, so the failure isn't the network path.
  • D. Add a vault access policy that grants the user-assigned identity the Get permission on secrets The vault uses the Azure RBAC permission model, so an access policy isn't how it grants access, and the identity's permission isn't the gap.

Memory hook: Key Vault references default to the system-assigned identity; to use a user-assigned one, set keyVaultReferenceIdentity.

Microsoft Learn: App service key vault references

Contoso is setting an encryption standard for new Linux VMs built from the company's own custom image. The standard must use customer-managed keys for the OS and data disks, encrypt the disk caches and the data that flows between the compute host and storage, put no encryption load on the VM's CPU, and stay supported after Azure Disk Encryption retires. Which approach should the security engineer choose?

Correct answer: D. Encryption at host, with the OS and data disks using a disk encryption set that holds the customer-managed key

The comparison table in the overview of managed disk encryption options shows that encryption at host encrypts disk caches and the data flows between compute and storage, doesn't use the VM's CPU, works for custom images, and gives customer control of keys when configured with a disk encryption set; the server-side encryption article adds that each disk's cache uses that disk's key type. The overview says to use encryption at host for new VMs, because Azure Disk Encryption retires on September 15, 2028.

Why the other options are wrong:

  • A. Server-side encryption with a customer-managed key, applied to the OS and data disks through a disk encryption set It looks right because the disk encryption set supplies the customer-managed key, but server-side encryption alone doesn't encrypt disk caches or the data flowing from compute to storage.
  • B. Confidential OS disk encryption with a customer-managed key, plus server-side encryption for the data disks Confidential OS disk encryption belongs to confidential VM sizes and, per the comparison table, uses the VM's CPU; data disks under server-side encryption alone also keep unencrypted caches and flows.
  • C. Azure Disk Encryption with dm-crypt inside the guest, using a key encryption key stored in Key Vault Premium Azure Disk Encryption does encrypt caches and flows, but it runs inside the guest on the VM's CPU, doesn't work for custom Linux images, and retires on September 15, 2028.

Memory hook: Caches and flows encrypted, no guest CPU, custom image, customer key: encryption at host plus a disk encryption set.

Microsoft Learn: Disk encryption overview

Adatum enabled Defender for Servers Plan 2, and agentless results appear for most VMs. None ever appear for 12 VMs whose managed disks are encrypted with customer-managed keys through a disk encryption set, and the disks must stay on customer-managed keys. The keys sit in a key vault that uses the Azure RBAC permission model. The VMs run during every scan and meet the disk type, size and count limits. What should the engineer do?

Correct answer: C. Assign the Key Vault Crypto Service Encryption User role on the vault to the Microsoft Defender for Cloud Servers Scanner Resource Provider.

The Enable agentless machine scanning article says Azure VMs whose disks use customer-managed keys need extra Key Vault permissions for Microsoft Defender for Cloud Servers Scanner Resource Provider, so that the scanner can create and check a secure copy of each encrypted disk. A vault on access policies needs Get, Wrap Key and Unwrap Key; a vault on Azure RBAC needs the Key Vault Crypto Service Encryption User role. This vault uses RBAC, so the role assignment is the fix.

Why the other options are wrong:

  • A. Grant the Get, Wrap Key, and Unwrap Key key permissions to the Microsoft Defender for Cloud Servers Scanner Resource Provider in a vault access policy. These are the right permissions for the right principal, but for a vault on the access policy model; this vault uses Azure RBAC, so the scanner needs the role assignment instead.
  • B. Assign the Key Vault Reader role on the vault to the Microsoft Defender for Cloud Servers Scanner Resource Provider application. Reader looks like least privilege, but Key Vault Reader only reads vault and key metadata and has no unwrap permission, which the scanner needs to create and check its copy of each encrypted disk.
  • D. Assign the Key Vault Crypto Service Encryption User role on the vault to the system-assigned managed identity of the disk encryption set. The role is right but the principal isn't: the disk encryption set's identity already reaches the key for every disk read and write, and the scanner is a separate principal that needs its own access.

Memory hook: CMK disks plus agentless scanning: give the Servers Scanner Resource Provider wrap and unwrap, by role on an RBAC vault.

Microsoft Learn: Enable agentless scanning VMs

Litware protects a web app with Application Gateway WAF_v2, using a WAF policy in Prevention mode with the OWASP CRS 3.2 managed rule set. WAF logs trace blocked sign-in requests to one SQL injection rule that matches the value of a request header named X-Session-Context, which carries a signed token. That value must stay inspected by every other rule, and the rest of each request must stay fully inspected. What should you configure?

Correct answer: C. A per-rule exclusion for RequestHeaderValues equal to X-Session-Context, scoped to the matching rule

The Application Gateway WAF exclusion lists article says an exclusion omits only the named request attribute from evaluation and the rest of the request is evaluated as normal, and that exclusions can apply to specific rules or globally. Per-rule exclusions, available with CRS 3.2 or later, are the narrow choice the article recommends: the one rule skips that header value, while every other rule still inspects it and the rest of the request.

Why the other options are wrong:

  • A. A global exclusion for RequestHeaderValues equal to X-Session-Context, applied across all managed rules A global exclusion removes the header value from every rule's evaluation, which breaks the requirement that other rules keep inspecting it.
  • B. A custom rule with the Allow action that matches requests carrying the X-Session-Context header A custom Allow rule skips all remaining custom and managed rules, so any request that simply adds the header would bypass the WAF.
  • D. Disabling the matching SQL injection rule in the CRS 3.2 managed rule set of the WAF policy Disabling the rule removes that protection from every field of every request, and a disabled rule neither adds to the anomaly score nor logs.

Memory hook: False positive on one field: exclude that field from that rule, not the whole rule and not the whole request.

Microsoft Learn: Application gateway waf configuration

Fabrikam runs 120 Azure VMs. On each, a billing service requests Microsoft Entra tokens from the Azure Instance Metadata Service without naming an identity, because the VM's only managed identity is a user-assigned identity that holds the service's role assignments. The security team will assign the Deploy prerequisites to enable Guest Configuration policies on virtual machines initiative. What should be done before its remediation runs?

Correct answer: A. Change the billing service's token requests to name the user-assigned identity by its client ID

The machine configuration prerequisites article says the initiative's identity definitions create a system-assigned managed identity in addition to any user-assigned identities, and that existing applications that don't specify the user-assigned identity then default to the system-assigned one. The managed identities FAQ confirms that IMDS defaults to the system-assigned identity when a request names none, so naming the client ID keeps the billing service on its own role assignments.

Why the other options are wrong:

  • B. Install the Azure Connected Machine agent on each VM so that machine configuration needs no VM identity The Arc agent carries the machine configuration client for hybrid servers, but Azure Arc-enabled servers isn't designed or supported for managing VMs that run in Azure.
  • C. Remove the user-assigned identity from each VM, then add it back after the initiative deploys the extension Removing the identity looks like it clears the way, but the initiative already handles VMs with a user-assigned identity, and once the system-assigned identity exists, unnamed requests still default to it.
  • D. Grant the user-assigned identity the Guest Configuration Resource Contributor role on the subscription Granting a role changes nothing about the initiative: its definition for VMs with a user-assigned identity still adds a system-assigned identity, and unnamed token requests then default to it.

Memory hook: The prerequisites initiative adds a system-assigned identity, and IMDS then defaults to it: name your user-assigned identity.

Microsoft Learn: 02 setup prerequisites

Topic 4 of 4

Manage and monitor security posture (18 questions)

Go deeper in SC-500 Cloud and AI Security Engineer Complete Exam Guide. Get it on Amazon

Show the 18 questions and explanations

Woodgrove Bank is setting up the Phishing Triage Agent in Microsoft Defender. An engineer proposes connecting an existing user account whose Defender permissions come from a Privileged Identity Management (PIM) eligible assignment. The SOC manager wants the agent to run continuously in the background with only the permissions it needs. Which identity choice should be made in the setup wizard?

Correct answer: C. Create a new agent identity with a role holding the required permissions

The Phishing Triage Agent article recommends creating a new agent identity, a Microsoft Entra Agent ID, and the wizard then lets you select or create a role with only the permissions the agent needs. It also states that a user identity for the agent isn't compatible with PIM or a Temporary Access Pass, because neither supports long-term background operations, so the PIM-based account can't meet the continuous-run requirement.

Why the other options are wrong:

  • A. Connect the existing account and extend its PIM maximum activation duration A longer activation window looks like a workaround, but it is still PIM, which Learn says the agent's user identity doesn't support.
  • B. Connect the existing account and have it sign in with a Temporary Access Pass A Temporary Access Pass is a time-limited credential, and Learn says the agent's user identity isn't compatible with it.
  • D. Connect the existing account after making it a permanent Global Administrator A permanent assignment would keep the agent running, but Global Administrator far exceeds the permissions the agent needs.

Memory hook: Background agents run on Agent IDs; PIM and TAP accounts can't keep them alive.

Microsoft Learn: Phishing triage agent

Woodgrove Bank has two Microsoft Sentinel workspaces connected to the Defender portal with Microsoft Defender XDR: WS-HQ is primary and WS-Ops is secondary. The SOC makes WS-Ops the primary. Scheduled analytics rules in WS-HQ query DeviceProcessEvents data that the Defender XDR connector streamed there, and they must keep working. WS-HQ doesn't need Defender XDR incidents. What should the engineer do?

Correct answer: C. Configure DeviceProcessEvents table ingestion into WS-HQ from the Microsoft Sentinel Tables page

When the primary changes, the Defender XDR connector connects to the new primary and disconnects from the former one. The Multiple Microsoft Sentinel workspaces in the Defender portal article says rules and automation built on Defender XDR data stop until table ingestion is configured, and that secondary workspaces can still ingest Defender tables under Microsoft Sentinel, then Configuration, then Tables. That restores DeviceProcessEvents in WS-HQ without XDR incidents.

Why the other options are wrong:

  • A. Assign the SOC engineers Microsoft Sentinel Contributor on WS-HQ so the rules can read XDR data The rules stopped because table data stopped arriving when the connector moved; a role assignment doesn't restore ingestion.
  • B. Re-create the WS-HQ rules as custom detections in advanced hunting scoped to WS-HQ Custom detections are the newer detection path, but creating them in advanced hunting is limited to the primary workspace, so they can't run against WS-HQ.
  • D. Reconnect the Defender XDR incidents and alerts connector to WS-HQ as well as to WS-Ops Reconnecting the connector is the obvious undo, but Defender XDR incidents and alerts sync to the primary workspace only, so WS-HQ can't hold that connection once WS-Ops is primary.

Memory hook: Switch the primary and the XDR connector moves with it; the old workspace needs table ingestion.

Microsoft Learn: Workspaces Defender portal

A Contoso engineer holds Microsoft Sentinel Contributor on the workspace and Logic App Contributor on the rg-soar resource group. While creating an automation rule with the incident-created trigger, the engineer finds an incident-trigger playbook from rg-soar grayed out in the Run playbook action. What should be done so the rule can run the playbook?

Correct answer: B. Grant Microsoft Sentinel permissions on rg-soar with Manage playbook permissions

An automation rule runs playbooks through a Microsoft Sentinel service account, which needs the Microsoft Sentinel Automation Contributor role on the resource group where the playbook lives. Playbooks Sentinel can't run show as grayed out, and the Manage playbook permissions link grants that access on the spot. Granting it takes a role such as Owner on rg-soar, which the engineer doesn't hold, so an Owner of the resource group completes the step.

Why the other options are wrong:

  • A. Assign the engineer the Microsoft Sentinel Playbook Operator role on rg-soar Playbook Operator lets a person run playbooks manually; automation rules run playbooks under Sentinel's service account, not the engineer's.
  • C. Assign the engineer the Microsoft Sentinel Automation Contributor role on rg-soar Automation Contributor is meant for Sentinel's service account and isn't used for any other purpose; giving it to a person doesn't ungray the playbook.
  • D. Rebuild the playbook in rg-soar so it uses the Microsoft Sentinel alert trigger Trigger types must match: an incident-trigger rule can run only incident-trigger playbooks, so an alert-trigger rebuild would still be unavailable.

Memory hook: Grayed-out playbook: Sentinel's service account needs Automation Contributor on the playbook's resource group.

Microsoft Learn: Automate incident handling with automation rules

Adatum's security engineer is a Security Administrator in Microsoft Entra ID and holds Owner on the subscription that contains the Microsoft Sentinel workspace. That Owner assignment carries a condition limiting which roles the engineer can assign. In the Defender portal, under System, then Settings, then Microsoft Sentinel, the workspace isn't offered for connection. What should change?

Correct answer: A. Re-create the engineer's Owner assignment at the subscription scope without a condition

Connecting a workspace to the Defender portal takes at least Security Administrator in Microsoft Entra ID plus Owner, or User Access Administrator with Microsoft Sentinel Contributor. The Connect Microsoft Sentinel to the Microsoft Defender portal article adds that the Owner assignment must be unconditional at the subscription scope, and workspaces the user lacks permissions for aren't offered. The Entra side is already met, so the conditional Owner assignment is what to fix.

Why the other options are wrong:

  • B. Add an Owner assignment on the workspace's resource group next to the conditional one Adding Owner somewhere else seems to sidestep the condition, but the onboarding requirement reads Owner at the subscription scope, so a resource group assignment doesn't satisfy it.
  • C. Add the Global Administrator role in Microsoft Entra ID to the engineer's existing roles Global Administrator feels like the safe escalation, but the Entra requirement is at least Security Administrator, which is already met; the blocker is the condition on the Azure Owner assignment.
  • D. Assign Microsoft Sentinel Automation Contributor to the engineer at the subscription Automation Contributor sounds like a Sentinel admin role, but it lets the Sentinel service add playbooks to automation rules and isn't used for user accounts or onboarding.

Memory hook: Defender portal onboarding: Security Administrator plus an unconditional Owner at the subscription.

Microsoft Learn: Microsoft Sentinel onboard

Contoso's Linux log forwarder runs Azure Monitor Agent 1.41 or later with two DCRs: Syslog via AMA collecting local4 for Linux servers, and CEF via AMA collecting local4 for a firewall that can send only on local4 and whose syslog headers don't follow RFC 3164 or RFC 5424. Firewall events land in both CommonSecurityLog and Syslog. Linux local4 messages must stay in Syslog. What should the engineer do?

Correct answer: B. Add a Syslog DCR transformation dropping rows where ProcessName has CEF or SyslogMessage has CEF:0

The Syslog and CEF via AMA connectors overview says using one facility for both Syslog and CEF duplicates data across CommonSecurityLog and Syslog. When the source can't change facilities, add an ingestion-time transformation to the Syslog DCR that filters CEF messages out. From AMA 1.41, ProcessName might not contain CEF for vendors whose headers break RFC 3164 or RFC 5424, so the filter must check both ProcessName and SyslogMessage.

Why the other options are wrong:

  • A. Add a Syslog DCR transformation that drops rows only when the ProcessName field contains the text CEF ProcessName was the classic filter, but from AMA 1.41 it might not contain CEF for appliances with nonstandard headers, so some firewall rows would still duplicate into Syslog.
  • C. Add a CEF DCR transformation that drops rows whose SyslogMessage field contains the CEF:0 prefix Filtering the CEF DCR targets the copy Contoso wants to keep in CommonSecurityLog and leaves the duplicate in Syslog untouched.
  • D. Remove local4 from the Syslog DCR's Collect tab so that only the CEF DCR collects that facility Dedicating facilities is a documented fix, but here the Linux servers also use local4, so dropping it from the Syslog DCR loses messages that must stay in Syslog.

Memory hook: Same facility in two DCRs doubles the data: filter CEF out of Syslog on ProcessName and SyslogMessage.

Microsoft Learn: Cef syslog ama overview

Fabrikam's auditors require a full user audit trail from the company's Windows servers, including sign-out events (event ID 4634). The SOC wants the lowest ingestion volume that still meets the requirement and won't maintain hand-written XPath queries. Which event set should the security engineer select in the Windows Security Events via AMA connector?

Correct answer: C. Common

The Windows security event sets reference describes Common as a standard auditing set that keeps a full user audit trail, with both sign-in and sign-out events (4624 and 4634), security group changes, and key domain controller Kerberos operations, while cutting volume to a more manageable level. That makes it the smallest prebuilt set that satisfies an audit trail requirement, and it needs no XPath maintenance.

Why the other options are wrong:

  • A. Custom Custom means writing and maintaining XPath queries in the DCR, which the SOC has ruled out.
  • B. Minimal Minimal tempts because it has the lowest volume, but it isn't an audit trail: it keeps logons and process creation and leaves out sign-out event 4634.
  • D. All events All events does include sign-outs, but it collects the full, unfiltered Security and AppLocker logs, so it misses the lowest-volume requirement.

Memory hook: Audit trail with sign-outs at reduced volume: Common. Minimal drops 4634; All events keeps everything.

Microsoft Learn: Windows security event ID reference

Woodgrove Bank runs Defender CSPM on its Azure subscriptions. The CISO wants each high-severity Microsoft cloud security benchmark recommendation assigned to the person named in the resource's Owner tag, with 30 days to fix it and weekly email reminders, and the secure score must not drop for these findings until a due date passes. What should the security engineer configure?

Correct answer: C. A governance rule by severity that sets the owner by resource tag, a 30-day time frame, and Apply grace period selected

Governance rules assign an owner, read from a resource tag if you choose, and a due date 7, 14, 30 or 90 days after the rule triggers, and owners get weekly emails by default. The rule setup says that when recommendations come from the Microsoft cloud security benchmark and you don't want the resources to affect Secure Score until they're overdue, you select Apply grace period. Governance rules require Defender CSPM, which Woodgrove runs.

Why the other options are wrong:

  • A. A governance rule by severity that sets the owner by resource tag, a 30-day time frame, and Apply grace period cleared Without the grace period the unhealthy resources count against secure score right away, which breaks the CISO's requirement.
  • B. A Waiver exemption on each matching recommendation, with an expiration date set 30 days after creation A Waiver exemption removes resources from the score calculation, but it assigns no owner, sets no due date and sends no reminders.
  • D. A workflow automation that runs a Logic App to email the owner named in each resource's Owner tag Workflow automation can notify people, but it sets no due date and does nothing to keep findings out of secure score.

Memory hook: Owner, deadline, and no score hit until overdue: a governance rule with Apply grace period.

Microsoft Learn: Governance rules

Fabrikam's governance policy permits role assignments only on individual resources, never on a resource group or subscription, because the resource group that holds its Microsoft Sentinel workspace also contains unrelated production resources. The engineer assigns Microsoft Sentinel Responder to the SOC group directly on the workspace resource. What else must the engineer assign so the SOC's Microsoft Sentinel access works as intended?

Correct answer: C. Microsoft Sentinel Responder on the SecurityInsights solution resource in the workspace

Microsoft recommends assigning Microsoft Sentinel roles on the resource group that contains the workspace so related resources share one assignment. The roles article allows assigning them on the workspace instead, but then the same roles must also be assigned to the SecurityInsights solution resource in that workspace, possibly to other resources too, with ongoing upkeep. That matching assignment is the missing piece.

Why the other options are wrong:

  • A. Log Analytics Reader on the workspace resource for the same SOC group of analysts Log Analytics Reader adds workspace data reads, but it isn't the Microsoft Sentinel role pairing that the roles article requires for workspace-scope assignments.
  • B. Microsoft Sentinel Responder on the subscription that contains the Sentinel workspace A wider scope seems to guarantee coverage, but the policy rules out subscription assignments, and the roles article pairs a workspace-scope assignment with the SecurityInsights solution resource instead.
  • D. Microsoft Sentinel Automation Contributor on the workspace resource for the SOC group Automation Contributor has Sentinel in its name, but it exists so the Sentinel service can add playbooks to automation rules and isn't used for user accounts.

Memory hook: Roles on the workspace? Repeat them on the SecurityInsights solution resource.

Microsoft Learn: Sentinel: Roles

Contoso's tier 1 analysts must view Microsoft Sentinel data and incidents, assign incidents, change their status, and add comments. They must not create or edit analytics rules or install content hub solutions. Which single role should the engineer assign to the analysts' group on the resource group that holds the workspace?

Correct answer: A. Microsoft Sentinel Responder

The Roles and permissions in the Microsoft Sentinel platform article defines Microsoft Sentinel Responder as all Reader permissions plus managing incidents, which covers assigning them, changing status, and commenting. It doesn't include creating or editing analytics rules or managing the content hub; those arrive with Microsoft Sentinel Contributor. Assigning it on the resource group that holds the workspace also matches Microsoft's recommended scope.

Why the other options are wrong:

  • B. Microsoft Sentinel Reader Reader is the least-privilege instinct, but it only views data, incidents, and workbooks and can't manage incidents.
  • C. Microsoft Sentinel Playbook Operator Playbook Operator sounds operational, but it only lists, views, and manually runs playbooks and grants no access to incidents.
  • D. Microsoft Sentinel Contributor Contributor covers incidents too, but it adds creating and editing analytics rules and installing or updating solutions, which the requirements forbid.

Memory hook: Reader looks, Responder works incidents, Contributor builds content.

Microsoft Learn: Sentinel: Roles

Litware's Microsoft Sentinel workspace isn't onboarded to the Sentinel data lake. Its SecurityEvent table uses the Analytics plan with 90 days of analytics retention and two years of total retention. An analyst must spend a day running many iterative queries that use summarize and join over three days of SecurityEvent data from eight months ago. What should the analyst use?

Correct answer: C. A restore of the three-day range into a _RST table, deleted when the work is done

The Azure Monitor restore article says a restore makes a chosen time range of a table available in a new _RST table for high-performance queries with full KQL, and that deleting the table dismisses it to stop billing. Three days meets the two-day minimum. Search jobs, by contrast, scan one table with a limited set of operators that leaves out summarize and join, and Analytics data past its analytics retention isn't reachable by ordinary log queries.

Why the other options are wrong:

  • A. A KQL job that reads the three days and promotes the results to the analytics tier KQL jobs read the Microsoft Sentinel data lake tier, which this workspace doesn't have.
  • B. Queries in Logs with a custom time range that covers the three days Analytics data past its analytics retention sits in long-term retention, which ordinary log queries don't read; Learn points to a search job or a restore to reach it.
  • D. A search job whose query performs the summarize and join steps over the three days Search job queries support only a subset of KQL, such as where, extend, project and parse, so summarize and join aren't available, and a job covers one table.

Memory hook: Find rows in old data: search job. Work old data with full KQL: restore to _RST, then dismiss.

Microsoft Learn: Logs: Restore

When Tailspin Toys first onboarded Security Copilot, contributor access was granted to the Everyone group. The security architect now wants to use the Recommended Microsoft Security roles assignment so that only users who already hold security roles get platform access. What must the architect plan for before making the change?

Correct answer: B. Remove the Everyone group first; once removed, it can't be assigned again

Learn's authentication article states that if the Everyone group is assigned, you must remove it before you add the Recommended Microsoft Security roles, and that once Everyone is removed it can't be assigned again. The recommended bundle, the default for new instances, gives contributor access to users who already have security permissions through Microsoft Entra roles, so the architect should confirm it covers everyone who needs Copilot before removing the broad group.

Why the other options are wrong:

  • A. Add the recommended roles alongside Everyone; the narrower assignment wins Layering assignments is a common habit, but Everyone must come off before the recommended roles go on, and access isn't settled by picking the narrower one.
  • C. Add the recommended roles first; Copilot then removes the Everyone group itself It expects Copilot to swap the assignments for you, but the architect must remove Everyone before adding the recommended roles.
  • D. Remove the Everyone group first; it can be restored later if users lose access It treats removal as reversible, but Learn says the Everyone group can't be assigned again once removed.

Memory hook: Everyone comes off first, and Everyone stays off for good.

Microsoft Learn: Security: Authentication

At Litware, a SOC analyst holds only the Copilot contributor role in Security Copilot. The Microsoft Sentinel plugin is available to all users and its setup is complete in the analyst's sessions, yet prompts about the team's Microsoft Sentinel incidents return no incident data. Following least privilege, which role should the administrator assign to the analyst?

Correct answer: A. Microsoft Sentinel Reader on the Sentinel workspace

Security Copilot roles control access to the platform and grant no access to security data by themselves, because Copilot never goes beyond the access a user already has. Learn's authentication article describes this exact case: a Copilot contributor still needs an Azure RBAC role such as Microsoft Sentinel Reader to see Microsoft Sentinel incidents through the plugin. Assigning that read role closes the gap with the least privilege.

Why the other options are wrong:

  • B. Copilot owner through Security Copilot role assignment Owner sounds like more access, but it only adds platform settings such as plugin and capacity management and grants no Sentinel data.
  • C. Billing Administrator in Microsoft Entra ID Billing Administrator is one of the Entra roles Learn lists as inheriting Copilot owner, yet it carries no read access to Sentinel incidents.
  • D. Security Administrator in Microsoft Entra ID Security Administrator is privileged, and Learn advises against assigning it for Copilot access when a Sentinel read role is all that's missing.

Memory hook: Copilot roles open the platform; service roles open the data.

Microsoft Learn: Security: Authentication

Litware forwards Security log events from 4,000 workstations to two Windows Event Collector servers through source-initiated subscriptions that deliver to the Forwarded Events log. The collectors are Azure Arc-enabled, run the Azure Monitor Agent, and feed the Windows Forwarded Events connector. Agents on workstations are forbidden. Forwarded events reach the workspace, but built-in analytics rules for Windows logons never fire. What should the engineer do?

Correct answer: D. Adapt the analytics rule queries to the WindowsEvent table or to the ASIM parsers

The Windows agent-based connector article states that events collected through Windows Event Forwarding are written to the WindowsEvent table, including events forwarded from the Security log, and not to SecurityEvent. Many built-in Windows rules query SecurityEvent only. Running them unchanged would need the Windows Security Events via AMA connector on every source machine, which policy forbids, so the path Learn gives is to adapt the queries to WindowsEvent or to supported ASIM parsers.

Why the other options are wrong:

  • A. Switch the WEF subscriptions from the Rendered Text format to the Events format The Events format sends compact binary XML so a collector can handle more volume, but it doesn't change the table the connector writes to.
  • B. Create a workspace transformation DCR on SecurityEvent to reshape the forwarded events A workspace transformation acts on data sent to its own table; forwarded events are sent to WindowsEvent, so a SecurityEvent transformation never receives them.
  • C. Enable the Windows Security Events via AMA connector on the collectors with All events That connector's event sets read the Security and AppLocker channels of the machine running the agent, so on the collectors it captures their own events, not the Forwarded Events log.

Memory hook: WEF through a collector lands in WindowsEvent, never SecurityEvent: adapt the rules or use ASIM.

Microsoft Learn: Connect services Windows based

A security engineer at Tailspin Toys turns on ISO IEC 27001:2022 under Security policies for an Azure subscription created that morning, which holds no resources yet. Defender CSPM is enabled on the subscription. The Regulatory compliance dashboard doesn't list the standard. What should the engineer conclude?

Correct answer: D. The assignment is in place; the dashboard omits a standard until the scope holds resources relevant to it.

Learn's regulatory compliance articles state that if you assign a standard but have no relevant assessed resources, the standard doesn't appear on the Regulatory compliance dashboard, even though it's assigned. A new, empty subscription produces exactly that result, so the standard should appear once relevant resources are deployed. Greyed-out controls are a separate behavior that applies to controls inside a standard the dashboard already shows.

Why the other options are wrong:

  • A. Standards assigned at subscription scope are displayed only in the compliance view of the Microsoft Defender portal. The Azure portal's Regulatory compliance dashboard shows subscription-scoped standards; the Defender portal adds a monitoring view, not an exclusive one.
  • B. ISO IEC 27001:2022 is offered only for AWS and GCP connectors, so the Azure assignment had no effect. Defender for Cloud lists ISO IEC 27001:2022 for Azure, AWS and GCP, so an Azure subscription can be assigned it.
  • C. The standard's controls can't be assessed automatically, so they're greyed out and the standard is hidden. Greyed-out controls appear inside a displayed standard when a control can't be assessed automatically; they don't hide the standard itself.

Memory hook: Assigned but invisible on the dashboard: nothing relevant in scope yet.

Microsoft Learn: Concept regulatory compliance standards

Contoso enabled Defender for Storage at the subscription level with the default on-upload malware scanning cap. Only one media storage account needs a higher cap. An engineer ran Update-AzSecurityDefenderForStorage on it with -IsEnabled, -OnUploadIsEnabled and -OnUploadCapGbPerMonth 50000, but a day later Get-AzSecurityDefenderForStorage still shows the subscription's cap. What should the engineer do?

Correct answer: B. Run Update-AzSecurityDefenderForStorage again with the same values and add the -OverrideSubscriptionLevelSetting parameter.

The Defender for Storage PowerShell article states that with the plan enabled at the subscription level, the -OverrideSubscriptionLevelSetting parameter is necessary; without it, the account's extensions follow the subscription-level settings regardless of the values passed to the cmdlet. Rerunning with the override stores the 50,000 GB cap on the media account alone, while every other account keeps the default 10,000 GB cap.

Why the other options are wrong:

  • A. Run Update-AzSecurityDefenderForStorage again with -OnUploadCapGbPerMonth set to -1 so the account has no scanning cap. Without the override the account still inherits the subscription settings, so -1 would be ignored too, and unlimited scanning goes beyond what was asked.
  • C. Run Register-AzResourceProvider for the Microsoft.Security namespace, then run Update-AzSecurityDefenderForStorage again. The Microsoft.Security provider is already registered because the plan is running, and registration doesn't make an account-level setting take precedence.
  • D. Run Set-AzSecurityPricing for StorageAccounts with CapGBPerMonthPerStorageAccount set to 50000 in the -Extension value. Set-AzSecurityPricing changes the subscription-level setting, which raises the cap for every storage account in the subscription instead of only the media account.

Memory hook: Per-account Defender for Storage settings stick only with -OverrideSubscriptionLevelSetting.

Microsoft Learn: Defender for storage PowerShell enablement

A security engineer at Litware holds Contributor on a subscription and wants to turn on Microsoft Sentinel for the default Log Analytics workspace that Microsoft Defender for Cloud created automatically in that subscription. After selecting Create in Microsoft Sentinel, the engineer can't find that workspace in the list. What should the engineer do?

Correct answer: A. Create or choose a different Log Analytics workspace, then add Microsoft Sentinel to that workspace

The Microsoft Sentinel onboarding quickstart states that the default workspaces Microsoft Defender for Cloud creates aren't shown in the workspace list and that Microsoft Sentinel can't be installed on them. No role or setting changes that, so the answer is another workspace: create a Log Analytics workspace, or pick one Defender for Cloud didn't create, and add Microsoft Sentinel to it. Contributor on the subscription is the documented permission for enabling Microsoft Sentinel, so access isn't the gap.

Why the other options are wrong:

  • B. Move the default workspace to a commitment pricing tier, then refresh the workspace list Pricing tier is a plausible prerequisite to check, but no tier makes a Defender for Cloud default workspace eligible for Microsoft Sentinel.
  • C. Assign Microsoft Sentinel Contributor on the default workspace's resource group, then refresh the list It looks like a permissions problem, but Contributor on the subscription already covers enabling Microsoft Sentinel, and Defender for Cloud's default workspaces stay excluded whatever role the engineer holds.
  • D. Connect the default workspace from the Microsoft Sentinel settings page in the Defender portal The Defender portal connects workspaces that already have Microsoft Sentinel enabled, and this default workspace can't have Microsoft Sentinel installed at all.

Memory hook: Defender for Cloud's default workspace can't host Sentinel: bring your own workspace.

Microsoft Learn: Quickstart onboard

Fabrikam runs Defender CSPM on its Azure subscriptions and its AWS connector. The CISO wants attack paths that start at internet-exposed IP addresses found by an outside-in scan, plus explorer queries that correlate those IPs with internal findings, with no new licensing spend. A buyer proposes purchasing Microsoft Defender External Attack Surface Management (Defender EASM). What should the engineer advise?

Correct answer: D. Rely on the Defender EASM integration that ships with the Defender CSPM plan already enabled.

The Defender for Cloud EASM article states that the integration is included with the Defender CSPM plan by default and doesn't require a Defender EASM license or any special configuration. Defender CSPM uses that data for outside-in discovery of internet-facing cloud resources, attack paths that start from internet-exposed IPs, and cloud security explorer queries that correlate those IPs with the rest of Defender for Cloud data.

Why the other options are wrong:

  • A. Turn on the Sensitive data discovery component of Defender CSPM to map the internet exposure. Sensitive data discovery classifies data in data resources; it doesn't discover internet-exposed IP addresses.
  • B. Enable Defender for Servers Plan 2, whose agentless scanning performs the outside-in discovery. Agentless scanning inspects machine disks from inside the environment; it doesn't scan the internet-facing surface from outside.
  • C. Create a standalone Defender EASM resource and add the public IP ranges as its discovery seeds. A standalone Defender EASM resource is a separate purchase, which breaks the no-new-spend requirement for capabilities Defender CSPM already includes.

Memory hook: Defender CSPM already carries the Defender EASM outside-in view, with no extra license.

Microsoft Learn: Concept easm

A Contoso Copilot owner restricted preinstalled plugin access and set the Microsoft Defender XDR plugin to Owners only, leaving every other plugin at All users. SOC analysts hold the Copilot contributor role and use Copilot in Microsoft Defender daily. A week later, Microsoft adds a new preinstalled plugin to Security Copilot. What should the owner expect?

Correct answer: C. Contributors lose the plugin in Copilot in Defender; the new plugin is available to owners only

Learn's manage plugins article says preinstalled plugin availability applies to both standalone and embedded experiences, and that restricting access is an immediate change affecting all users of Security Copilot and embedded experiences, so contributors lose the Defender XDR plugin inside Copilot in Defender. It also says that once access is restricted, new preinstalled plugins are made available to Owners only until an owner configures otherwise.

Why the other options are wrong:

  • A. Contributors keep the plugin in Copilot in Defender; the new plugin is available to all Copilot users It assumes the restriction stops at the standalone portal and that new plugins default open; Learn says neither holds.
  • B. Contributors lose the plugin in Copilot in Defender; the new plugin is available to all Copilot users The embedded impact is right, but after a restriction new preinstalled plugins arrive as Owners only until an owner reconfigures them.
  • D. Contributors keep the plugin in Copilot in Defender; the new plugin is available to owners only The owners-only default for new plugins is right, but the restriction also reaches embedded experiences such as Copilot in Defender, immediately.

Memory hook: Restrict once: contributors lose it in embedded panes too, and new plugins arrive owners-only.

Microsoft Learn: Manage plugins