Zero Trust Architecture Explained: Replacing Network Perimeters with Identity-Based Security

Zero Trust Architecture Explained: Replacing Network Perimeters with Identity-Based Security

For twenty years, enterprise security was built around a wall. Inside the wall was trusted; outside it was hostile. Firewalls, VPNs, bastion hosts and segmented data centres all enforced one assumption: if a request came from inside, we can relax.

That assumption stopped being true roughly when work stopped happening inside. Now an engineer opens a laptop at home, authenticates to a Kubernetes cluster, triggers a pipeline from a phone, and checks a finance dashboard that has never touched company hardware. There is no meaningful "inside" left to defend.

Zero trust architecture is the industry's answer. It is not a product and not a technology you can switch on. It is an architectural posture — a set of decisions about where trust comes from, how access is granted, and what happens when assumptions break.

A note on terminology. "Zero trust" does not mean "trust nothing." It means no implicit trust. Every request is evaluated explicitly, from a known subject, against a specific resource, using current context. Trust can absolutely still be established — it is simply never granted for free by network location.

Table of Contents

Why the Perimeter Died

The castle-and-moat model worked when the valuable things sat inside a building you controlled. That stopped being true for three separate reasons, and any one of them alone would have broken it.

1. The asset location dissolved. SaaS platforms, public cloud, containers and managed databases mean critical systems now live outside the corporate network. Google described this shift explicitly in its BeyondCorp work: instead of building a VPN around a data centre, Google moved the trust boundary to the individual access transaction.

2. Lateral movement became cheap. Once an attacker is inside, a flat internal network is a gift. Scanning, credential reuse and SSH pivoting move through it in minutes.

3. Credentials became the perimeter. Industry incident reporting has consistently pointed at compromised credentials — stolen passwords, session tokens, API keys — as one of the most common initial access vectors. If identity is what attackers steal, identity has to be what is continuously verified.

Caution: Zero trust is frequently sold as a way to remove the VPN. In practice, replacing a VPN with ZTNA without also fixing machine identity, device posture and application-level authorization just moves the flat network one layer up.

What Zero Trust Actually Means

The term is generally credited to John Kindervag at Forrester, who introduced it around 2010 as Beyond the Perimeter: The New Era of Network Security. The definition that later became canonical comes from NIST Special Publication SP 800-207, published in August 2020:

Zero trust assumes there is no implicit trust granted to assets or user accounts based solely on their physical or network location (i.e. local area networks versus the internet) or based on asset ownership (enterprise or personally owned).

Three phrases in that sentence carry the entire architecture:

  • No implicit trust. Location is not evidence. An IP inside the corporate range tells you which NAT device sat behind a router, nothing more.
  • Assets and accounts, not network segments. The unit of protection is the resource — a database, an API, a bucket, a workload — not a VLAN.
  • Discrete, pre-session checks. Authentication and authorization are separate functions performed before a session is established, covering both the subject (user or workload) and the device.

Public-sector adoption then accelerated the vocabulary. CISA and NSA published a maturity model organized around five pillars — Identity, Devices, Networks, Applications and Workloads, Data — plus three cross-cutting capabilities: Visibility and Analytics, Automation and Orchestration, Governance. In January 2022, the U.S. Office of Management and Budget issued M-22-09, pushing federal agencies toward a defined set of zero trust capabilities.

The Six Tenets of NIST SP 800-207

SP 800-207 defines a zero trust architecture as one where the following conditions hold:

  1. All data sources and computing services are resources. Not just the crown-jewel database — the feature-flag service, the internal wiki, and the build cache are resources too.
  2. All communication is secured, regardless of whether it is internal or external, and regardless of the network or the source/destination it originates from.
  3. Access to individual enterprise resources is granted per session. Not per day, not per VPN connection — per session.
  4. Access to enterprise resources is determined by dynamic policy, weighing identity, device state, resource sensitivity and situational context.
  5. Monitor and measure the integrity and security posture of all enterprise assets.
  6. All resource authentication and authorization is dynamic and strictly enforced before access.

Read them as a set, not a checklist. The operational consequence of tenets 3, 4 and 6 combined is that standing privilege should be the exception. A long-lived group account that can reach production at any hour is a structural zero trust violation even when it sits behind an authenticating VPN.

Perimeter Security vs Zero Trust

Dimension Traditional perimeter Zero trust
Basis of trust Network location, IP range Identity, device state, context
Access granularity Whole subnet or segment Individual resource or API call
Authentication Once, at the perimeter (VPN) Every session, continuously re-evaluated
Internal traffic Trusted by default Authenticated and authorised like anything else
Lateral movement Blocked only if segmentation was perfect Constrained by microsegmentation and per-resource policy
Time-bound privilege Rare — admins often have permanent access Just-in-time, with automatic expiry
Visibility Perimeter logs Full identity-to-resource telemetry

The Core Logical Components

SP 800-207 models zero trust as three cooperating logical components. Separating deciding from enforcing is the single most important idea in the model.

How a zero trust access request flows from subject to resource

The Policy Engine (PE)

The PE makes the decision. It combines authenticated identity, the requested resource, device and environment signals, and organizational policy into an allow / deny / step-up outcome. Its internal logic — the trust algorithm — pairs a policy component with a criteria component. This is where you decide whether a contractor on an unmanaged laptop at 02:00 gets the same access as an employee on a managed device at 10:00. The PE never touches traffic itself.

The Policy Administrator (PA)

The PA executes the decision. On an allow it establishes whatever communication path is needed — provisioning a credential, activating a tunnel, issuing a short-lived certificate. On a deny it tears the path down. The PEP never decides anything; it only obeys.

The Policy Enforcement Point (PEP)

The PEP sits at the resource. It intercepts the request, forwards decision inputs to the PE, and then either permits or blocks. In practice the PEP is concrete: a service mesh sidecar, an API gateway, a cloud-native access proxy, or a host firewall.

Here is what that looks like as an actual policy decision, written in Rego for an OPA-style policy engine:

package zerotrust.access

default decision := {"allow": false, "reason": "default deny"}

# Access is granted only when every signal is satisfied.
decision := {"allow": true, "reason": "ok"} if {
    input.subject.mfa_phishing_resistant == true
    input.subject.device.managed == true
    input.subject.device.patch_age_days < 30
    input.subject.device.disk_encrypted == true
    input.resource.sensitivity in {"internal", "confidential"}
    input.context.risk_score < 0.40
    input.context.hour_of_day >= 6
    input.context.hour_of_day < 22
}

# Step-up authentication instead of a hard deny.
decision := {"allow": false, "action": "step_up", "reason": "re-auth required"} if {
    input.subject.device.disk_encrypted == false
}

Note the shape: default deny, and every allow is composed of individually testable predicates.

Building Blocks You Can Deploy Today

You do not need a vendor platform to make progress. Most teams get meaningful results from these six controls.

1. Strong, phishing-resistant identity

Multi-factor authentication is table stakes. The meaningful step up is phishing-resistant MFA — FIDO2/WebAuthn passkeys or hardware security keys — because it defeats the push-fatigue and adversary-in-the-middle attacks that make OTP-based MFA bypassable. Pair it with short-lived access tokens instead of long-lived API keys, token binding where your stack supports it, and eliminating implicit trust between internal services.

2. Machine identity, governed like human identity

Service accounts, API keys and CI/CD credentials outnumber human users in most environments. In Kubernetes, SPIFFE identities issued by SPIRE give every workload a cryptographically verifiable identity, so a pod proves what it is rather than where its IP says it is. Combined with the mTLS that already exists in most service meshes, this gives you mutual authentication you did not have to build yourself.

# Confirm a workload's identity and certificate validity
openssl s_client -connect payments.production.svc:8443 \
  -servername payments.production.svc </dev/null 2>/dev/null \
  | openssl x509 -noout -subject -issuer -dates

3. Device posture

Device identity should be attested, not declared. Modern posture signals — disk encryption, screen lock, OS version, patch age, EDR agent heartbeat — feed the policy engine. A user can pass MFA from a compromised laptop; posture checks catch exactly that case.

4. Microsegmentation

Segment at the workload level, not the subnet level. In Kubernetes the primitive is NetworkPolicy, and a default-deny baseline is the single highest-leverage change most clusters can make:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: payments
spec:
  podSelector: {}
  policyTypes:
    - Ingress
    - Egress

Important: Kubernetes NetworkPolicy objects are inert unless a network plugin that actually enforces them is installed. Most vanilla clusters ship with a CNI that ignores them entirely. Confirm enforcement — for example with Calico or Cilium — before you assume you have segmented anything.

5. Just-in-time, least privilege

Replace standing administrative access with temporary elevation: requested, approved (optionally automatically), granted for a bounded window, revoked automatically. The win is not convenience — it is that the number of identities able to reach production at 03:00 drops to approximately zero.

6. Continuous evaluation

A decision made at login is stale within minutes. Signals such as user behaviour, device posture change, resource sensitivity and threat intelligence should feed back into decisions during a session. This is where most implementations stop short, and it is where "assume breach" actually pays off: reduce the time an attacker has to move laterally, rather than pretending compromise cannot happen.

ZTNA and SASE: Where Zero Trust Lives in 2026

Two acronyms dominate vendor conversations, and it helps to know exactly where each one sits.

ZTNA (Zero Trust Network Access) — also called SDP, software-defined perimeter — is the access layer. Instead of routing a user onto a network and letting them reach whatever is there, a ZTNA broker grants per-application, identity-aware connections to individual resources. With no network-level tunnel into the corporate range, unauthorized services are simply invisible.

SASE (Secure Access Service Edge) converges networking and security into a cloud-delivered service: SD-WAN for connectivity plus SSE (Security Service Edge) for protection.

Capability Traditional VPN ZTNA / SDP
What you get A route into the network A connection to one application
Discovery Internal hosts are scannable Unauthorised resources are invisible
Lateral movement Easy inside the tunnel Each destination policy-checked
Session duration Often long-lived Typically short, re-evaluated

Software-defined perimeter architecture showing SDP hosts and controllers

Source: "Software Defined Perimeter Architecture" by Brent Bilger, public domain, via Wikimedia Commons.

The market direction is clear. Gartner has predicted that by 2028, 50% of new SASE deployments will be based on single-vendor platforms — up from roughly 30% in 2025 — with 70% of SD-WAN purchases coming as part of those offerings. Vendor analyst briefings have also cited a shift toward sovereign SASE, where data residency and regional control of the security plane become buying criteria.

The honest caution: single-vendor convergence is a procurement trend, not a security guarantee. Evaluate how a platform behaves when its own control plane is unreachable, and confirm what your policy model can and cannot express.

Workflow of a software-defined perimeter access request

Source: "Software Defined Perimeter Workflow" by Brent Bilger, public domain, via Wikimedia Commons.

The Non-Human Identity Blind Spot

Most zero trust programs were designed for people logging in from laptops. Three categories of actors were retrofitted afterwards, and they are where a lot of residual risk now lives:

  1. Service accounts and API keys — often standing, long-lived and unscoped, provisioned once and never reviewed.
  2. CI/CD pipelines — build agents routinely hold broad cloud credentials, so a compromised dependency becomes a compromised cloud account.
  3. AI agents and automation — the genuinely new category. Gartner has projected that by 2028 roughly a third of enterprise software applications will include agentic AI, up from well under one percent in 2024. Agents act autonomously, at machine speed, across many systems — and most identity platforms were never built to attest what an agent is or constrain what it may do once authorized.

Treat every non-human identity with a scope, an expiry, an owner and an audit trail.

Real-World Example: Securing a Hybrid Kubernetes and SaaS Estate

Consider a mid-size company with ~400 employees and three realities: an on-premises office with 60 staff and a legacy ERP system that cannot be moved, a Kubernetes platform in the cloud running internal services, and a stack of SaaS tools (ticketing, source control, finance, HR).

Under the perimeter model, VPN access to the office subnet is effectively full trust: from there an attacker reaches the ERP, and from the ERP, laterally toward the platform. Let us walk through applying zero trust.

Step 1: Inventory subjects, resources and data flows

You cannot write a policy for a resource you have not listed. Build an asset inventory across all three environments and classify by sensitivity rather than by department.

Resource Sensitivity Allowed subjects
ERP production Restricted Finance team, managed device, business hours
Kubernetes API server Restricted Platform team, JIT elevation, SSO + hardware key
Internal HR dashboard Confidential All employees, any device
Source control (SaaS) Confidential Engineering org members, managed device
Finance SaaS Restricted Finance team only, step-up auth

Step 2: Establish the PEP layer

Deploy enforcement points at every resource type, not just the network edge: a service mesh (Istio, Linkerd or Cilium) for east-west traffic, an identity-aware proxy for SaaS and legacy on-prem applications, and a cloud-native access broker for Kubernetes admin surfaces.

Step 3: Phishing-resistant MFA, and retire the static VPN

Replace OTP push with passkeys or hardware keys. The VPN survives as a compatibility path for the ERP only, scoped to a single host, with session recording.

Step 4: Default-deny at the workload layer

Apply the NetworkPolicy from earlier across namespaces, then open only the flows the table above describes. Expect breakage — that breakage is your real dependency map, and it is worth more than any documentation exercise.

Step 5: Just-in-time elevation for privileged paths

Platform engineers no longer hold a permanent cluster-admin role. They request a time-boxed elevation that grants an impersonation-style role for 60 minutes and auto-revokes it.

Server rack in a data centre environment representing on-premises estate being segmented

Source: EFTA00002518, Federal Bureau of Investigation, public domain, via Wikimedia Commons.

The result

Same request, two policy outcomes

Both requests arrive over the same connection. The difference is entirely in the policy inputs.

Beware of the false positive. Step-up authentication and risk-based denial are only acceptable to users if exceptions are fast. Build a break-glass path and a request-a-review workflow in the same sprint as the restriction, or you will simply teach people to work around the system.

A Practical Adoption Roadmap

Zero trust fails when attempted as a single big-bang replacement. A staged model works far better.

Stage Focus Typical outcome
0 — Baseline Inventory subjects, assets and flows; classify data You know what you are protecting
1 — Identity Phishing-resistant MFA everywhere, MFA on all admin paths Removes the cheapest attack path
2 — Machines Workload identity, short-lived secrets, no static keys Non-human access becomes attributable
3 — Visibility Central logs for every identity-to-resource event You can prove what happened
4 — Segmentation Default-deny east-west and east-north-south Lateral movement gets expensive
5 — Continuous Risk-based step-up and session revocation Decisions adapt during the session

Two practical rules: measure before and after. Track the number of standing privileged accounts, the age of your longest-lived credentials, and the number of distinct paths from a user laptop to production. And automate the boring parts — manual policy review is where zero trust programs quietly stall.

Common Pitfalls to Avoid

  1. Buying a product instead of changing posture. A ZTNA gateway in front of a flat network delivers a flat network with a login screen.
  2. Treating network diagrams as obsolete too early. Segmentation is still useful; it is just no longer a trust boundary, only a containment tool.
  3. Ignoring non-human identities. Service accounts and CI credentials are usually the widest hole.
  4. Confusing authentication with authorization. Strong MFA does nothing if every authenticated user can still reach every resource.
  5. Deploying posture checks with no remediation path. A check that only ever denies is a support queue, not a security control.
  6. Assuming the model is finished. Zero trust is a direction, not a project with a launch date.

Key Takeaways

  • Zero trust is an architectural posture defined by NIST SP 800-207, not a product or a certification.
  • The unit of protection is the resource and the access transaction, not the network segment.
  • Policy Engine, Policy Administrator and Policy Enforcement Point separate deciding from enforcing — the PEP never decides.
  • The practical levers are phishing-resistant MFA, governed machine identity, default-deny microsegmentation, just-in-time privilege and continuous evaluation.
  • ZTNA and SASE are delivery architectures for that posture; microsegmentation and workload identity do most of the actual work underneath.
  • Non-human identities — service accounts, CI pipelines and now AI agents — are where most residual risk concentrates.

Frequently Asked Questions

Is zero trust the same as least privilege? No. Least privilege is one of several tenets — it limits what an authorized subject can do. Zero trust also governs how trust is established, when it is re-evaluated, and what happens when it was granted incorrectly. Least privilege without continuous verification is just careful over-provisioning.

Does zero trust mean never trusting anything? No. Trust is established explicitly for a specific subject, resource, session and time window, using verifiable signals. The change is that trust is an output of the policy engine rather than an inherited property of the network.

Do we need to get rid of our VPN? Usually not immediately. A VPN can remain as a scoped, identity-bound access path for legacy systems. The goal is that a VPN session no longer confers broad network-level trust.

Is zero trust a compliance framework? No. It is an architecture. Frameworks such as the CISA/NSA pillars or OMB M-22-09 describe how to mature toward it, and commercial "compliance" claims against SP 800-207 are vendor assessments, not third-party certifications.

How do we start when we already have hundreds of services? Start with identity and visibility, then segment one high-value namespace or service tier at a time with default-deny. Attack-path reduction is cumulative, and an environment with three segmented zones is meaningfully safer than one with none.

Does Kubernetes NetworkPolicy give me microsegmentation on its own? No. It gives you the declarative API; you still need a network plugin that enforces it, plus identity-aware policy if you want decisions to follow workload identity rather than pod labels alone.

  • Mastering Security Fundamentals: A Comprehensive Guide to Cybersecurity Basics — the foundational concepts zero trust builds on
  • OAuth 2.0 and OpenID Connect Explained — the identity layer your policy engine depends on
  • Supply Chain Security in DevOps — securing the CI/CD identities that zero trust must govern
  • Service Mesh Explained — the practical deployment vehicle for mutual authentication and east-west policy

Comments

Popular Posts

CORS Explained: The Complete Guide to Cross-Origin Resource Sharing, Preflight Requests and Secure API Access

Kubernetes Gateway API: The Future of Ingress and Service Mesh Routing

SQLite Explained: Why the World's Most Deployed Database Powers Modern Apps