The breach began with silence. No alarms, no alerts—just a non-human identity inside a service mesh acting like it belonged. It moved laterally, authenticated without challenge, and gained access to sensitive workloads before anyone saw the pattern.
Service meshes like Istio, Linkerd, and Consul have become the backbone of secure, observable communication between microservices. They offer encryption, traffic control, and policy enforcement at scale. But most attention focuses on protecting human logins. Behind the scenes, the majority of traffic comes from non-human identities—workloads, services, bots—each with permissions that can be exploited if left unchecked.
Non-human identities in a service mesh often hold long-lived credentials. If these secrets leak, attackers can bypass user-level defenses completely. In Kubernetes, for example, service accounts tied to pods can authenticate to the mesh’s control and data planes, letting an attacker impersonate workloads. Without rigorous identity lifecycle management, these accounts persist long after they should be revoked.
Security for non-human identities in a service mesh must start with zero trust principles. Every workload identity should be unique, short-lived, and bound to a verifiable source. Certificate rotation needs to be automated. Service-to-service communication must be authenticated and authorized at both ends, not just encrypted in transit.