Identity term · last reviewed 2026-08-31
SPIFFE
Also known as: SPIRE, SVID, Secure Production Identity Framework for Everyone
SPIFFE gives workloads cryptographic identity without shared secrets: an agent attests what a workload actually is using platform evidence, then issues a short-lived X.509 or JWT SVID naming it as spiffe://trust-domain/path.
How it works
SPIFFE (Secure Production Identity Framework for Everyone) is a standard for giving workloads cryptographic identity without shared secrets. Each workload receives a SPIFFE ID, a URI of the form spiffe://trust-domain/path, delivered as a short-lived X.509 certificate or JWT called an SVID. SPIRE is the reference implementation: an agent on each node attests what a workload actually is, using platform evidence such as a Kubernetes service account or an AWS instance identity document, and issues an SVID only if the evidence matches a registration entry. Workloads then authenticate to each other with mTLS using those SVIDs.
When it matters
It matters wherever service-to-service authentication is currently done with a long-lived API key or a shared secret in an environment variable, which is most places. The properties that make it worth the operational cost are automatic rotation measured in minutes, no secret to leak, and identity derived from attested platform facts rather than from possession of a credential. It is increasingly proposed as the identity layer for AI agents, on the argument that an agent is a workload and should carry a workload identity rather than a borrowed human one. See Identity for AI Agents and Replace Static API Keys.
Common misconceptions
- "SPIFFE is a product." SPIFFE is the specification; SPIRE is one implementation, and service meshes ship others.
- "It replaces OAuth." It authenticates workloads to each other. Delegated user authorization is a different problem and still needs OAuth 2.0.
- "Attestation is automatic." SPIRE only issues an SVID for a registered workload. The registration entries are the security policy, and a sloppy selector grants identity to anything on the node.
Explained in depth