SPIRE
SPIRE is software that gives workloads verifiable identities based on where and how they run. It operates SPIFFE identity infrastructure through servers and node agents, so applications can receive short-lived credentials without storing a shared bootstrap secret.
itCloud native tools and technologies | OpenSkills.info
Course pathWalk it in order
Look it upDip in anytime
Go furtherLeaves this page
Don't Panic
Don't Panic — SPIRE
SPIRE is the machinery that gives moving software a name it can prove. A hostname is where something happened to be parked. An IP address is where it was parked five minutes ago. Neither is much help when a workload needs to convince another workload that it is the intended caller and not a very confident refrigerator.
The trick comes from SPIFFE, the identity model SPIRE operates. SPIRE asks two less romantic but more useful questions: is this machine allowed to run an agent, and is this local process the workload it claims to be? The answers come from evidence such as Kubernetes service accounts, cloud instance documents, or local process properties. The resulting properties are called selectors, because naming everything after what it does is apparently still permitted.
A registration entry ties those selectors to a SPIFFE ID. Its parent ID says which agent or node group may host the workload. Its selectors say what must be true locally. When the workload calls the local Workload API, the agent matches the evidence to that entry and returns a short-lived SVID, plus the trust bundle needed to verify peers. This is identity issuance, not permission to delete the database. Authorization still belongs elsewhere.
The surprising part is that the crucial policy is often not in application code. It is in selector scope, parent IDs, key protection, and access to a local socket. A selector that matches too broadly can hand the right identity to the wrong process. An application that treats an SVID like a permanent file has mistaken a rotating credential for a decorative houseplant.
The Server is the trust authority. The Agent lives beside workloads and does the local checking. For an outage-shaped mystery, follow that boundary in order: server readiness, agent connection and node attestation, received registrations, discovered selectors, socket access, then credential rotation and peer validation. Each failure has a different address, which is a small mercy.
Read the Intro for the complete identity path and topology choices. Use Slides for the component map and troubleshooting order. The Cheatsheet is the compact reference when a parent ID, selector, or trust bundle starts behaving like a noun you were expected to know all along. The practice reference then makes the path tangible by registering a Kubernetes workload and fetching its SVID.
Where this skill leads
Relevant careers
See how this topic contributes to broader role-level skill maps.
Sources
- https://spiffe.io/docs/latest/spire-about/
Supports
- Current SPIRE documentation release context
- Official documentation path for SPIRE architecture and fundamentals
- https://spiffe.io/docs/latest/spire-about/spire-concepts/
Supports
- SPIRE as a production-ready SPIFFE implementation
- SPIRE Server and SPIRE Agent responsibilities
- Node and workload attestation sequence
- Registration entries, selectors, authorized entries, and cached SVID delivery
- Plugin roles and supported attestation evidence
- https://spiffe.io/docs/latest/spiffe/concepts/
Supports
- SPIFFE ID, SVID, trust domain, trust bundle, and Workload API terminology
- X.509-SVID and JWT-SVID purposes
- Authentication and authorization separation
- https://spiffe.io/docs/latest/deploying/
Supports
- Official progression through installation, configuration, registration, SVID use, APIs, and telemetry
- Reference-path rationale for deployment guidance
- https://spiffe.io/docs/latest/deploying/configuring/
Supports
- Server and agent configuration files and restart behavior
- SQLite default and production datastore considerations
- Key storage strategies
- Supported telemetry collectors
- https://spiffe.io/docs/latest/deploying/registering/
Supports
- Registration entry fields
- Parent identity, selectors, and workload identity assignment
- Agent caching of authorized entries
- Workload selector matching
- Registration inspection and deletion commands
- https://spiffe.io/docs/latest/deploying/spire_server/
Supports
- Server plugin types and responsibilities
- SQL datastore, key manager, upstream authority, and bundle publisher options
- Audit logging and health-check configuration
- Server administration and validation references
- https://spiffe.io/docs/latest/deploying/spire_agent/
Supports
- Agent plugin types and configuration
- Workload API and health behavior
- Agent telemetry reference
- https://spiffe.io/docs/latest/planning/scaling_spire/
Supports
- Single-server availability limit
- Horizontal server scaling with a shared datastore
- Registration count, JWT use, and agent synchronization as sizing factors
- Single-domain, nested, and federated topology distinctions
- https://spiffe.io/docs/latest/architecture/
Supports
- Nested and federated SPIRE deployment options
- Architecture reference-path rationale
- https://spiffe.io/docs/latest/deploying/telemetry_config/
Supports
- Server and agent metric export
- Prometheus, StatsD, DogStatsD, M3, and in-memory collectors
- Telemetry reference-path rationale
- https://github.com/sindresorhus/awesome
Supports
- Starting index used to discover a topic-specific awesome list
- https://github.com/spiffe/awesome-spiffe
Supports
- Curated discovery of go-spiffe, Envoy, and Istio
- Classification of SPIFFE libraries, SPIFFE-aware software, and SPIRE integrations
- https://pkg.go.dev/github.com/spiffe/go-spiffe/v2/examples/spiffe-tls
Supports
- Go mutual TLS example using Workload API identity sources
- Explicit peer SPIFFE ID authorization
- Automatic X.509-SVID renewal through go-spiffe
- https://www.envoyproxy.io/docs/envoy/latest/api-v3/extensions/transport_sockets/tls/v3/tls_spiffe_validator_config.proto.html
Supports
- Envoy SPIFFE certificate validator configuration
- Separate trust bundles per trust domain
- URI identity matching and dynamic bundle-file updates
- https://istio.io/latest/docs/ops/integrations/spire/
Supports
- SPIRE identity delivery to Envoy through the Secret Discovery Service
- Manual and controller-managed workload registration
- SPIFFE federation integration
- https://spiffe.io/docs/latest/try/getting-started-k8s/
Supports
- Kubernetes quickstart manifests, server StatefulSet, agent DaemonSet, workload registration, and Workload API SVID fetch
- Quickstart cleanup commands and tested Kubernetes versions
- https://www.cncf.io/projects/spire/
Supports
- SPIRE CNCF maturity milestones in 2018, 2020, and 2022
- Timeline applicability decision
- https://spiffe.io/spire/
Supports
- SPIRE product landscape entry
- https://istio.io/
Supports
- Istio product landscape entry and SPIRE integration context
- https://linkerd.io/
Supports
- Linkerd product landscape entry
- https://www.hashicorp.com/products/consul
Supports
- HashiCorp Consul product landscape entry
- https://www.hashicorp.com/products/vault
Supports
- HashiCorp Vault product landscape entry
