Skip to content

Track 11 — Zero Trust Network Access

The perimeter is dead; identity is the new control plane. Replace "inside the network = trusted" with per-request, identity-aware access — built with open source and cloud-native tools.

What you'll be able to do

  • Explain Zero Trust and SASE beyond the marketing, and where each actually applies.
  • Make identity and device posture the basis for access — with OSS tools and cloud-delivered services.
  • Stand up identity-aware access with no inbound ports using both self-hosted and free managed options.
  • Segment, express policy as code, and monitor a Zero Trust environment.
  • Give workloads a cryptographic identity (SPIFFE/SPIRE) so services authenticate each other with mutual TLS, not network position.
  • Gate privileged infrastructure access (SSH/admin) with short-lived certificates, per-session RBAC, and recorded sessions — no standing keys, no shared bastion.
  • Make data classification an access-control input and detect exfiltration — closing all five Zero Trust pillars (identity, device, network, workload, data).

The shape of the track

At a glance — five phases run as a dependency chain: you derive the principles, stand up identity, then build access on top of it, then segment/govern/monitor, then migrate a legacy VPN and attack your own deployment, and finally close the remaining pillars — privileged access and data. Dashed edges show where a later phase reuses or attacks what an earlier one built.

flowchart LR
    P1["Phase 1 · Principles & identity<br/>01–03 · derive ZT, stand up Keycloak"]
    P2["Phase 2 · Architectures & access<br/>04–06 · no-inbound-ports access"]
    P3["Phase 3 · Segment, govern, monitor<br/>07–09 · Cilium · OPA · Sigma"]
    P4["Phase 4 · Migrate, validate, identity<br/>10–12 · VPN→ZTNA · red-team · SPIFFE"]
    P5["Phase 5 · Close every pillar<br/>13–14 · privileged access · data"]
    P1 --> P2 --> P3 --> P4 --> P5
    P1 -.identity broker reused.-> P2
    P2 -.access + policy attacked.-> P4
    P3 -.controls attacked.-> P4
    P3 -.OPA + Sigma reused.-> P5

Modules

# Module What you'll learn OSS / free tools
01 Zero Trust Principles Why the perimeter failed; the core tenets and the SASE landscape
02 Identity as the Control Plane Authentication, SSO, and authorization; OIDC/SAML federation keycloak
03 Device Trust & Posture Tying access to device health; hardware-bound auth tailscale, headscale, FIDO2/passkeys
04 ZTNA Architectures OSS vs. cloud-delivered patterns and trade-offs
05 SASE & Cloud-Delivered Zero Trust Managed ZT at the edge; when SASE beats self-hosted Cloudflare Zero Trust (free tier)
06 Identity-Aware Access Per-request access with no open ports pomerium, tailscale
07 Microsegmentation Limiting blast radius between workloads cilium
08 Policy as Code Continuous, versioned authorization OPA
09 Monitoring & Detection in Zero Trust What "trust nothing" means for logging sigma
10 VPN → ZTNA Migration Cut a legacy VPN over to ZTNA without an outage wireguard, pomerium
11 Red-team Your Zero-Trust Deployment Attack your own ZT deployment, then regression-check the gaps
12 Workload Identity & mTLS Cryptographic service-to-service identity SPIFFE/SPIRE
13 Privileged Access Short-lived certs, RBAC, and recorded sessions for SSH/infra admin access teleport
14 Data — the Last Pillar Label-based authorization and exfil detection — the 5th NIST pillar OPA, sigma

Phases & projects

The fourteen modules run in five phases; each ends in a project that integrates its modules (a phase is the substantial, standalone unit — a single module is a few hours). Identity-aware proxies touch real access — test only against resources you own.

  • Phase 1 · Principles & identity (01–03) — Project: stand up an identity control plane with Keycloak (OIDC/SAML) and tie access to device posture — passkeys/FIDO2 and a Tailscale/Headscale mesh — with a short written map of the Zero Trust tenets each control satisfies.
  • Phase 2 · Architectures & access (04–06) — Project: publish a lab service with no inbound ports behind an identity-aware proxy — self-hosted (Pomerium/Tailscale) and cloud-delivered (Cloudflare Zero Trust) — and explain the trade-off you'd choose for which use case.
  • Phase 3 · Segment, govern & monitor (07–09) — segment the network with Cilium, govern access with policy as code, and monitor what "trust nothing" means for logging and detection.
  • Phase 4 · Migrate, validate & identity (10–12) — cut a legacy VPN over to ZTNA without an outage, red-team your own deployment and turn the gaps into regression checks, and give each workload a cryptographic identity (SPIFFE/SPIRE). Project: the track capstone — segment the workloads with Cilium, enforce authorization as code with OPA, and prove from the access logs that every request was authenticated and authorised.
  • Phase 5 · Close every pillar (13–14) — gate privileged infrastructure access (SSH/admin) through short-lived certs, RBAC, and recorded sessions with Teleport, then close the fifth NIST pillar — data — by driving authorization from data classification (OPA) and detecting exfil-shaped access (Sigma). These complete the identity → device → network → workload → data pillar set an enterprise buyer expects to see covered end to end.

Scope

This track begins where the perimeter ends: firewall, egress, and network-boundary controls belong to the boundary-focused program — here the boundary is identity, device, workload, and data, enforced per request. It covers the data pillar where Zero Trust owns it — classification-driven access and exfil detection (Module 14). Content-inspection DLP (egress scanning, PII fingerprinting, data fingerprinting) is a data-security/CASB discipline that rides alongside ZTNA in a SASE stack, not a ZTNA control, so it is deliberately out of scope — the same relationship as perimeter/egress controls. Also out of scope (assessed from config, not stood up, where noted): commercial MDM/EDR posture internals, DLP/CASB engines, and physical network segmentation.

Prerequisites

Complete Track 00 — Foundations; Track 05 — Cloud helps.

Build with your own accounts and lab hosts. Identity-aware proxies touch real access — test against resources you own.

Capstone

Publish a lab service with no inbound ports behind an identity-aware proxy (Pomerium or Cloudflare Tunnel + Access), enforce an access policy as code with OPA, and show the access logs that prove every request was authenticated and authorised. Deliverable: the working setup, the policy-as-code, and the audit trail.

Capstone rubric

The service must be reachable with no inbound ports, gated by policy as code, with an audit trail that proves it. Proficient is the bar to ship.

Dimension Developing Proficient Exemplary
No inbound ports Service exposed on an open port Reachable only through an identity-aware proxy/tunnel; no inbound ports External port scan shows nothing open; egress-only tunnel proven
Identity-aware access Single shared credential Per-request access tied to authenticated identity (OIDC/SSO) Device posture or hardware-bound auth (FIDO2/passkey) factored in
Policy as code Policy clicked in a UI Access policy expressed as code (OPA/Rego) and version-controlled Policy is tested — allow and deny cases asserted — least-privilege by default
Audit trail No logs, or logs don't show identity Access logs prove each request was authenticated and authorised A denied-and-allowed pair shown end to end; logs feed a detection
Reproducibility Manual, undocumented setup A reader can stand up the proxy and policy from the committed config One command brings the gated service up; policy change is a reviewed diff

AI & automation

ZTNA is policy-as-code, and AI will happily write the policy — including one that's quietly too permissive. The skill is reviewing generated authorization rules against least privilege before they go live. AI drafts the policy; you prove it denies what it should.

Standards & further reading

  • NIST SP 800-207 (Zero Trust Architecture)
  • CISA Zero Trust Maturity Model
  • The BeyondCorp papers (Google)
  • Gartner SASE framework overview
  • Cloudflare Zero Trust documentation (free tier)
  • Open Policy Agent and Pomerium documentation

Comments

Sign in with GitHub to comment. Choose the type: Feedback (errors or suggestions on this page) · Hints (help for fellow learners — no spoilers) · General (anything else).