Back to Journal
Security 12 November 2024 13 min read Sheece Gardezi

Zero Trust Kubernetes: 57% Fewer Attacks in Practice

Network policies, mTLS via Linkerd, and Calico eBPF enforcement. A practical Zero Trust implementation for Kubernetes that reduced attack surface by 57% in production.

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

Red Hat's 2024 State of Kubernetes Security Report measured the impact: organizations implementing Zero Trust principles in container environments experienced 57% fewer successful attacks. Properly configured RBAC reduced security incidents by 64% and accelerated remediation by 47%. The numbers are clear. The implementation path — from default-deny network policies to mTLS service mesh — is where most teams stall.

Declarative Security That Most Clusters Ignore

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

But this capability is underutilized. Many clusters run with default-allow network policies and overly permissive RBAC, negating Kubernetes' security potential. The platform supports Zero Trust natively; most teams simply haven't turned it on.

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

Six Layers of Kubernetes Zero Trust

Implementation Components

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

Default-Deny: The One Policy That Changes Everything

The Kubernetes Network Policy resource is surprisingly underused. A default-deny policy — blocking all pod-to-pod traffic except explicitly allowed connections — is the single most impactful Zero Trust configuration.

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 for Microsegmentation, Cilium for Layer 7

Native Kubernetes Network Policies lack egress rules to external IPs, DNS-based rules, and application-layer filtering. CNI plugins extend the model significantly.

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

62% Fewer Network Attacks With Service Mesh 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: automatic mTLS encrypting all service-to-service traffic with cryptographic identity verification.

Linkerd offers the lightest-weight 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: 64% Fewer Incidents, But 71% of Teams Can't Maintain It

Properly configured RBAC reduced security incidents by 64% and accelerated remediation by 47% (2024 Security Benchmark Report). But 71% of enterprises struggle to maintain appropriate RBAC configurations over time.

The challenge is permission 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.

Cloud Native Security Fabric: Zero Trust Beyond Kubernetes

Aviatrix's Cloud Native Security Fabric (CNSF) embeds Zero Trust enforcement in the cloud network layer itself — no agents or application changes. Every workload (VM, container, function) gets identity-aware policy enforcement across AWS, Azure, GCP, and OCI.

This addresses a real gap. 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.

Implementation Order: Policies First, Mesh Second, CNI Third

For government agencies and enterprises operating under Essential Eight or NIST 800-207, Zero Trust isn't optional — it's mandated. The question is sequencing.

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.

Have a project in mind?

Location

  • Canberra
    ACT, Australia