Skill 3 · 20–25%

Secure compute

Three very different sub-skills share this domain: securing AI workloads, securing servers and virtual machines, and securing the application platform. The AI sub-skill is the one that makes SC-500 distinctive — it is summarised here and taken apart in its own deep dive.

Compute is where Microsoft's security portfolio is at its most layered, and the exam exploits that by offering you four real controls and asking which one belongs at this layer. Keep asking: is this about the platform (Defender plans, Azure Policy), the machine (encryption, trusted launch, agents), the network path (Bastion, JIT, access restrictions) or the application (authentication, WAF, API Management)?

3.1 Security for AI — the short version

This sub-skill spans five products and eleven bullet points in the skills measured. Here is the map; the AI & agent security deep dive works through every item in detail, and you should read it before the exam rather than relying on this summary.

ObjectiveProductOne-line answer
Identify overexposure of data in SharePointSharePoint Advanced Management + PurviewData access governance reports and the content management assessment to find it; Restricted Content Discovery and Restricted Access Control to contain it.
Identify Copilot and AI app risksMicrosoft Purview DSPMData risk assessments, activity explorer, and one-click DLP and labelling policies.
Real-time protection for Copilot Studio agentsMicrosoft DefenderDefender portal → Security for AI → connect Copilot Studio, toggle real-time protection, then finish onboarding in Power Platform with a shared app ID.
Conditional Access for Entra Agent IDMicrosoft EntraTarget agent identities for app-only flows; target users and groups for on-behalf-of flows. Agent risk is a condition.
Analyse blast radiusDefender XDRAgent inventory plus Exposure Management: what the agent's identity can reach if the agent is subverted.
Manage Entra Agent ID accessMicrosoft Entra ID GovernanceSponsors and owners, access packages, lifecycle and expiry for agent identities.
AI Gateway in API Management for FoundryMicrosoft Foundry + APIMFoundry portal → Manage → AI Gateway. Token-per-minute limits return 429; total token quota returns 403.
Defender for AI ServicesDefender for CloudA cloud workload protection plan — runtime detection of jailbreaks, prompt injection, data exposure and wallet abuse.
Guardrails for agent security in FoundryMicrosoft FoundryA guardrail is a named set of controls assigned to models and agents. An agent's guardrail overrides the model's.
Data and AI security dashboardDefender for CloudNeeds Defender CSPM with sensitive data discovery, Defender for Storage, Defender for Databases and AI threat protection.
Manage agents in the Microsoft 365 admin centerMicrosoft 365Inventory, ownership, availability and lifecycle for agents across Microsoft 365.

This sub-skill moves faster than the study guide

Agent security for Copilot Studio and Foundry agents has been consolidating under Microsoft Agent 365, and the licensing and portal paths have shifted since the skills measured were published. Learn the objective as written — it is what the exam item was authored against — but read the deep dive for where the product has actually landed, because the names on screen may not match the names in the bullet list.

3.2 Servers and virtual machines

Disk encryption

flowchart TB
  Q["Choosing disk encryption for a virtual machine"] --> A{"Do you have to hold and rotate the key yourself?"}
  A -->|"No"| SSE["Server-side encryption, platform-managed key<br/>On by default on every managed disk"]
  A -->|"Yes"| B{"Where must the encryption be applied?"}
  B -->|"At the host — OS and data disks,<br/>the temporary disk and host caches"| HOST["Encryption at host<br/>plus a disk encryption set<br/>No agent, no performance cost"]
  B -->|"In the guest, because policy<br/>names BitLocker or dm-crypt"| ADE["Azure Disk Encryption<br/>A VM extension; keys and<br/>secrets live in Key Vault"]
  B -->|"So the Azure host itself<br/>cannot read the disk"| CONF["Confidential VM<br/>Key bound to the hardware<br/>trusted execution environment"]
Four options, three of which are mutually exclusive on the same disk. Encryption at host is the modern default when a customer-managed key is required.
OptionEncryptsRequires
SSE with platform-managed keyOS and data disks, snapshots, images at restNothing — always on
SSE with customer-managed keyThe same, with your keyA disk encryption set and a key vault with soft delete and purge protection
Encryption at hostEverything above plus the temporary disk and host caches, encrypted before it leaves the hostThe feature registered on the subscription and a supported VM size
Azure Disk EncryptionVolumes inside the guest, using BitLocker or dm-cryptA VM extension, a key vault with the disk encryption access policy, and a supported OS
Confidential disk encryptionThe OS disk, with the key protected by the VM's own TEE so the host cannot read itA confidential VM size

Azure Bastion

Bastion gives RDP and SSH over TLS on port 443 from the portal or a native client, so VMs need no public IP, no agent and no open management ports. Dedicated SKUs need a subnet named exactly AzureBastionSubnet, sized /26 or larger.

FeatureDeveloperBasicStandardPremium
CostFreePaidPaidPaid
Dedicated host / virtual network peering❌ shared, one VM at a time✅✅✅
Native client, file transfer, shareable links, IP-based connections, custom ports❌❌✅✅
Host scaling (2–50 instances)❌❌ fixed at 2✅✅
Session recording❌❌❌✅
Private-only deployment (no public IP)❌❌❌✅

SKUs can be upgraded but never downgraded — a downgrade means deleting and recreating the host. "We must keep an audit trail of what administrators did in the session" is Premium, every time.

Just-in-time VM access

  • Part of Defender for Servers Plan 2. It keeps management ports closed with a deny rule and opens them, for a named port, source IP and time window, only on approved request.
  • Requesting access needs write permission on the VM plus Microsoft.Security/locations/jitNetworkAccessPolicies/initiate/action.
  • It edits NSG and Azure Firewall rules for you, then reverts them. It does not remove the public IP — which is why Bastion and JIT are complements, not alternatives.

Azure Arc and Defender for Servers

Azure Arc-enabled servers project a machine outside Azure — on-premises, at the edge, in AWS or GCP — into Azure Resource Manager as a first-class resource. Once projected, it can carry Azure Policy assignments, Machine Configuration, extensions, tags and Defender plans exactly like an Azure VM. When a scenario says "extend these controls to our data-centre servers", Arc is the enabling step.

CapabilityPlan 1Plan 2
Defender for Endpoint integration — EDR, auto-provisioned✅✅
Agent-based vulnerability scanning via the Defender for Endpoint sensor✅✅
Agentless scanning — posture, vulnerabilities, secrets and malware from a disk snapshot❌✅
Premium Defender Vulnerability Management — certificate and baseline assessment, vulnerable application blocking❌✅
Regulatory compliance assessment❌✅ (or any other paid plan)
OS configuration assessment against cloud security benchmark baselines❌✅
File integrity monitoring❌✅ — not on by default
Just-in-time VM access❌✅
Free data ingestion benefit for specified data types❌✅

Agentless scanning, precisely

Agentless machine scanning takes a snapshot of the disk and analyses it out of band — no agent, no performance impact on the workload — and runs on a fixed 24-hour cycle that cannot be configured. It comes with Defender CSPM or Defender for Servers Plan 2, but agentless malware scanning is Plan 2 only. Individual agentless capabilities cannot be switched on and off separately; the plans you enable decide what you get.

Trusted launch and VM security types

Security typeGives you
StandardNo platform integrity guarantees.
Trusted launch (the default for new Gen 2 VMs)Secure boot — only signed bootloaders and drivers may load, defeating rootkits and bootkits. vTPM — a virtualised TPM 2.0 that measures the boot chain and stores keys. Integrity monitoring — attestation of those measurements, surfaced as a Defender for Cloud alert when boot integrity fails.
Confidential VMEverything trusted launch gives, plus memory encrypted in hardware so the hypervisor and host operator cannot read the VM's memory or OS disk.

Integrity monitoring requires vTPM, and vTPM requires trusted launch — a chain worth remembering, because a question will describe the requirement and expect you to name all three.

Azure Machine Configuration

Formerly Azure Policy guest configuration. It audits — and, with the right assignment, remediates — settings inside the operating system: password policy, installed applications, certificates, registry keys, running services, and the Microsoft cloud security benchmark compute baselines. It needs the Machine Configuration extension plus a system-assigned managed identity on each machine, and works identically on Azure VMs and Arc-enabled servers. Audit-only policies are free; Apply (remediating) configurations are charged per machine.

Which tool for which layer

Azure Policy governs the VM resource's properties — the SKU, whether the disk is encrypted, whether boot diagnostics are on. Machine Configuration governs what is true inside the guest.Defender for Servers detects what is happening at runtime. A question about "ensure the password complexity policy on 400 Windows servers" is Machine Configuration, not Azure Policy on its own and not Defender.

3.3 Containers, AKS and the registry

flowchart TB
  BUILD["Build — image pushed to Azure Container Registry"] --> SCAN["Agentless vulnerability assessment of registry images,<br/>by Microsoft Defender Vulnerability Management"]
  SCAN --> POL["Admission — the Azure Policy add-on for Kubernetes audits or denies:<br/>no privileged containers, approved registries only, no host path mounts"]
  POL --> RUN["Run — the workload executes on a node"]
  RUN --> SENSOR["Defender sensor on each node — runtime threat detection and binary drift"]
  RUN --> DISC["Agentless discovery — cluster and API server configuration,<br/>and the images actually running"]
Defender for Containers covers the whole lifecycle, but through three different mechanisms — agentless registry scanning, the Azure Policy add-on at admission, and the Defender sensor at runtime.

Microsoft Defender for Containers

  • Agentless discovery for Kubernetes — reads the cluster and API configuration through the API server, with no components installed, and feeds the security graph and attack path analysis.
  • Agentless vulnerability assessment — scans images in Azure Container Registry and the images actually running in clusters, using Microsoft Defender Vulnerability Management.
  • Defender sensor — a DaemonSet on each node providing runtime threat detection: crypto-mining, reverse shells, container escape attempts, and binary drift (a binary running that was never in the image).
  • Azure Policy add-on for Kubernetes — enforces data-plane rules at admission via Gatekeeper: no privileged containers, no host networking, approved registries only, required resource limits. Effects are audit or deny.

Hardening AKS

ControlWhat it does
Microsoft Entra integration + Azure RBAC for Kubernetes authorizationCluster authentication and authorisation both come from Entra, so Kubernetes permissions become ordinary Azure role assignments and can go through PIM.
Disable local accountsRemoves the cluster-admin certificate that bypasses Entra entirely. Essential — otherwise your carefully built RBAC has a back door.
Private clusterThe API server gets a private endpoint and no public address.
Authorized IP rangesThe lighter alternative when the API server must stay public.
Network policiesPod-to-pod filtering — Azure Network Policy Manager, Calico or Cilium. NSGs do not see pod traffic.
Workload identityFederates a Kubernetes service account to a Microsoft Entra identity, so pods get tokens without secrets.
Key Vault provider for Secrets Store CSI driverMounts secrets from Key Vault into the pod rather than storing them as Kubernetes secrets.
Node image and Kubernetes auto-upgradePatching the node OS and the control plane on a channel rather than by hand.

Azure Container Registry

  • Disable the admin user. It is a shared username and password with push rights and no identity — the container-registry equivalent of a storage account key.
  • Use Entra roles — AcrPull for the AKS kubelet identity, AcrPush for pipelines — and disable anonymous pull.
  • Tokens and scope maps give repository-scoped, expiring credentials when a partner needs one repository and nothing else.
  • Premium tier unlocks private endpoints, customer-managed keys, content trust (image signing), quarantine (an image stays unpullable until it passes a scan), geo-replication and dedicated agent pools.
  • Defender for Containers scans pushed images and continually reassesses them as new vulnerabilities are published.

3.4 The application platform

flowchart TB
  C["Client request"] --> AR["Access restrictions — allow and deny rules<br/>by IP address, service tag or virtual network"]
  AR --> PE["Private endpoint — an inbound private IP for the app<br/>set public network access to Disabled alongside it"]
  PE --> APP["App Service or Function app<br/>sign-in handled by built-in authentication"]
  APP --> VI["Virtual network integration — the only outbound<br/>control of the three, letting the app reach your network"]
  VI --> BE["Private backends — Azure SQL, Key Vault and<br/>storage behind their own private endpoints"]
Three network features that are constantly confused. Access restrictions and private endpoints are inbound; virtual network integration is the only outbound one.

App Service and Azure Functions

ControlDetail
Built-in authentication ("Easy Auth")Turns on sign-in with Microsoft Entra or another provider without a line of code, and can be set to require authentication so unauthenticated requests never reach your code.
Access restrictionsOrdered allow/deny rules by IP range, service tag or virtual network, applied to the app and separately to the scm (Kudu) site — which people forget, leaving the deployment endpoint open.
Private endpointInbound private IP. Pair with public network access disabled.
Virtual network integrationOutbound only — how the app reaches a database or key vault behind a private endpoint.
Managed identityRemoves connection strings. App settings can also reference Key Vault directly with @Microsoft.KeyVault(...).
HTTPS only, minimum TLS version, client certificatesThe transport basics. Client certificates give mutual TLS for machine-to-machine callers.
Disable FTP/FTPS and basic publishing credentialsForce deployment through Entra-authenticated paths only.
Defender for App ServiceDetects attacks against the app — dangling DNS takeover, suspicious process execution, web shell upload.

Function keys are not authentication

An HTTP-triggered function's authorization level of function, admin or anonymous uses shared function, host or master keys passed in a query string or header. They identify nobody, they appear in logs and browser history, and the master key grants administrative access to the whole function app. For anything that matters, set the authorization level to anonymous and put built-in authentication or API Management in front instead. Store any remaining keys in Key Vault and never in source.

Azure Logic Apps

  • A Consumption logic app with a Request trigger exposes a callback URL containing a SAS signature. Anyone with the URL can run the workflow. Controls: restrict trigger access by IP range, restrict run history contents access by IP range, regenerate the access key to invalidate issued URLs, or switch the trigger to Microsoft Entra OAuth and validate the token.
  • Use a managed identity on connections rather than stored credentials in an API connection.
  • Mark sensitive parameters as secure inputs and outputs so values are redacted in run history — a common place for secrets to sit in plain sight.
  • Standard logic apps run on the App Service platform, so they get private endpoints, virtual network integration and access restrictions. Consumption logic apps do not.

Azure Web Application Firewall

On Application GatewayOn Azure Front Door
ScopeRegional, inside your virtual networkGlobal, at the edge
Rule setOWASP Core Rule Set (CRS)Default Rule Set (DRS)
ModesDetection logs matches only; Prevention blocks them. Always start in Detection and tune before switching.
Also offersPer-site and per-URI policiesRate limiting, geo-filtering and bot protection at the edge, closest to the attacker

Tuning is done with exclusions (ignore a named header, cookie or argument for a rule) and custom rules, which are evaluated before the managed rule set and are how you implement allow-lists, geo-blocking and rate limits. Disabling a whole rule because one request tripped it is the wrong answer; an exclusion scoped to that parameter is the right one.

API Management as the back-end protection layer

APIM's security is expressed as policies in the inbound, backend, outbound and on-error pipelines, applied at global, product, API or operation scope.

apim policy
<inbound>
  <!-- Reject anything without a valid Microsoft Entra token for this API. -->
  <validate-jwt header-name="Authorization"
                failed-validation-httpcode="401"
                failed-validation-error-message="Unauthorized">
    <openid-config url="https://login.microsoftonline.com/{tenant-id}/v2.0/.well-known/openid-configuration" />
    <audiences>
      <audience>api://contoso-orders</audience>
    </audiences>
    <required-claims>
      <claim name="roles" match="any">
        <value>Orders.Read</value>
      </claim>
    </required-claims>
  </validate-jwt>

  <!-- Then throttle per caller, so a valid token cannot be used to flood the backend. -->
  <rate-limit-by-key calls="120" renewal-period="60"
                     counter-key="@(context.Subscription?.Id ?? context.Request.IpAddress)" />
  <ip-filter action="allow">
    <address-range from="203.0.113.0" to="203.0.113.255" />
  </ip-filter>
</inbound>
ConcernPolicy or feature
Who is callingvalidate-jwt against Microsoft Entra, OAuth 2.0 / OpenID Connect, client certificates for mutual TLS, or subscription keys for low-assurance cases
How much they may callrate-limit-by-key and quota-by-key
From whereip-filter, plus network mode — external or internal virtual network injection, or a private endpoint
What they may seevalidate-content and validate-headers for schema enforcement, and outbound transformation to strip internal detail
How APIM reaches the backendA managed identity, with secrets held in Key Vault as named values
Generative AI backendsThe LLM policies — llm-token-limit, llm-emit-token-metric, llm-content-safety and the semantic cache pair. See the AI deep dive.

Subscription keys are not identity either

An APIM subscription key says which subscription is calling, not who. When a scenario demands per-user authorisation, role-based access to specific operations, or a token that expires, the answer is validate-jwt with Microsoft Entra — the subscription key is a rate-limiting and metering handle, not an authentication mechanism.

Skill 3 checklist

  • Encryption at host for a customer-managed key with no agent; Azure Disk Encryption only when BitLocker or dm-crypt is named; confidential VM when the host must be untrusted.
  • Bastion Premium for session recording and private-only deployment; AzureBastionSubnet at /26 or larger; SKUs upgrade but never downgrade.
  • JIT is Defender for Servers Plan 2 and edits NSG and firewall rules — it does not remove public IPs.
  • Agentless scanning comes with Defender CSPM or Servers P2; agentless malware scanning is P2 only; it runs every 24 hours.
  • Integrity monitoring needs vTPM needs trusted launch.
  • Machine Configuration for in-guest settings; Azure Policy for resource properties.
  • AKS: Entra plus Azure RBAC for Kubernetes, and disable local accounts, or the back door remains.
  • ACR: disable the admin user, use AcrPull, and remember quarantine and content trust are Premium.
  • Access restrictions and private endpoints are inbound; virtual network integration is outbound.
  • WAF: Detection first, tune with exclusions and custom rules, then Prevention.

Next: Skill 4, where all of this becomes telemetry.