Security 12 November 2024 13 min read

Zero Trust in Kubernetes: From Network Policies to Service Mesh

Organizations implementing Zero Trust in containers see 57% fewer attacks. We explore practical implementation with Calico, Linkerd, and cloud-native security patterns.

Zero TrustKubernetesSecurityService MeshNetwork Policy
Digital security lock concept with circuit patterns
FLY:D on Unsplash

The traditional network security model—trust everything inside the perimeter, suspect everything outside—has failed catastrophically in the cloud-native era. Containers spin up and down in seconds, services communicate across dynamic networks, and the perimeter itself has dissolved. Zero Trust architecture offers a compelling alternative: never trust, always verify, and assume breach.

The Case for Zero Trust in Kubernetes

Red Hat's 2024 State of Kubernetes Security Report provides stark evidence: organizations implementing Zero Trust principles in container environments experienced 57% fewer successful attacks compared to those using traditional security models.

Kubernetes is inherently declarative, which makes it well-suited for Zero Trust. Administrators define desired state—which pods can communicate, what processes can run, what files can be accessed—and the platform enforces it. But this capability is underutilized. Many clusters run with default-allow network policies and overly permissive RBAC, negating Kubernetes' security potential.

Zero Trust architecture operates on the assumption that threats exist both outside and inside the network. Unlike traditional security models that rely on perimeter defenses, Zero Trust assumes no entity—internal or external—should be trusted by default.
CNCF Zero Trust Guidance

Implementation Layers

Zero Trust Components for Kubernetes

Network Policies

Default-deny with explicit allow rules between pods

RBAC

Principle of least privilege for service accounts

Pod Security Standards

Restrict container capabilities and privileges

Service Mesh

mTLS for all service-to-service communication

Workload Identity

Cryptographic identity for every workload

Runtime Security

Detect and prevent anomalous behavior

Network Policies: The Foundation

The Kubernetes Network Policy resource is surprisingly underused. A default-deny policy—blocking all pod-to-pod traffic except explicitly allowed connections—is the foundation of Zero Trust networking.

default-deny-policy.yaml
# Default deny all ingress and egress
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: production
spec:
  podSelector: {}
  policyTypes:
    - Ingress
    - Egress

Then, for each legitimate communication path, create allow policies. This inverts the traditional model: instead of blocking known-bad traffic, you only permit known-good traffic.

Calico and Cilium: Beyond Basic Policies

Native Kubernetes Network Policies have limitations—no egress rules to external IPs, no DNS-based rules, no application-layer filtering. CNI plugins like Calico and Cilium extend the model significantly.

Calico implements identity-aware microsegmentation, dividing workloads into security segments and applying policies that prevent lateral movement. Cilium goes further with eBPF-based enforcement at the kernel level, enabling Layer 7 visibility without sidecar proxies.

Service Mesh for mTLS

Palo Alto Networks' 2024 State of Cloud-Native Security Report found that organizations using service mesh experienced 62% fewer network-based attacks. The key capability is automatic mTLS—encrypting all service-to-service traffic with cryptographic identity verification.

Linkerd offers a particularly lightweight approach. Its sidecar-based mesh provides workload identity and policy enforcement with minimal resource overhead. Traffic between services is encrypted and authenticated without application changes.

linkerd-auth-policy.yaml
# Linkerd authorization policy
apiVersion: policy.linkerd.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: api-to-database
  namespace: production
spec:
  targetRef:
    kind: Server
    name: database
  requiredAuthenticationRefs:
    - name: api-service
      kind: ServiceAccount

RBAC: The 64% Reduction

According to the 2024 Security Benchmark Report, organizations with properly configured RBAC reduced security incidents by 64% and experienced 47% faster incident remediation. But 71% of enterprises struggle to maintain appropriate RBAC configurations over time.

The challenge is drift. As applications evolve, permissions accumulate. Regular auditing—reviewing which service accounts have which permissions and whether those permissions are still needed—is essential but often neglected.

The 2025 Landscape

Aviatrix's November 2025 launch of the Cloud Native Security Fabric (CNSF) represents the next evolution: Zero Trust enforcement embedded in the cloud network layer itself, without agents or application changes. Every workload—VM, container, function—gets identity-aware policy enforcement across AWS, Azure, GCP, and OCI.

This addresses a gap in current approaches. Service meshes and CNI plugins work within Kubernetes; cloud-native security fabrics extend Zero Trust across the entire cloud estate, including legacy VMs and serverless functions.

Our Perspective

For government agencies and enterprises we work with, Zero Trust isn't optional—it's mandated by security frameworks like Essential Eight and NIST 800-207. The question is implementation approach.

My recommendation: start with Network Policies. They're native to Kubernetes, require no additional tooling, and establish the default-deny posture that Zero Trust demands. Add a service mesh for mTLS once inter-service communication patterns are understood. Layer on advanced CNI capabilities (Calico, Cilium) for egress control and application-layer policies.

The common failure mode is trying to implement everything at once. Zero Trust is a journey, not a product. Start with network segmentation, mature to identity-based policies, and continuously audit and refine.

Tell us about your project

Our Offices

  • Canberra
    ACT, Australia