Free lesson 1: Zero Trust Architecture: From Castle-and-Moat to Verified Access

Most small company networks still work like a castle: one strong wall at the edge, one gate for remote staff, and everything inside trusts everything else. Zero trust replaces the question "are you inside?" with a better one, asked on every request: "who are you, on which device, in what context, and what exactly may you reach?" This lesson gives you the map of zero trust architecture, the NIST SP 800-207 vocabulary architects use, and a fully worked migration of a 25-person firm to a zero trust target design โ including the access policy table that drives it.
- 12lessons in the course
- 3core NIST components
- 9rows in the worked access policy table
- ~22 minreading time for this lesson
This course teaches architecture and defence with fictional organisations and documentation addresses (RFC 5737). Only test or change systems you own or are explicitly authorised to work on, and plan production changes with the people who run them โ a badly ordered rollout can lock a company out of its own tools.
Why the castle-and-moat network stopped working
The classic small company network grew organically: a firewall at the internet connection, a flat office LAN, file and accounting servers in a cupboard, a NAS for backups, printers, cameras, and a VPN for home working. Its security model is simple โ outside is hostile, inside is trusted. Once you are on the LAN, by cable, Wi-Fi or VPN, the network stops asking questions. That model fails in three predictable ways.
1. One stolen credential opens the whole network
A VPN places the remote device on an internal segment. An attacker who phishes one VPN password arrives with the employee's full network reach โ on a flat network that means every server, the backup NAS and the admin pages of switches and printers. The VPN checked identity once, then handed out network access instead of access to specific applications.
2. Lateral movement is the default
Inside a flat network, a compromised laptop can talk to every device on every port. Ransomware operators rely on this: one machine first, then discovery, credential theft and spreading to file servers and backups โ the Lateral Movement tactic in MITRE ATT&CK. Any-to-any traffic offers no friction and no signal.
3. The work left the building
Mail and files moved to SaaS, staff work from anywhere, phones carry company data. Protecting the "inside" protects a shrinking part of the business.
Key terms
Implicit trust is trust granted because of where a request comes from rather than what has been verified about it. Zero trust is a set of principles that removes it: access is granted per request and per resource, based on verified identity, device state and context. Zero trust architecture (ZTA) is the enterprise design โ components, policies, data flows โ that applies those principles.
What zero trust is โ and what it is not
Marketing has stretched the term until it means almost anything, and a fuzzy goal produces a fuzzy project. Zero trust is not a product you install; it is a property your access decisions either have or lack.
- "We trust nobody" โ then nobody could work. Trust is granted, but explicitly, narrowly and for a limited time.
- "Buy the product and you are done" โ products provide enforcement points; policies, identity hygiene and device management are your work.
- "It replaces the firewall" โ network controls remain; they stop being the main trust decision.
- "MFA everywhere is zero trust" โ without device state, least privilege and per-resource decisions, login still opens every door.
- Every request is evaluated per resource, not per network.
- Decisions use identity, device posture and context and a written policy.
- Access is least privilege and time-limited, re-evaluated when signals change.
- Everything is logged, and logs improve decisions.
A useful test for any proposed design: pick a resource and ask, "If an attacker is already on the same network segment, what still stops them?" If the honest answer is "nothing, they are inside", the design still relies on implicit trust for that resource.
The NIST SP 800-207 model: policy engine, administrator and enforcement point
The most widely referenced vendor-neutral description is NIST Special Publication 800-207 (2020). Its value is a shared vocabulary: whatever you buy, you can describe your design with three logical components.
- Policy Engine (PE)decides: grant, deny or revoke access, using policy plus signals
- Policy Administrator (PA)executes: opens or closes the path, issues session credentials
- Policy Enforcement Point (PEP)enforces: sits in the path, allows, monitors and terminates sessions
Engine and administrator together form the policy decision point (PDP) in the control plane; the user's traffic flows through the data plane, past the PEP. A PEP can be an identity-aware proxy, a ZTNA gateway, an API gateway, a service mesh sidecar or a host agent โ but all should take orders from one consistent decision source, not carry private rule sets.
The seven tenets in plain language
SP 800-207 lists seven tenets. In our own words, each with the design question it forces:
| # | Tenet (paraphrased) | Design question |
|---|---|---|
| 1 | All data sources and services are resources. | Are the NAS, printer admin pages and SaaS tenant on your list? |
| 2 | All communication is secured, wherever it runs. | Is LAN traffic encrypted and authenticated too? |
| 3 | Access is granted per session, per resource. | Does one sign-in open one app or the whole network? |
| 4 | Dynamic policy decides: identity, application, device state, other attributes. | Which signals does each decision read today? |
| 5 | The posture of all assets is monitored. | Would you notice disk encryption being switched off? |
| 6 | Authentication and authorisation are dynamic and enforced before access. | Does a session survive a disabled account? |
| 7 | State information is collected and used to improve. | Which policy changed because of the logs last quarter? |
The standard describes ZTAs led by enhanced identity governance, microsegmentation or software-defined perimeters (apps hidden behind brokers). Real designs mix them; small firms usually lead with identity.
The map: pillars of a zero trust architecture
NIST names the components but not where to start. For planning, the CISA Zero Trust Maturity Model (version 2.0) uses five pillars โ identity, devices, networks, applications and workloads, data โ plus three cross-cutting capabilities: visibility and analytics, automation and orchestration, governance. Each pillar moves through the stages Traditional, Initial, Advanced and Optimal at its own pace. This course follows that map.
| Pillar | The question it answers | Lesson |
|---|---|---|
| Identity | Who is asking, and how strongly is that proven? | 3, 5 |
| Devices | Is the device known, managed and healthy right now? | 4 |
| Networks | What can reach what, and what does a breach reach? | 6, 7 |
| Applications & workloads | How do services prove who they are to each other? | 8 |
| Data | What is sensitive, where is it, who may do what with it? | 9 |
| Visibility, automation, governance | Do we see, react and decide consistently? | 10โ12 |
Start with the protect surface, not the attack surface. The attack surface is too big to reason about; the protect surface is the short list of data, applications, assets and services whose loss would really hurt. Every zero trust decision should trace back to it.
Worked example: turning a 25-person firm's castle into a zero trust design
Scenario (fictional). Alpenblick Treuhand is a fiduciary and accounting firm with 25 staff, two partners and an external IT provider. It holds tax returns, payroll data and bank statements for several hundred clients โ a small business with a large data responsibility. Today it is the castle on the left of Figure 1:
| Component | Today | Why it worries the architect |
|---|---|---|
| Network | Flat LAN; guests know the staff Wi-Fi password | A guest phone can reach every server |
| Remote access | VPN, password only, shared with the IT provider | One phished password = full network reach |
| Accounting app | On-premises, own logins, database on the same server | No MFA, reachable from every LAN device |
| Client archive | File server, one share, everyone read/write | One infected laptop can encrypt every client folder |
| Mail and files | SaaS suite, SMS codes for some users | Codes can be phished in real time |
| Backups and logs | NAS on the same LAN; firewall logs overwritten after days | Backups one hop away, no evidence, no signals |
The method in seven steps
- Define the protect surface. Client data, the accounting application, the SaaS tenant, backups, and the admin accounts that control them. Five items โ everything else serves them.
- Map the transaction flows. Who talks to each item, from where, on which port? You cannot write least-privilege rules for flows you have never seen (second example below).
- Fix identity first. One identity provider with single sign-on for the SaaS suite and, via a ZTNA broker, the accounting app. Phishing-resistant MFA (passkeys or security keys), partners and admins first. Named accounts for the IT provider.
- Make devices a signal. Enrol company laptops and phones; "compliant" means supported OS, disk encryption, screen lock, endpoint protection running. Private laptops get browser-only mail.
- Replace the VPN with per-app access. A ZTNA connector in the office dials out to the broker; the accounting app and archive are published individually. No inbound port stays open.
- Segment what stays on the LAN. Staff, servers, printers and IoT, cameras, admin; guests on their own Wi-Fi. Default deny between segments.
- Write the policy table, enforce and log it. One row per access path, each naming its enforcement point and log source. No row, no access.
The access policy table
This table is the heart of the design: readable by a partner, an auditor and the IT provider alike, and it maps one-to-one to configuration. Read each row as "who may reach what, under which conditions, enforced where, recorded how".
| # | Who | Resource | Conditions | Decision and session | Enforced by | Logged in |
|---|---|---|---|---|---|---|
| P1 | All staff | Mail and files (SaaS) | MFA | Compliant device: full. Unmanaged: browser only, no download | Identity provider | Sign-in log |
| P2 | Finance, partners | Accounting app | Compliant laptop, phishing-resistant MFA | This app only; re-check on device or risk change | ZTNA broker | Broker log |
| P3 | Staff, by client team | Client archive | Compliant device, MFA | Own team's folders only | Broker + file permissions | Broker, file audit |
| P4 | IT admins (named) | NAS, server, firewall, identity admin | Admin workstation, phishing-resistant MFA, approved JIT request | Time-boxed, expires automatically | Identity provider + admin segment | Elevation, admin audit |
| P5 | External IT provider | Listed systems | Named account, phishing-resistant MFA, ticket | Approved window only | ZTNA broker | Broker log + ticket |
| P6 | Staff devices | Printers | Print port only | Print; admin pages from admin segment | Segment firewall | Firewall log |
| P7 | Cameras, recorder | Anything | Isolated segment | Vendor updates only; viewed from admin segment | Segment firewall | Firewall log |
| P8 | Guests, private devices | Internet | Guest Wi-Fi, client isolation | Internet only | Wi-Fi + firewall | Firewall log |
| P9 | Anyone | Anything not listed above | โ | Deny | Every enforcement point | All logs; reviewed monthly |
Notice what is not in the table: there is no row that says "VPN users may reach the office network". Every row grants one kind of access to one resource. Row P9 โ the default deny โ is what turns a list of permissions into a zero trust policy.
Testing the policy before anyone touches production
Before configuring products, architects test the logic. This standard-library Python script encodes rows P1 to P4 and runs realistic requests through them. It changes nothing; it makes the policy executable, so the partners see each rule's effect before anything is configured.
# zt_policy.py - evaluate access requests against a small zero trust policy table
AUTH = {"password": 0, "mfa": 1, "phishing-resistant": 2}
DEVICE = {"any": 0, "unmanaged": 0, "compliant": 1, "admin-workstation": 2}
POLICIES = {
"accounting-app": {"groups": {"finance", "partners"}, "device": "compliant", "auth": "phishing-resistant"},
"client-files": {"groups": {"staff"}, "device": "compliant", "auth": "mfa"},
"webmail": {"groups": {"staff"}, "device": "any", "auth": "mfa"},
"nas-admin": {"groups": {"it-admins"}, "device": "admin-workstation", "auth": "phishing-resistant", "jit": True},
}
def decide(req):
pol = POLICIES.get(req["resource"])
if pol is None:
return "DENY", "no policy for resource (default deny)"
if not pol["groups"] & req["groups"]:
return "DENY", "user not in an allowed group"
if DEVICE[req["device"]] < DEVICE[pol["device"]]:
return "DENY", f"device is {req['device']}, policy needs {pol['device']}"
if AUTH[req["auth"]] < AUTH[pol["auth"]]:
return "STEP-UP", f"signed in with {req['auth']}, policy needs {pol['auth']}"
if pol.get("jit") and not req.get("jit_grant"):
return "DENY", "no active just-in-time grant"
return "ALLOW", "all conditions met"
REQUESTS = [
{"user": "anna", "groups": {"staff", "finance"}, "device": "compliant", "auth": "phishing-resistant", "resource": "accounting-app"},
{"user": "marco", "groups": {"staff"}, "device": "unmanaged", "auth": "mfa", "resource": "webmail"},
{"user": "marco", "groups": {"staff"}, "device": "unmanaged", "auth": "mfa", "resource": "client-files"},
{"user": "lea", "groups": {"staff", "partners"}, "device": "compliant", "auth": "mfa", "resource": "accounting-app"},
{"user": "tom", "groups": {"staff", "it-admins"},"device": "admin-workstation", "auth": "phishing-resistant", "resource": "nas-admin"},
{"user": "tom", "groups": {"staff", "it-admins"},"device": "admin-workstation", "auth": "phishing-resistant", "resource": "nas-admin", "jit_grant": True},
{"user": "anna", "groups": {"staff", "finance"}, "device": "compliant", "auth": "phishing-resistant", "resource": "printer-admin"},
]
for r in REQUESTS:
verdict, reason = decide(r)
print(f"{verdict:8} {r['user']:6} -> {r['resource']:15} {reason}")
Run it with python3 zt_policy.py. This is the output it prints:
ALLOW anna -> accounting-app all conditions met
ALLOW marco -> webmail all conditions met
DENY marco -> client-files device is unmanaged, policy needs compliant
STEP-UP lea -> accounting-app signed in with mfa, policy needs phishing-resistant
DENY tom -> nas-admin no active just-in-time grant
ALLOW tom -> nas-admin all conditions met
DENY anna -> printer-admin no policy for resource (default deny)
Reading the result like an architect
- Marco on his private laptop gets mail but not the client archive: client data stays on devices whose health the firm can see.
- Lea used a one-time code. She is not denied but asked to step up to her passkey โ productive for her, a clear reason in the log.
- Tom is a real admin on a real admin workstation and is still denied until his just-in-time request is approved. Standing admin rights are what attackers hunt for.
- The printer admin page has no policy, so even Anna with the strongest sign-in is refused. Strong authentication never replaces an explicit permission.
A toy, but a professional habit: every decision must be explainable in one line.
Under the hood: one access request, step by step
What happens when Anna opens the accounting application at 08:05 from home? Following one request through the components shows where each control lives โ and where it can fail.
- 08:05:02 โ Request interceptedAnna opens
acct.alpenblick.example. The ZTNA client recognises a published application and sends the request to the broker. - 08:05:03 โ AuthenticateThe broker (the PEP) finds no valid session and redirects the browser to the identity provider via OpenID Connect.
- 08:05:08 โ Phishing-resistant sign-inAnna unlocks her passkey with her fingerprint; the authenticator signs a WebAuthn challenge with a private key that never leaves the device and is bound to the identity provider's domain.
- 08:05:09 โ Signals and decisionThe policy engine reads her groups, the authentication method, the device record (managed, compliant, last check-in 12 minutes ago) and the sign-in risk. Policy P2 matches; the administrator tells the broker to open a path to this one application.
- 08:05:10 โ Data planeLaptop โ broker โ connector (dialled out from the office) โ accounting server. The connector reaches only that server and port.
- 10:40 โ Signal changesEndpoint protection on the laptop stops. The device is no longer compliant; the engine revokes the decision and the broker ends the session.
Every step writes a record. A decision record from such a system looks roughly like this (example record โ field names differ between products):
{
"time": "2026-03-02T08:05:09Z",
"subject": "anna@alpenblick.example",
"groups": ["staff", "finance"],
"auth": {"method": "passkey", "phishing_resistant": true},
"device": {"id": "LT-014", "managed": true, "compliant": true, "last_checkin_min": 12},
"resource": "accounting-app",
"policy": "P2",
"decision": "allow",
"session_ttl_min": 480,
"enforced_by": "ztna-broker"
}
Why the 10:40 step is the hard part
Granting access is easy; revoking it promptly is where designs fall short. If the app only checks a token issued at 08:05 with an eight-hour lifetime, a laptop that turns unhealthy at 10:40 keeps access until 16:05. Three techniques close the gap: short lifetimes for sensitive apps, enforcement points that re-check posture during the session, and event-driven revocation, where the identity or device system pushes signals such as "device no longer compliant" to the enforcement points. The OpenID Foundation's Shared Signals Framework, with its Continuous Access Evaluation Profile (CAEP), standardises such signals; product support varies, so test it.
A one-time code is a secret the user types, and a fake page can relay it within seconds. With a passkey, the browser binds the signed challenge to the site it is really talking to, and the real service checks that binding โ so a relayed sign-in from a look-alike domain fails. SMS and app codes have no such binding.
Second example: map the flows before you segment
Mapping transaction flows is the step most teams skip โ and the reason segmentation projects break printers, scanners and backups on day one. The architect exports a normal week of connection records from Alpenblick's current firewall. Documentation addresses (RFC 5737) stand in for the internal range. Input: an inventory mapping addresses to roles, and the records reduced to source, destination and port.
# hosts.csv # flows.csv (excerpt of one week)
ip,role src,dst,dport
192.0.2.5,file-server 192.0.2.21,192.0.2.5,445
192.0.2.6,accounting-db 192.0.2.22,192.0.2.5,445
192.0.2.9,printer 192.0.2.23,192.0.2.5,445
192.0.2.21,laptop 192.0.2.21,192.0.2.6,1433
192.0.2.22,laptop 192.0.2.22,192.0.2.6,1433
192.0.2.23,laptop 192.0.2.21,192.0.2.9,9100
192.0.2.40,it-pc 192.0.2.40,192.0.2.5,445
192.0.2.50,camera-nvr 192.0.2.40,192.0.2.6,1433
192.0.2.40,192.0.2.21,3389
192.0.2.50,192.0.2.5,445
192.0.2.6,192.0.2.5,445
(Two separate CSV files, shown side by side.) The script groups records by role, because rules are written for roles, not addresses:
# flowmap.py - turn raw connection records into a role-to-role flow map
import csv
from collections import Counter
roles = {row["ip"]: row["role"] for row in csv.DictReader(open("hosts.csv"))}
flows = Counter()
for row in csv.DictReader(open("flows.csv")):
key = (roles.get(row["src"], "UNKNOWN"), roles.get(row["dst"], "UNKNOWN"), row["dport"])
flows[key] += 1
print(f"{'source role':14} {'destination role':16} {'port':>5} {'records':>7}")
for (src, dst, port), n in sorted(flows.items()):
print(f"{src:14} {dst:16} {port:>5} {n:>7}")
Running python3 flowmap.py on these two files prints:
source role destination role port records
accounting-db file-server 445 1
camera-nvr file-server 445 1
it-pc accounting-db 1433 1
it-pc file-server 445 1
it-pc laptop 3389 1
laptop accounting-db 1433 2
laptop file-server 445 3
laptop printer 9100 1
Turning the flow map into decisions
- laptop โ file-server :445, laptop โ accounting-db :1433. Expected, but both move to the ZTNA broker โ also in the office: one path, one policy, one log. (Clients on the database port are a finding in themselves.) Printing on :9100 becomes rule P6.
- camera-nvr โ file-server :445. Nobody expected it: the recorder exports clips to a share. Stop the export, keep cameras isolated (P7). Surprises like this are why you map first.
- accounting-db โ file-server :445. A nightly export. Legitimate need, wrong place: it moves to the NAS with a dedicated backup account.
- it-pc โ laptop :3389. Remote desktop from a normal PC becomes time-boxed support via the broker (P5) or the admin workstation (P4).
What went wrong if you see UNKNOWN? An address is in the records but not the inventory โ an inventory gap or something that should not be there. Write no rule for it until you know.
What stays on the LAN becomes a short default-deny rule set. On a Linux router with nftables (interface names are examples):
table inet office {
chain forward {
type filter hook forward priority 0; policy drop;
ct state established,related accept
ct state invalid drop
iifname "vlan20" oifname "vlan40" tcp dport 9100 accept comment "P6 staff to printers"
iifname "vlan60" oifname { "vlan30", "vlan40", "vlan50" } tcp dport { 22, 443 } accept comment "P4 admin segment"
iifname "vlan30" oifname "wan" tcp dport 443 accept comment "connector dials out to broker"
iifname "vlan50" oifname "wan" ip daddr 203.0.113.10 tcp dport 443 accept comment "P7 camera updates"
iifname { "vlan20", "vlan70" } oifname "wan" accept comment "staff and guests to internet"
counter log prefix "zt-deny " drop comment "P9 default deny"
}
}
Check the syntax without loading it: sudo nft -c -f office.nft prints nothing when the file is valid and an error with a line number when not. The last rule matters most: denied traffic is counted and logged, so the first week tells you exactly which forgotten flow broke.
Common mistakes in zero trust projects
Zero trust projects rarely fail because a product is weak. They fail on order, scope and forgotten edge cases.
Starting with the network instead of identity
Segmenting while everyone still signs in with phishable passwords protects the wrong layer first: an attacker with a valid session walks through the new segments like the user. One identity provider, phishing-resistant MFA and no shared accounts give the largest early gain, and every later control depends on them.
Switching off the VPN in one big step
A weekend cut-over almost always uncovers an unlisted application โ a licence server, a scanner workflow, a vendor tool. Publish apps one by one, run both paths in parallel for a pilot group, watch the deny logs, and retire VPN access per group.
Forgetting emergency access and non-human accounts
Strict rules can lock out the admins who would fix them: keep two tested break-glass accounts that alert on every use. And once human sign-in is hard, attackers go for static service and vendor credentials (lessons 5 and 8).
Troubleshooting: symptoms, causes and fixes
| Symptom | Likely cause | Fix |
|---|---|---|
| MFA prompts many times a day | Separate sign-ins per app; one strict frequency for everything | Single sign-on; frequent re-authentication only for high-risk apps and admin roles |
| Healthy laptop suddenly "non-compliant" | Stale check-in or overdue OS update | Show the reason, short grace period, alert on stale check-ins |
| App works in the office, not at home | Old IP or drive mapping bypasses the broker | Publish by name, remove old mappings, one path everywhere |
| Admin locked out after a new rule | No report-only phase, no emergency account | Report-only first; tested break-glass accounts |
How experienced architects run a zero trust rollout
Professionals do not start with a product shortlist. They start with the business, design on paper, then prove each step on a small group. A typical sequence for a firm like Alpenblick (your timing will differ):
- Phase 0 โ UnderstandProtect surface, inventories, current access paths, decision-makers. Output: a one-page protect surface and a draft policy table.
- Phase 1 โ IdentitySingle sign-on, phishing-resistant MFA (admins and partners first), break-glass accounts, no shared accounts.
- Phase 2 โ DevicesEnrol devices, define compliance, report-only, then require compliance for client data.
- Phase 3 โ Access pathsPublish apps through ZTNA, pilot with finance, run in parallel, retire the VPN group by group.
- Phase 4 โ Network and adminsSegment the LAN from the flow map; admin work on a dedicated workstation with just-in-time elevation.
- Phase 5 โ OperateCentral logs, monthly review of denies and exceptions, quarterly access review, maturity check per pillar.
Heuristics that save weeks
- Report-only before enforce. Most identity platforms can log what a rule would have done. A week of that data beats any design meeting.
- Guard the control plane. Whoever administers the identity provider or broker can rewrite every policy; those roles get the strongest protection.
Thinking errors of experts: network specialists over-trust segmentation; identity specialists forget that a compromised server talks to every neighbour. Almost everyone underestimates discovery.
The defender's view: proving the design works
A policy that is not tested is an assumption. Zero trust gives defenders what a castle never did: many small enforcement points and a log record for every decision.
What to monitor from day one
- Sign-ins: legacy protocols that bypass MFA, newly registered MFA methods (a classic step after account takeover), countries without staff.
- Changes: every change to access rules, broker apps, compliance settings and admin roles alerts a second person.
- Deny spikes (broken workflow or probing) and any break-glass use.
Tests that prove the controls (on your own systems)
| Test | Expected result and evidence |
|---|---|
| Open the archive from an unmanaged test laptop | Denied; log entry names P3 and the device state |
| Stop endpoint protection on an enrolled test device mid-session | Session ends at the next posture check; both events logged with timestamps |
| From guest Wi-Fi, connect to the accounting server | No connection; counted by the default-deny rule |
That is why the example began with identity; in data centre-heavy enterprises, microsegmentation moves up.
Small business or enterprise: same principles, different shape
The tenets do not change with size; the enforcement points and the order of work do.
Lead with identity and the SaaS suite you already pay for โ business plans often include access rules and basic device management, so check your licence tier first. Add ZTNA for the few on-premises apps, separate guest and IoT networks, give the IT provider named, time-boxed accounts. The constraint is people: prefer managed services and simple rules.
Expect several identity sources, thousands of applications and data centres. The design needs policy ownership, workload identity, microsegmentation of server networks, privileged access management and central telemetry. The constraint is legacy and coordination: migration runs for years, pillar by pillar, and a maturity model keeps the programme honest.
Check yourself: zero trust fundamentals quiz
1. Which statement best describes zero trust?
- No user is ever trusted, so access is always denied
- Access is decided per request and per resource from verified identity, device state and context, without trust based on network location
- A firewall product that replaces the VPN
Show answer
B โ trust is granted, but explicitly and narrowly; zero trust is principles, not a product.
2. In NIST SP 800-207, which component actually decides whether access is granted?
- The policy enforcement point
- The policy administrator
- The policy engine
Show answer
C โ the engine decides; the administrator executes; the enforcement point applies it in the data path.
3. Lea signs in to the accounting app with a one-time code, but the policy requires phishing-resistant MFA. What is the most useful outcome?
- Allow, because she is a partner
- Step-up: ask for her passkey before allowing access
- Lock her account
Show answer
B โ a step-up enforces the policy, keeps her productive and logs a clear reason.
4. Why does the policy table end with a default-deny row?
- It turns a list of permissions into a policy: anything not explicitly allowed is refused and logged
- It is required for the firewall to start
- It makes the table shorter
Show answer
A โ without it, every forgotten path stays open; with it, forgotten paths appear as logged denies.
5. The flow map shows the camera recorder writing to the file server on port 445. What should the architect do first?
- Add an allow rule so nothing breaks
- Ignore it
- Find out why it exists, then decide
Show answer
C โ allowing every observed flow just recreates the flat network as rules.
6. A laptop turns non-compliant two hours into an eight-hour session. Which design element ensures access ends promptly?
- A longer password
- Continuous re-evaluation: posture re-checks or event-driven revocation at the enforcement point
- A new VPN client
Show answer
B โ short lifetimes, posture re-checks and pushed revocation close the gap between "was healthy" and "is healthy".
You can nowโฆ
- Explain why castle-and-moat fails โ one check at the edge, lateral movement inside.
- Define zero trust and ZTA โ and spot common misreadings.
- Name the NIST SP 800-207 components โ policy engine, policy administrator, enforcement point; control and data plane.
- Use the pillar map โ five pillars, three cross-cutting capabilities.
- Write an access policy table โ who, what, conditions, decision, enforcement point, log source, default deny.
- Map flows before segmenting โ and treat unknown or surprising flows as findings.
- Plan a phased rollout โ identity first, report-only before enforce, VPN retired group by group.
- Prove controls with tests โ each with an expected result and log evidence.
Glossary
What's next in this course
- Lesson 2 โ Zero Trust Principles & the NIST SP 800-207 Model: tenets and trust algorithms as design rules.
- Lesson 3 โ Identity as the New Perimeter: SSO, MFA, passkeys and conditional access.
- Lesson 4 โ Device Trust & Posture: what "compliant" should mean.
- Lesson 5 โ Least Privilege & Just-in-Time Access: admin tiers, elevation, reviews.
- Lesson 6 โ Microsegmentation: zones and rules that contain a breach.
- Lesson 7 โ ZTNA Instead of VPN: brokers, connectors, safe migration.
- Lesson 8 โ Workload & Service Identity: mTLS and short-lived credentials.
- Lesson 9 โ Data Classification & Protection: labels, encryption, access to data.
- Lesson 10 โ Logging & Telemetry: trustworthy signals for decisions.
- Lesson 11 โ Architecture Patterns, Threat Modelling & Trade-offs: defence in depth and design errors.
- Lesson 12 โ Capstone & Next Steps: phased migration, maturity model, 20 practice questions.
Lessons 2โ12 and the final course test unlock with a one-time purchase โ no subscription.