SPIFFE Overview
An overview of the SPIFFE specification
SPIFFE, the Secure Production Identity Framework for Everyone, is a set of open-source standards for securely identifying software systems in dynamic and heterogeneous environments. Systems that adopt SPIFFE can easily and reliably mutually authenticate wherever they are running.
Distributed design patterns and practices such as micro-services, container orchestrators, and cloud computing have led to production environments that are increasingly dynamic and heterogeneous. Conventional security practices (such as network policies that only allow traffic between particular IP addresses) struggle to scale under this complexity. A first-class identity framework for workloads in an organization becomes necessary.
Further, modern developers are expected to understand and play a role in how applications are deployed and managed in production environments. Operations teams require deeper visibility into the applications they are managing. As we move to a more evolved security stance, we must offer better tools to both teams so they can play an active role in building secure, distributed applications.
SPIFFE is a set of open-source specifications for a framework capable of bootstrapping and issuing identity to services across heterogeneous environments and organizational boundaries. The heart of these specifications is the one that defines short lived cryptographic identity documents – called SVIDs via a simple API. Workloads can then use these identity documents when authenticating to other workloads, for example by establishing a TLS connection or by signing and verifying a JWT token.
You can read more about how the SPIFFE APIs are defined and used in the Concepts guide.
Which Tools Implement SPIFFE?
SPIFFE comprises many specifications, each providing different parts of the SPIFFE functionality. Software that implements SPIFFE may support some or all of these functionalities. The following tables captures software that’s capable of providing your infrastructure with SPIFFE identities, along with the functionalities they support.
Open Source Software That Implements SPIFFE
Software | X.509 SVID | JWT SVID | Attestation-based Issuance | Workload API | SDS API | SPIFFE Federation | OIDC Federation | PKI Integration | Kubernetes Support | VM and Bare Metal Support | Serverless Support |
---|---|---|---|---|---|---|---|---|---|---|---|
SPIRE | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Cert-manager | ✔ | ✔ | ✔ | ✔ | |||||||
Consul | ✔ | ✔ | ✔ | ✔ | Beta | ||||||
Dapr | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||
Istio | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Commercial Software That Implements SPIFFE
Software | X.509 SVID | JWT SVID | Attestation-based Issuance | Workload API | SDS API | SPIFFE Federation | OIDC Federation | PKI Integration | Kubernetes Support | VM and Bare Metal Support | Serverless Support |
---|---|---|---|---|---|---|---|---|---|---|---|
GCP | ✔ | ✔ | ✔ | ✔ | ✔ | ||||||
Greymatter.io | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
SPIRL | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
Teleport | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ||
Venafi | ✔ | ✔ | ✔ | ✔ |
Explanation of Columns - Software that Implements SPIFFE
- X.509 SVID
- Can generate X.509 SVIDs for workloads
- JWT SVID
- Can generate JWT SVIDs for workloads
- Attestation-based Issuance
- Leverages node and/or workload attestation for issuing SVIDs
- Workload API
- Can serve the Workload API for automatic rotation
- SDS API
- Can serve Envoy SDS API
- SPIFFE Federation
- Can serve and consume the SPIFFE Federation API
- OIDC Federation
- Can serve OIDC Federation API
- PKI Integration
- Can leverage existing or external PKI for X.509 SVID issuance
- Kubernetes Support
- Supports workloads running in Kubernetes
- VM and Bare Metal Support
- Supports workloads running in VMs or on bare metal
- Serverless Support
- Supports workloads running in serverless environments
Which Tools Work with SPIFFE?
SPIFFE enjoys a broad ecosystem, with many software projects, products, and platforms providing SPIFFE support in one way or another. While SPIFFE works with any software that knows how to use a JWT or an X.509 certificate, the following list captures software that supports SPIFFE as a first class citizen, along with the level of support they provide.
Open Source Software that Works with SPIFFE
Software | X.509 SVID | JWT SVID | SPIFFE Authentication | Workload API |
---|---|---|---|---|
Envoy | ✔ | ✔ | ✔ | |
Ghostunnel | ✔ | ✔ | ✔ | |
Istio | ✔ | ✔ | ✔ | |
Knox | ✔ | ✔ |
Commercial Software that Works with SPIFFE
Software | X.509 SVID | JWT SVID | SPIFFE Authentication | Workload API |
---|---|---|---|---|
AWS IAM Roles Anywhere | ✔ | |||
Greymatter.io | ✔ | ✔ | ✔ | ✔ |
VMware Secrets Manager | ✔ | ✔ | ✔ |
Explanation of Columns - Software that Works with SPIFFE
- X.509 SVID
- Supports X.509 SVID-based authentication
- JWT SVID
- Supports JWT SVID based authentication
- SPIFFE Authentication
- Supports federated SPIFFE authentication based on trust domain name
- Workload API
- Supports attaching to the SPIFFE Workload API