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.
The shape of the track¶
At a glance — four 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. 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"]
P1 --> P2 --> P3 --> P4
P1 -.identity broker reused.-> P2
P2 -.access + policy attacked.-> P4
P3 -.controls attacked.-> P4
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 |
Phases & projects¶
The twelve modules run in four 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.
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).