spire

module
v0.10.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 15, 2020 License: Apache-2.0

README

SPIRE Logo

CII Best Practices Build Status Coverage Status Go Report Card Slack Status

SPIRE (the SPIFFE Runtime Environment) is a tool-chain for establishing trust between software systems across a wide variety of hosting platforms. Concretely, SPIRE exposes the SPIFFE Workload API, which can attest running software systems and issue SPIFFE IDs and SVIDs to them. This in turn allows two workloads to establish trust between each other, for example by establishing an mTLS connection or by signing and verifying a JWT token. Or for a workload to securely authenticate to a secret store, a database, or a cloud provider service.

SPIRE is hosted by the Cloud Native Computing Foundation (CNCF) as a sandbox level project. If you are an organization that wants to help shape the evolution of technologies that are container-packaged, dynamically-scheduled and microservices-oriented, consider joining the CNCF. For details read the CNCF announcement.

Get SPIRE

Pre-built releases can be found at https://github.com/spiffe/spire/releases. These releases contain both server and agent binaries plus the officially supported plugins.

Alternatively you can build SPIRE from source.

Getting started

Before trying out SPIRE, we recommend becoming familiar with its architecture and design goals.

Getting Started Guide for Kubernetes

Getting Started Guide for Linux

The SPIRE Server and SPIRE Agent reference guides covers in more detail the specific configuration options and plugins available.

Examples

There are several examples demonstrating SPIRE usage in the spire-examples repository.

Using SPIRE with Envoy

SPIRE provides an implementation of the Envoy Secret Discovery Service (SDS). SDS can be used to transparently install and rotate TLS certificates and trust bundles in Envoy. Please see the SPIRE Agent configuration guide for more information.

Upgrading SPIRE

SPIRE Server supports zero-downtime upgrades when there's more than one SPIRE Server in the cluster. Please see the Managing Upgrades/Downgrades guide for more information on SPIRE version compatibility and supported upgrade paths.

Getting Help

If you have any questions about how SPIRE works, or how to get it up and running, the best place to ask questions is the SPIFFE Slack Organization. Most of the maintainers monitor the #spire channel there, and can help direct you to other channels if need be. Please feel free to drop by any time!

Community

The SPIFFE community, and Scytale in particular, maintain the SPIRE project. Information on the various SIGs and relevant standards can be found in https://github.com/spiffe/spiffe.

The SPIFFE and SPIRE governance policies are detailed in GOVERNANCE.

Directories

Path Synopsis
api
cmd
examples
pkg
agent/plugin/keymanager
Provides interfaces and adapters for the KeyManager service Generated code.
Provides interfaces and adapters for the KeyManager service Generated code.
agent/plugin/nodeattestor
Provides interfaces and adapters for the NodeAttestor service Generated code.
Provides interfaces and adapters for the NodeAttestor service Generated code.
agent/plugin/workloadattestor
Provides interfaces and adapters for the WorkloadAttestor service Generated code.
Provides interfaces and adapters for the WorkloadAttestor service Generated code.
common/catalog/test
Provides interfaces and adapters for the HostService service Generated code.
Provides interfaces and adapters for the HostService service Generated code.
common/peertracker
Package peertracker handles attestation security for the SPIFFE Workload API.
Package peertracker handles attestation security for the SPIFFE Workload API.
common/plugin/hostservices
Provides interfaces and adapters for the MetricsService service Generated code.
Provides interfaces and adapters for the MetricsService service Generated code.
common/plugin/sshpop
Package sshpop implements ssh proof of possession based node attestation.
Package sshpop implements ssh proof of possession based node attestation.
common/selector
The selector package exports functions useful for manipulating and generating spire selectors
The selector package exports functions useful for manipulating and generating spire selectors
nolint // forked code
server/endpoints/bundle/internal/autocert
nolint // forked code nolint // forked code nolint // forked code
nolint // forked code nolint // forked code nolint // forked code
server/plugin/datastore
Provides interfaces and adapters for the DataStore service Generated code.
Provides interfaces and adapters for the DataStore service Generated code.
server/plugin/hostservices
Provides interfaces and adapters for the AgentStore service Generated code.
Provides interfaces and adapters for the AgentStore service Generated code.
server/plugin/keymanager
Provides interfaces and adapters for the KeyManager service Generated code.
Provides interfaces and adapters for the KeyManager service Generated code.
server/plugin/nodeattestor
Provides interfaces and adapters for the NodeAttestor service Generated code.
Provides interfaces and adapters for the NodeAttestor service Generated code.
server/plugin/noderesolver
Provides interfaces and adapters for the NodeResolver service Generated code.
Provides interfaces and adapters for the NodeResolver service Generated code.
server/plugin/notifier
Provides interfaces and adapters for the Notifier service Generated code.
Provides interfaces and adapters for the Notifier service Generated code.
server/plugin/upstreamauthority
Provides interfaces and adapters for the UpstreamAuthority service Generated code.
Provides interfaces and adapters for the UpstreamAuthority service Generated code.
server/plugin/upstreamca
Provides interfaces and adapters for the UpstreamCA service Generated code.
Provides interfaces and adapters for the UpstreamCA service Generated code.
proto
spire Module
support
test
mock/agent/client
Package mock_client is a generated GoMock package.
Package mock_client is a generated GoMock package.
mock/agent/manager
Package mock_manager is a generated GoMock package.
Package mock_manager is a generated GoMock package.
mock/agent/manager/cache
Package mock_cache is a generated GoMock package.
Package mock_cache is a generated GoMock package.
mock/agent/plugin/workloadattestor/docker
Package mock_docker is a generated GoMock package.
Package mock_docker is a generated GoMock package.
mock/common/plugin/k8s/apiserver
Package mock_apiserver is a generated GoMock package.
Package mock_apiserver is a generated GoMock package.
mock/common/plugin/k8s/clientset
Package mock_clientset is a generated GoMock package.
Package mock_clientset is a generated GoMock package.
mock/common/plugin/k8s/clientset/authenticationv1
Package mock_authenticationv1 is a generated GoMock package.
Package mock_authenticationv1 is a generated GoMock package.
mock/common/plugin/k8s/clientset/authenticationv1/tokenreview
Package mock_tokenreview is a generated GoMock package.
Package mock_tokenreview is a generated GoMock package.
mock/common/plugin/k8s/clientset/corev1
Package mock_corev1 is a generated GoMock package.
Package mock_corev1 is a generated GoMock package.
mock/common/plugin/k8s/clientset/corev1/node
Package mock_node is a generated GoMock package.
Package mock_node is a generated GoMock package.
mock/common/plugin/k8s/clientset/corev1/pod
Package mock_pod is a generated GoMock package.
Package mock_pod is a generated GoMock package.
mock/common/telemetry
Package mock_telemetry is a generated GoMock package.
Package mock_telemetry is a generated GoMock package.
mock/plugin/agent/workloadattestor
Package mock_workloadattestor is a generated GoMock package.
Package mock_workloadattestor is a generated GoMock package.
mock/proto/api/node
Package mock_node is a generated GoMock package.
Package mock_node is a generated GoMock package.
mock/proto/api/registration
Package mock_registration is a generated GoMock package.
Package mock_registration is a generated GoMock package.
mock/proto/api/workload
Package mock_workload is a generated GoMock package.
Package mock_workload is a generated GoMock package.
mock/server/aws
Package mock_aws is a generated GoMock package.
Package mock_aws is a generated GoMock package.
testkey
THIS FILE IS GENERATED.
THIS FILE IS GENERATED.
tools module
k8s-test Module

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL