Defender for Cloud — posture as a score
Security work has a measurement problem: "are we secure?" has no yes. Microsoft Defender for Cloud answers a tractable question instead — how does this estate compare against a checklist of known-good configuration? — and renders the answer as the secure score: a percentage, built from recommendations it continuously evaluates against everything in the subscription. Storage accounts allowing public access, VMs missing patches, vaults without purge protection, subscriptions with too many owners: each finding docks points, each fix earns them back, grouped so that the identity findings (usually the heaviest) sit at the top.
The score's real value is political as much as technical. Security investment is famously hard to argue for — its successes are invisible — but a number that was 43 and is now 71 is a progress bar leadership can read, and the recommendation list under it is a pre-prioritised backlog with the reasoning attached. Treat it as a score you can argue with: some recommendations will not apply to you (a dev subscription need not meet production bars), and Defender lets you exempt them with a documented reason — which is not cheating; it is the argument, recorded. The free tier of this posture management costs nothing and is on by default; the paid Defender plans add active threat detection per workload type — including the Class Twenty-Six image scanning on ACR — and are a per-workload cost decision, not an all-or-nothing one.1
The same engine renders a second view that matters more to auditors than to engineers: the regulatory compliance dashboard. It maps the estate against named frameworks — the Microsoft Cloud Security Benchmark by default, and ISO 27001, PCI-DSS, SOC 2 and their kin once assigned — and shows pass or fail per individual control, with the failing resources listed beneath each. When an auditor asks to see that encryption is on everywhere, this is the screen that answers in an afternoon instead of a fortnight of spreadsheet archaeology. Read a green control as evidence you are ready to be audited, not as proof you passed one2 — the dashboard demonstrates control coverage; a real audit still wants scope, interviews, and paperwork it cannot see. The paid Defender plans behind the secure score are the active-detection layer, chosen per workload — Defender for Servers, for Containers (the Class Twenty-Six image scanning), for Storage, for Key Vault, for Databases — each a monthly per-resource charge that buys threat alerts on top of the free posture assessment, turned on where a workload is worth the watch rather than thrown estate-wide.
Play it through
Three minutes, two drags. Fix a finding and watch the score move for real. Exempt one instead and watch it vanish from the list without the risk going anywhere. It plays on its own and stops when it needs your hands.
Supply chain — watching what you build on
Campux's storefront is Campux's code plus a few hundred packages written by strangers, built on base images assembled by other strangers. That inheritance is the supply chain, and it is where modern compromises actually arrive — not through your firewall but through a dependency's. Four scanners, all sitting in the GitHub estate you built in Phase Three, watch it — and the code you write on top of it — continuously:
- Dependabot
- Reads your dependency manifests, cross-references every package version against known CVEs, raises an alert per finding — and can open the fix PR itself, version bump ready for review. Your Class Twenty-Two CI then proves the bump breaks nothing, which is the quiet payoff of having CI at all.
- Code scanning
- Static analysis — GitHub's engine is CodeQL — reads your own code for vulnerable patterns: injection paths, unsanitised input reaching a query, secrets handled carelessly. It runs as a Class Twenty-Two workflow on every pull request, so the finding arrives as a review comment before the flaw merges — the cheapest moment any security bug will ever be fixed.
- Secret scanning
- Scans the repository — history included — for strings shaped like credentials, and push protection blocks the commit at push time, before the secret enters history at all. The Class Seventeen lesson made mechanical: the only good place to catch a committed secret is before it commits.
- Image scanning
- Defender inspects every image pushed to ACR against known vulnerabilities — Class Twenty-Six's rot problem, watched. The finding is almost never your code; it is a base-image layer, and the fix is the container discipline: rebuild on an updated base and redeploy.
Notice what all four have in common: they are free or nearly free to enable, and enabled once. The work is not running them — machines run them — but triaging what they find, which is why the Class Thirty lesson applies verbatim: an unowned scanner alert channel becomes wallpaper in a month. Route findings somewhere owned, and treat "Dependabot PR merged within a week" as a team habit with the same standing as code review.
These four belong to a taxonomy interviewers name, worth holding as a set. Dependabot is SCA — software composition analysis, reading the dependencies you inherited. CodeQL is SAST — static application security testing, reading your source code at rest. Secret scanning and image scanning round out what can be checked without running anything. The category none of them covers is DAST — dynamic application security testing, which probes the running application for flaws that surface only at runtime, and which is not a GitHub switch but a stage you add: a tool such as OWASP ZAP fired at a deployed test environment. That split — scan the code at rest, then probe it running — is the shape you rebuild in Class Thirty-Nine on Azure DevOps Pipelines, where the security checks are stages that fail the build exactly as a failing test does. The idea under all of it is shift-left: run every check as early as it can run, because a finding on a pull request costs a review comment and the same finding in production costs an incident.
Defence in depth, and the line Microsoft won't cross
Everything so far has hardened one layer at a time: a vault for secrets, a score for posture, scanners for the supply chain. Step back and the pattern has a name — defence in depth — and a premise: every layer you own will, eventually, fail, so you arrange several so that the failure of any one is caught by the next. The first thing to fix in place is which layers are even yours. Moving to Azure does not hand your problems to Microsoft; it relocates the line between their responsibility and yours. Microsoft owns the datacentre, the physical host, the hypervisor, the physical network — you will never patch a hypervisor, and that is the trade. Everything above the line — identity, data, network configuration, the application — stays yours to hold.
The line's position is not fixed; it slides with the service model from Class Four. On a virtual machine you patch the guest OS; on App Service the platform patches the OS and you own only the app and its configuration; on a SaaS mailbox you own almost nothing but the data and who may read it. The most expensive misreading in this work is assuming the provider covers a layer they explicitly do not — because when a storage account leaks, Azure did its job. The disk was encrypted, the datacentre locked; the public-access toggle you left on sat above the line. The provider secures the building; you lock the room.
| Layer | IaaS · VM | PaaS · App Service | SaaS |
|---|---|---|---|
| Physical host & datacentre | Microsoft | Microsoft | Microsoft |
| Guest OS & patching | You | Microsoft | Microsoft |
| Runtime & middleware | You | Microsoft | Microsoft |
| Network configuration | You | You (limited) | Microsoft |
| Identity & access | You | You | You |
| Data & its exposure | You | You | You |
Identity and data stay yours at every tier — which is why this class spends most of its budget there — but the middle layers move, and the network is the one worth walking in full, because it is where the earlier classes stack into a wall. Read it from the internet inward. DDoS Protection absorbs volumetric floods at the edge before they reach anything you pay for. A Web Application Firewall (WAF), riding on Front Door or Application Gateway, inspects HTTP for the injection and scripting patterns CodeQL catches in your code — but at runtime, for traffic you did not write. Azure Firewall governs what your subnets may reach outbound, the exfiltration path most designs forget to close. Network security groups are the per-subnet, per-NIC allow-lists. And private endpoints (Class Fourteen) take the PaaS services off the public internet entirely, so the storefront reaches its database over a private address that never leaves the VNet. No one of these is security; stacked, they are.
The provider secures the building. You lock the rooms.
Cloud security posture — Zero Trust and the CNAPP
The secure score in §1 answered a checklist question one finding at a time. The frontier past that list has a name the industry has settled on and interviewers now expect — Zero Trust — and it is three sentences, not a product. Verify explicitly: every request authenticates and is authorised on its own merits — identity, device health, location checked at the door each time — rather than trusted because the caller is already inside the network. Use least privilege: Part I's pipeline audit and privileged-identity work, in space and in time, is this principle already built. Assume breach: design as though an attacker is already inside, which is precisely the premise under the defence in depth of §3 — segment the network, bound the blast radius, log everything, so the breach you assume is one you can see. The old model trusted a perimeter and let anything inside roam; Zero Trust deletes the idea of "inside."
The tools that operationalise this split into two jobs worth naming precisely, because the acronyms are interview currency — and Azure's answer folds them into one product you have already been driving.
- CSPM
- Cloud security posture management — the misconfiguration half. Is this storage account public, is MFA on, is encryption set? Defender's free posture tier and its secure score are CSPM; you met it in §1 and owe it nothing more here.
- CWPP
- Cloud workload protection platform — the runtime half. Is this VM running something that looks like a miner, is this container calling a known-bad address? Defender's paid per-workload plans (also §1) are CWPP: detection on the living workload, not the config at rest.
- CNAPP
- Cloud-native application protection platform — the two folded into one pane, so a posture finding and a runtime alert can be reasoned about together. Defender for Cloud is Azure's CNAPP; a job posting that lists the word is describing what this whole class taught, under one label.
The reason folding them together earns its keep is the feature that changes how you triage: attack-path analysis, built on Defender's cloud security graph. A flat list treats "VM has a public IP", "VM's identity can read the storage account", and "storage account holds customer data" as three separate medium findings you may never reach. The graph connects them into one sentence — an internet-exposed VM can reach the crown-jewels storage through its own identity — and ranks that path above a hundred isolated items, because it is the one an attacker actually walks. Posture stops being a backlog to burn down and becomes a set of chains to break at their cheapest link: drop the public IP and the whole path is severed.
An attacker walks paths, not lists.
Two operational choices sit under all this. Workload scanning comes agent-based — a Defender agent runs on the machine, giving deep, live runtime signal at the cost of something to deploy, patch, and account for on every VM — or agentless, where Defender snapshots the disk out of band and scans the copy, seeing installed packages and secrets with zero footprint on the workload but without the live process view. Mature estates run both: agentless for universal coverage, agents where the running picture earns its keep. And none of it is Azure-only — Defender connects AWS accounts and GCP projects and renders one secure score across all three, which is the actual job, since almost no real estate is single-cloud. The frontier, in one line: not "we scan our resources" but "we can see the paths an attacker would walk across every cloud we run, and we break them in priority order."
DevSecOps, past the scanners — policy as code and provenance
The §2 scanners find problems; policy-as-code stops the problem from ever deploying, by writing the rule as a machine-checked gate instead of a wiki page nobody reads. Two gates, at two layers, worth telling apart. Azure Policy (Class 8) sits at the ARM control plane: a policy that denies any storage account with public access, or audits any resource missing a required tag, is evaluated when the resource is created or changed, and the non-compliant deploy is refused by Azure itself before the resource exists. Gatekeeper — the Kubernetes admission controller built on OPA (Open Policy Agent) — sits one layer in, at the AKS API server: when a pod is applied, Gatekeeper checks it against policy and rejects it at kubectl apply if it runs privileged, pulls from an untrusted registry, or omits resource limits. Azure Policy governs the Azure resource; Gatekeeper governs what runs inside the cluster — and Azure Policy for AKS is Microsoft's managed Gatekeeper, so the two meet. The shared idea: the rule is code, versioned and reviewed like any other grant of power, and enforcement is automatic rather than a reviewer's memory.
The rule is code, or the rule is a rumour.
The same shift-left instinct reaches back into the Bicep and Terraform of Classes 20 and 21. IaC security scanning — Checkov, tfsec, or Microsoft's PSRule — reads the template before apply and fails the pipeline on the public storage account, the unencrypted disk, the NSG open to the world, catching in a pull request what Defender would otherwise surface in production a week later. It is a stage you add to the Class 39 pipeline exactly like a test: the plan is scanned, the build goes red on a high finding, the misconfiguration never reaches an environment. Policy-as-code and IaC scanning are the same lesson at two moments — one refuses the bad deploy at the platform, the other at the pipeline — and defence in depth wants both.
The four scanners watched what you depend on; the supply chain's other half is proving what you ship. Three nouns carry it, and they belong together as a set.
- SBOM
- Software bill of materials — a manifest of every component inside an artifact, so that when the next Log4j lands you answer "are we affected?" with a query against the SBOM instead of a week of archaeology.
- Signed artifacts & provenance
- The build signs its output (cosign, Notary) and records how it was built, so a consumer can verify the image came from your pipeline and not a substitute slipped in transit. SLSA is the industry ladder of maturity for exactly this provenance — a level you can be measured against.
- Dependency pinning
- Lockfiles, and pinning by digest rather than a mutable tag, close the gap where latest silently becomes something else overnight. What you tested is what you ship, because the version cannot move underneath you.
Together they answer the question the §2 scanners cannot: not "is what I depend on known-bad" but "is what is running actually what I built." Two closing moves finish the discipline. First, rotation as machinery, not memory: Key Vault carries rotation policies and fires Event Grid events on expiry, so a certificate or key rotates on a schedule and its dependents are notified rather than surprised — and at the top end, secret scanning can auto-revoke a leaked credential with the provider the instant it is detected, so detection response stops being a human paging a human. Second, the part no tool ships: DevSecOps is a culture before it is a pipeline. Shift-left is a team practice, not a product — security folded into design review, threat modelling done while the feature is still a diagram and cheap to change, a security champion embedded in the team rather than a gate bolted on at the end, and the blameless-postmortem discipline that makes people report the near-miss instead of hiding it. The tools in this class raise the floor; the culture decides whether anyone treats the red build as a real failure or a switch to override. Security as everyone's job is not a poster — it is who gets asked, and when.
The posture story you tell in interviews
"Tell me about security in your last environment" is a question most candidates answer with a product list, which is exactly as convincing as answering "are you healthy?" with the contents of a medicine cabinet. The strong answer is a posture story with a shape: where the secrets live (a vault, RBAC'd, referenced by managed identity — nothing stored in code, settings, or pipelines); how you know your standing (a score, its trend, and the exemptions you argued); what watches the code and its supply chain (four scanners, each with an owner); and what bounds the blast radius (a least-privilege audit, run on a calendar). Four sentences, each backed by something you can screen-share — and the senior version adds two more that separate a candidate from the pack: that you triage attack paths rather than finding lists (§4), and enforce the rules as code at the platform rather than by review after the fact (§5).
End the story the way honest security people do: with the residual risk, named. "The workflow files are still the most powerful text in the company, which is why they get the strictest review" — or whatever your estate's true soft spot is. Naming your own weakness, unprompted, is the highest-credibility move available in a security conversation, because it proves the posture is something you maintain rather than something you recite.3 Auditors, interviewers, and incident retrospectives all reward the same voice — Class Twenty-Three's auditor conversation taught it, and it transfers everywhere.
The 11pm secret, finally laid to rest
Class Nine told the story in passing: a Campux engineer, at 11pm, committed a storage key to the repository, and the "fix" was deleting the line — which, as Class Seventeen later made painfully clear, removes nothing from history. The key has been valid ever since. Nobody exploited it; nobody could prove nobody had. This class runs the full treatment, in the right order. Rotate first: the exposed key is regenerated, and the window of exposure is documented — commit date to rotation date, twenty-two months, a number that makes the room quiet. Then prevent recurrence: secret scanning finds two more forgotten strings in history (both rotated); push protection turns on, and the next 11pm mistake bounces at push time instead of entering history.
Then remove the reason it happened: a Key Vault per application, secrets loaded by reference through each app's managed identity, and the storage key that started it all is no longer in anything — the storefront's identity fetches it from the vault, and rotation is a vault operation the app never notices. Dependabot, code scanning, and image scanning switch on the same week, each finding routed to an owner per Class Thirty's rule. Defender's secure score reads 43 percent the day it is enabled — which is not a crisis but a baseline, and Situation 01 is the meeting where Campux decides what to do about it. The engineer who committed the key, for the record, still works there; the postmortem blamed the missing guardrails, not the tired human. That sentence is also part of the posture.
The official page, and a CAMPUX overview
What is Microsoft Defender for Cloud?
learn.microsoft.com/azure/defender-for-cloud/defender-for-cloud-introduction
A first read of a 43-percent secure score, Dependabot opening a fix PR on a known-vulnerable dependency, and a walk through the cloud security graph tracing one exploitable path will live here. Video to be added.
Turn on the scanners, then feed one a known-bad dependency
Enable GitHub's four scanning protections, then deliberately add a dependency with published CVEs and watch Dependabot raise its hand.
In the repository: Settings → Advanced Security. Enable Dependabot alerts and Dependabot security updates.
What to notice: two switches — one to be told about vulnerable dependencies, one to let the robot open the fix PR itself. Free for public repositories, and among the highest-value clicks in this bootcamp.On the same page, enable Secret scanning and Push protection — and under Code scanning, choose CodeQL's Default setup.
What to notice: secret scanning covers existing history (the 11pm-secret problem); push protection guards the future — a recognised credential pattern in a push gets bounced with an explanation before it ever becomes the history Class 17 taught you is forever. The code-scanning switch quietly commits a CodeQL analysis that will now read every pull request's diff for vulnerable patterns in your own code.Feed the scanner: on a branch, add a requirements.txt declaring an old, known-vulnerable package version, and merge it:
echo "requests==2.19.0" > requirements.txt git add requirements.txt git commit -m "Add (deliberately old) dependency for lab" git push
What to notice: requests 2.19.0 is years old with published CVEs — a stand-in for the dependency your real project quietly pinned in 2023 and forgot.Wait a few minutes, then open the repository's Security tab → Dependabot alerts.
The lesson: alerts, each naming the CVE, its severity, and the version that fixes it — and if security updates are on, a ready-made PR bumping the pin. Merge the fix PR (your Class 22 checks run against it, which is the whole DevSecOps loop in one screen), then delete requirements.txt to leave the repo clean. Total cost: zero. Total excuse for not enabling this anywhere you work: also zero.
Zoom out: security is a property of the whole pipeline, not a gate at the end
You can turn on scanning and push protection. Now reason about what security does as a system, because a control bolted on at the end is a control teams learn to route around.
A late security review blocks a ready release, so teams learn to route around it, so security becomes the enemy of shipping and gets skipped. What moves the check early enough to help rather than block?
Every deploy depends on the weakest link — a leaked key, an unpatched base image, an over-broad role; defence in depth assumes each layer will sometimes fail.
The posture's ceiling is its worst-held secret and its most-forgotten patch; a high secure score with one public container is still a breach.
Push protection that blocks the 3am secret also blocks the emergency paste; the friction is the point, and the design is deciding where it is worth it.
A blameless-postmortem culture scales trust; a blame culture teaches people to hide incidents, which is how small ones quietly become large.
The engineer who ships is asked "is it secure?" The engineer who gets promoted is asked "and what happens the day a layer fails?" — and built the next layer to catch it.
Treating the scanner like a failing test
A dependency scanner flags a known-vulnerable library before the code ever ships. Because security moved left into the pipeline, the fix is a pull request on a Tuesday, not an incident in production. You treat the scanner's output like a failing test — because that is exactly what it is — and the vulnerability never reaches a customer.
Examination
Four drills, then two situations. The situations have no marking scheme — write your answer before you reveal the reasoning, or the exercise is worthless. Nothing is stored; this is between you and the page.
Flag known-bad dependencies, block secrets at the door, scan image layers. The two rejects mark the scanners' honest edges. All three tools work from databases of known problems — published CVEs, recognised credential shapes — so a zero-day in a dependency or an unusual secret format walks past them; "no alerts" means "nothing known found", never "nothing wrong". And detection is not remediation: a secret already in history is compromised the moment it landed, and the only fix is rotation — the scanners' job is making sure there is no next one, which is exactly the order the case file ran. Know what your tools cannot do; it is the half of the posture story that makes the other half credible.
C — identity and data never move, whatever the tier. Table 1 draws the line service model by service model: on App Service, Microsoft patches the guest OS and the runtime, and network configuration is only partly yours; identity and access, and the data and its exposure, sit on your side of the line at every tier — VM, PaaS, or SaaS. A, B, and D are exactly the layers PaaS takes off your plate, which is the entire appeal of PaaS over IaaS. The costly misreading this drill guards against: assuming a "managed" platform covers a layer it never claimed. A managed platform moves the line; it never erases it, and the two rows that never move are the two that matter most.
B — the misconfiguration half and the runtime half, in one pane. CSPM asks "is this configured well" — Defender's free posture tier and its secure score, unchanged since §1. CWPP asks "is this workload actually doing something malicious right now" — the paid per-workload plans, watching the living process rather than the config at rest. CNAPP is the fold: one pane where a posture finding and a runtime alert can be reasoned about together, and where the cloud security graph can connect them into an attack path. A, C, and D invent mechanics the acronym never claimed. Say it back this way in an interview and the acronym stops being jargon and starts being the thing you already built.
# review: AKS deployment gate
1. Azure Policy denies any storage account created with
public network access enabled.
2. Gatekeeper policies are written once at rollout and
left alone, since OPA enforces them automatically
from then on.
3. Gatekeeper rejects a pod at kubectl apply if it runs
privileged or omits resource limits.
4. The CI pipeline scans the Terraform plan with tfsec
before apply, failing the build on a high finding.
Line two — policy-as-code is not policy-set-once. "OPA enforces it automatically" is true and beside the point: automatic enforcement only guarantees the rule still runs, not that it is still the right rule. A policy written for last year's threat model, an exception nobody revisited, a typo that quietly widened what "privileged" means — none of these are caught by the engine that enforces them, only by a human reviewing the rule the way §5 asks you to review any other grant of power. The distractors are each wrong the other way: Azure Policy denying at creation is exactly what the ARM control plane does (A); Gatekeeper explicitly checks privilege, registry, and resource limits together (C); and IaC scanning belongs precisely in the pipeline, as a stage that fails the build like a test (D). Write the rule as code, then treat the code like code — reviewed, versioned, occasionally wrong.
First, defuse the number. Forty-three percent on day one is not a crisis; it is a baseline — every estate that enables Defender for the first time scores in this neighbourhood, because the checklist is long and nobody was being graded before. The alarming framing to correct is "we are 57 percent insecure"; the accurate framing is "we now have a prioritised, continuously-updated list of hardening work, which yesterday we did not." Leadership's alarm is fuel — spend it on a cadence, not a panic sprint.
The first points come from identity and exposure, and Defender already knows it. The score weights recommendations by impact, and the heavy items cluster predictably: MFA and excess Owner roles on the subscription (the single largest block in most estates, and hours of work, not weeks); anything publicly exposed that should not be — storage accounts with public access, management ports open to the internet, databases without firewall rules; and missing platform hygiene like encryption settings and vault purge protection. Work the list by points per hour: the top ten findings routinely carry a third of the missing score. Some of Campux's items will already be done — the Phase Three OIDC work and Class Twenty-Eight's policies score points the moment Defender notices them — which is worth showing leadership early: the score rises in week one, and momentum is a security control too.
Then run it like the alerting review, not like a death march. Triage the 140 into three piles: do (real findings, assigned owners, tracked like any backlog), argue (recommendations that do not apply — the dev subscription need not meet production bars — exempted with documented reasons, which Defender supports precisely so the score stays honest), and defer (real but low-impact, revisited quarterly). Set the target as a trend, not a number — "ten points a quarter" beats "100 percent by Q4", because the last points cost more than they protect, and a score chased for its own sake produces exemption abuse and checkbox theatre. The sentence for leadership: the score is the compass, the exemptions are the argument, and the trend is the deliverable.
Answer the literal question honestly, not defensively. "Ninety-two percent means the estate matches a checklist of known-good configuration well; it does not mean 'secure' in the way the question implies." A single public endpoint above the shared-responsibility line, one exemption argued for convenience rather than necessity, or one path an attacker could actually walk — from an exposed VM, through an over-permissioned identity, to a storage account holding customer data — can all sit underneath a green dashboard, because the score aggregates checklist items, not the exploitable route between them.
Then show you know the frontier past the checklist. The move that separates a senior answer from a recitation is naming attack-path analysis: triaging the connected chain the cloud security graph draws, rather than trusting the flat eight percent still outstanding, is what actually tells you whether the headline number reflects reality. And name the exemption risk specifically — a high score built on liberal use of "does not apply" is a number, not a posture, and the two look identical on a dashboard.
Close with the residual risk, unprompted. "And the sentence I would add without being asked is the one that separates a real answer from a recitation — here is the thing that still worries me, and here is what bounds it." That is the answer that gets the nod: a number, its limits named before anyone else names them, and the risk you are still watching.
Five things worth carrying out of this class
- Defender's secure score makes posture legible: a baseline, a prioritised backlog, and exemptions-with-reasons. The score is the compass, the trend is the deliverable — first points come from identity and public exposure.
- The code and its supply chain get four scanners — Dependabot, code scanning (CodeQL) on every pull request, secret scanning with push protection, image scanning — cheap to enable, useless without owners. Detection is not remediation: committed secrets get rotated, always.
- Defence in depth stacks the layers you own, because the shared-responsibility line moves with the service model but identity and data never cross it — a high score with one public endpoint above the line is still a breach.
- Zero Trust is three sentences, not a product: verify explicitly, use least privilege, assume breach. CNAPP folds CSPM and CWPP together so attack-path analysis can rank one exploitable chain above a hundred isolated findings.
- Policy-as-code (Azure Policy, Gatekeeper) and provenance (SBOM, signed artifacts, pinning) prove what runs is what you built — but the rule is still code someone must review, and the posture story ends with your residual risk, named out loud.
- Defender for Cloud's packaging shifts more than most Azure products — the free posture tier, the per-workload paid plans, and the names of both have all changed before and will again. As this class ships, the paid plans carry per-workload names — Defender for Servers, Defender for Containers, Defender for Storage, and their siblings — which are worth holding as interview nouns even if the labels have drifted by the time you say them. Treat the architecture as stable (free continuous posture assessment plus opt-in paid threat protection per workload type) and check current plan names and prices before quoting them in a meeting. The secure score's exact arithmetic also evolves; the direction — weighted, argue-able, trend-tracked — is the durable part. ↩
- Two honest limits on the compliance picture. The shared-responsibility table in §3 is a summary, not a contract — the authoritative split lives in Microsoft's shared-responsibility documentation, shifts by service, and moves over time, so read it for the service you actually run rather than trusting any tidy grid, this one included. And Defender's regulatory-compliance dashboard shows control coverage, not legal compliance: a screen full of green means you are ready to be audited against a framework, not that you have passed an audit, which still wants scope, evidence, and interviews the dashboard cannot produce. ↩
- This class covers the security work a platform engineer owns day to day; it is not a security curriculum. Threat modelling, penetration testing, SIEM operations (Microsoft Sentinel — which runs on the Class 28 workspace and speaks Class 29's KQL), and incident forensics are their own disciplines with their own careers. The honest boundary to know and say: you are building the estate that makes a security team's job possible, not replacing the team. ↩