Zero Trust & Security Architecture: Design, Segment, Verify

Design zero trust from the ground up: identity, device trust, microsegmentation, ZTNA, workload identity, data protection and a phased migration

Read the free first lesson below โ€” 12 lessons ยท CHF 9.90 one-time

12 lessons ยท knowledge checks ยท final exam ยท verifiable certificate

Unlock all 12 lessons ยท CHF 9.90 one-time Open in the course reader

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

22 min read ยท lesson 1 of 12 ยท free, no sign-up

Central shield with a keyhole linked to six verified nodes, each marked with a check, inside concentric trust rings
Free lesson ยท Security Engineering ยท Zero trust architecture

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
Castle-and-moat network compared with a zero trust design Left: a network surrounded by a single perimeter with a VPN gate; inside, the file server, accounting system, NAS, laptops and printers can all reach each other. Right: a user with a device passes through a separate policy enforcement point in front of each resource, and every enforcement point asks a central policy decision that weighs identity, device and context. Castle and moat File serverAccounting NASLaptops Printers, IoT VPN Remote user โ†’ VPN gate โ†’ whole LAN one check at the edge, implicit trust inside Zero trust Policy decision identity ยท device ยท context User + device PEPPEPPEP AccountingClient filesNAS admin Every request is checked, per resource network location alone earns no trust
Figure 1. Left: passing the VPN gate once reaches everything inside. Right: each resource has its own policy enforcement point (PEP), and every PEP asks one policy decision.

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.

Common misreadings
  • "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.
A working definition
  • 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.

NIST SP 800-207 logical components A subject sends a request through a policy enforcement point to an enterprise resource on the data plane. Above the enforcement point, the policy decision point consists of the policy engine and the policy administrator on the control plane. The enforcement point asks the policy engine, and the administrator instructs the enforcement point. At the bottom, five signal sources feed the policy engine: identity provider, device management, threat intelligence, activity logs and SIEM, and access policy rules. Policy Enginedecides Policy Admin.executes control plane PDP = PE + PA Subjectuser + device PolicyEnforcement Point Enterpriseresource requestdata plane askinstruct Identity providerDevice postureThreat intelLogs / SIEMPolicy rules signal sources feed the trust algorithm in the policy engine
Figure 2. The NIST SP 800-207 logical model: the enforcement point asks, the engine decides, the administrator instructs; signals feed the decision.

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
1All data sources and services are resources.Are the NAS, printer admin pages and SaaS tenant on your list?
2All communication is secured, wherever it runs.Is LAN traffic encrypted and authenticated too?
3Access is granted per session, per resource.Does one sign-in open one app or the whole network?
4Dynamic policy decides: identity, application, device state, other attributes.Which signals does each decision read today?
5The posture of all assets is monitored.Would you notice disk encryption being switched off?
6Authentication and authorisation are dynamic and enforced before access.Does a session survive a disabled account?
7State 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.

PillarThe question it answersLesson
IdentityWho is asking, and how strongly is that proven?3, 5
DevicesIs the device known, managed and healthy right now?4
NetworksWhat can reach what, and what does a breach reach?6, 7
Applications & workloadsHow do services prove who they are to each other?8
DataWhat is sensitive, where is it, who may do what with it?9
Visibility, automation, governanceDo we see, react and decide consistently?10โ€“12
Architect's heuristic

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:

ComponentTodayWhy it worries the architect
NetworkFlat LAN; guests know the staff Wi-Fi passwordA guest phone can reach every server
Remote accessVPN, password only, shared with the IT providerOne phished password = full network reach
Accounting appOn-premises, own logins, database on the same serverNo MFA, reachable from every LAN device
Client archiveFile server, one share, everyone read/writeOne infected laptop can encrypt every client folder
Mail and filesSaaS suite, SMS codes for some usersCodes can be phished in real time
Backups and logsNAS on the same LAN; firewall logs overwritten after daysBackups one hop away, no evidence, no signals

The method in seven steps

  1. 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.
  2. 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).
  3. 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.
  4. 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.
  5. 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.
  6. Segment what stays on the LAN. Staff, servers, printers and IoT, cameras, admin; guests on their own Wi-Fi. Default deny between segments.
  7. 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.
Alpenblick Treuhand zero trust target architecture Staff with managed devices on the left connect to SaaS mail and files and to a cloud ZTNA broker. In the middle, the control plane consists of the identity provider, device management, the policy decision and a log collector. On the right, the office network is split into segments: a ZTNA connector that dials out to the broker, the accounting server, staff devices, printers and IoT, an admin workstation segment and cameras. Guest devices get internet only. Staff managed laptop or phone Guests, BYOD internet only CONTROL PLANE Identity providerSSO ยท passkeys ยท access rules Device managementcompliance signal Policy decisionallow ยท step-up ยท deny Log collectorsign-ins ยท access ยท flows kept for months SaaS mail & files (SSO only) ZTNA broker: per-app access Office LAN, default deny ZTNA connectorAccounting + DB Staff devicesPrinters, IoT Admin PAWCameras enforce dials out
Figure 3. Target architecture. Identity, device management and policy decision form the control plane; SaaS sign-in and the ZTNA broker enforce. The office keeps only segmented networks, and the connector dials out, so no inbound port stays open.

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".

#WhoResourceConditionsDecision and sessionEnforced byLogged in
P1All staffMail and files (SaaS)MFACompliant device: full. Unmanaged: browser only, no downloadIdentity providerSign-in log
P2Finance, partnersAccounting appCompliant laptop, phishing-resistant MFAThis app only; re-check on device or risk changeZTNA brokerBroker log
P3Staff, by client teamClient archiveCompliant device, MFAOwn team's folders onlyBroker + file permissionsBroker, file audit
P4IT admins (named)NAS, server, firewall, identity adminAdmin workstation, phishing-resistant MFA, approved JIT requestTime-boxed, expires automaticallyIdentity provider + admin segmentElevation, admin audit
P5External IT providerListed systemsNamed account, phishing-resistant MFA, ticketApproved window onlyZTNA brokerBroker log + ticket
P6Staff devicesPrintersPrint port onlyPrint; admin pages from admin segmentSegment firewallFirewall log
P7Cameras, recorderAnythingIsolated segmentVendor updates only; viewed from admin segmentSegment firewallFirewall log
P8Guests, private devicesInternetGuest Wi-Fi, client isolationInternet onlyWi-Fi + firewallFirewall log
P9AnyoneAnything not listed aboveโ€“DenyEvery enforcement pointAll 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.

  1. 08:05:02 โ€“ Request interceptedAnna opens acct.alpenblick.example. The ZTNA client recognises a published application and sends the request to the broker.
  2. 08:05:03 โ€“ AuthenticateThe broker (the PEP) finds no valid session and redirects the browser to the identity provider via OpenID Connect.
  3. 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.
  4. 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.
  5. 08:05:10 โ€“ Data planeLaptop โ†’ broker โ†’ connector (dialled out from the office) โ†’ accounting server. The connector reaches only that server and port.
  6. 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.

Why passkeys resist phishing

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

SymptomLikely causeFix
MFA prompts many times a daySeparate sign-ins per app; one strict frequency for everythingSingle sign-on; frequent re-authentication only for high-risk apps and admin roles
Healthy laptop suddenly "non-compliant"Stale check-in or overdue OS updateShow the reason, short grace period, alert on stale check-ins
App works in the office, not at homeOld IP or drive mapping bypasses the brokerPublish by name, remove old mappings, one path everywhere
Admin locked out after a new ruleNo report-only phase, no emergency accountReport-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):

  1. Phase 0 โ€“ UnderstandProtect surface, inventories, current access paths, decision-makers. Output: a one-page protect surface and a draft policy table.
  2. Phase 1 โ€“ IdentitySingle sign-on, phishing-resistant MFA (admins and partners first), break-glass accounts, no shared accounts.
  3. Phase 2 โ€“ DevicesEnrol devices, define compliance, report-only, then require compliance for client data.
  4. Phase 3 โ€“ Access pathsPublish apps through ZTNA, pilot with finance, run in parallel, retire the VPN group by group.
  5. Phase 4 โ€“ Network and adminsSegment the LAN from the flow map; admin work on a dedicated workstation with just-in-time elevation.
  6. 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)

TestExpected result and evidence
Open the archive from an unmanaged test laptopDenied; log entry names P3 and the device state
Stop endpoint protection on an enrolled test device mid-sessionSession ends at the next posture check; both events logged with timestamps
From guest Wi-Fi, connect to the accounting serverNo connection; counted by the default-deny rule
Effort versus risk reduction for first zero trust steps (illustrative) A two-by-two matrix with implementation effort on the horizontal axis and risk reduction on the vertical axis. Phishing-resistant MFA for admins and partners, guest Wi-Fi separation and isolating cameras sit at low effort. Phishing-resistant MFA, device compliance and ZTNA for the accounting app sit high on risk reduction. Just-in-time admin access is in the middle. Data labelling and per-host microsegmentation sit at high effort with medium risk reduction for a small firm. The values are illustrative, not measured. Do firstPlan carefully Quick hygieneQuestion it implementation effort for a small firm โ†’ risk reduction โ†’ Passkeys for admins Device compliance gate ZTNA: accounting app Just-in-time admin Guest Wi-Fi separate Isolate cameras Data labelling Per-host microsegmentation
Figure 4. Where a small firm's first steps tend to fall. Illustrative โ€“ not measured data.

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

Check yourself

1. Which statement best describes zero trust?

  1. No user is ever trusted, so access is always denied
  2. Access is decided per request and per resource from verified identity, device state and context, without trust based on network location
  3. 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?

  1. The policy enforcement point
  2. The policy administrator
  3. 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?

  1. Allow, because she is a partner
  2. Step-up: ask for her passkey before allowing access
  3. 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?

  1. It turns a list of permissions into a policy: anything not explicitly allowed is refused and logged
  2. It is required for the firewall to start
  3. 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?

  1. Add an allow rule so nothing breaks
  2. Ignore it
  3. 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?

  1. A longer password
  2. Continuous re-evaluation: posture re-checks or event-driven revocation at the enforcement point
  3. 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

Zero trustPrinciples that decide access per request and resource, never by network location.
Zero trust architecture (ZTA)The enterprise design that applies those principles.
Policy engine (PE)Decides to grant, deny or revoke access.
Policy administrator (PA)Carries out the decision: opens or closes paths.
Policy enforcement point (PEP)Allows, monitors and ends connections in the data path.
Protect surfaceThe few assets whose loss would seriously hurt.
ZTNAPer-application access through a broker instead of a VPN.
Device postureA device's current security state.
Phishing-resistant MFASign-in a fake site cannot relay, e.g. passkeys.
Just-in-time (JIT) accessPrivileges granted for a limited time on request.
Zero trust is not a product but a habit of design: every access path gets an explicit rule that names who, what, under which conditions, where it is enforced and where it is logged โ€“ and everything else is denied.Lesson 2 turns the tenets and the NIST model into design rules, including the trust algorithm inside the policy engine.

What's next in this course

  1. Lesson 2 โ€“ Zero Trust Principles & the NIST SP 800-207 Model: tenets and trust algorithms as design rules.
  2. Lesson 3 โ€“ Identity as the New Perimeter: SSO, MFA, passkeys and conditional access.
  3. Lesson 4 โ€“ Device Trust & Posture: what "compliant" should mean.
  4. Lesson 5 โ€“ Least Privilege & Just-in-Time Access: admin tiers, elevation, reviews.
  5. Lesson 6 โ€“ Microsegmentation: zones and rules that contain a breach.
  6. Lesson 7 โ€“ ZTNA Instead of VPN: brokers, connectors, safe migration.
  7. Lesson 8 โ€“ Workload & Service Identity: mTLS and short-lived credentials.
  8. Lesson 9 โ€“ Data Classification & Protection: labels, encryption, access to data.
  9. Lesson 10 โ€“ Logging & Telemetry: trustworthy signals for decisions.
  10. Lesson 11 โ€“ Architecture Patterns, Threat Modelling & Trade-offs: defence in depth and design errors.
  11. 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.

Frequently asked questions

What is zero trust architecture?

Zero trust architecture is an enterprise design that removes trust based on network location. Every access request is decided per resource from verified identity, device state and context, follows a written policy, is limited in scope and time, and is logged. It is a set of principles applied through components, not a single product.

What are the policy engine, policy administrator and policy enforcement point?

They are the logical components in NIST SP 800-207. The policy engine decides whether access is granted, denied or revoked. The policy administrator carries out that decision by opening or closing the path and issuing session credentials. The policy enforcement point sits in the data path and allows, monitors and ends connections.

Why is a VPN not zero trust?

A traditional VPN checks identity once at the edge and then grants network-level access, so a stolen credential can reach every system on the internal network. Zero trust network access instead publishes individual applications through a broker and decides each request using identity, device posture and context.

Where should a small business start with zero trust?

Usually with identity: one identity provider with single sign-on, phishing-resistant MFA starting with admins and partners, and no shared accounts. Then make device compliance a condition for client data, publish on-premises apps through ZTNA, segment the office LAN and log every decision.

What is an access policy table in zero trust?

It is a list with one row per access path: who may reach which resource, under which conditions, with which decision and session, enforced where and logged where. A final default-deny row refuses and logs anything not listed, which turns a list of permissions into a zero trust policy.

Why map traffic flows before microsegmentation?

You cannot write least-privilege rules for flows you have never seen. Mapping connection records by role shows expected flows, surprising ones that need investigation and unknown devices. Segmenting without a flow map is the usual reason printers, scanners and backups break on the first day.

Continue with lessons 2โ€“12

One-time purchase, no subscription. Pay as a guest โ€” no account needed.

Unlock all 12 lessons ยท CHF 9.90 one-time Open in the course reader

Course syllabus

Lessons unlock after a single one-time purchase โ€” no subscription. Pricing & FAQ โ†’ ยท All course overviews โ†’