Skip to content

Commit b6ff994

Browse files
committed
update README
1 parent 8686d0f commit b6ff994

File tree

1 file changed

+41
-0
lines changed

1 file changed

+41
-0
lines changed

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# SPIRE Tailscale Plugin
2+
3+
This repository contains agent and server plugins for [SPIRE](https://github.com/spiffe/spire) to allow [Tailscale](https://tailscale.com) node attestation.
4+
5+
## Quick Start
6+
7+
Before starting, create a running SPIRE deployment and add the following configuration to the agent and server.
8+
Both server and agents should be running on a Tailscale node.
9+
10+
### Agent Configuration
11+
12+
```hcl
13+
NodeAttestor "tailscale" {
14+
plugin_cmd = "/path/to/plugin_cmd"
15+
plugin_checksum = "sha256 of the plugin binary"
16+
plugin_data {
17+
}
18+
}
19+
```
20+
21+
### Server Configuration
22+
23+
```hcl
24+
NodeAttestor "tailscale" {
25+
plugin_cmd = "/path/to/plugin_cmd"
26+
plugin_checksum = "sha256 of the plugin binary"
27+
plugin_data {
28+
}
29+
}
30+
```
31+
32+
## How it Works
33+
34+
The plugin uses the Tailscale Node public keys as the method of attestation and is inspired on the [client verification](https://tailscale.com/kb/1118/custom-derp-servers/?q=derp#optional-restricting-client-access-to-your-derp-node) in custom DERP servers.
35+
The plugin operates as follows:
36+
37+
1. Agent fetches the Tailscale Node key from the local `tailscaled` agent
38+
1. Agent sends the key to the server
39+
1. Server inspects the key and checks if it is a valid key in its Tailscale network.
40+
1. Server creates a SPIFFE ID in the form of `spiffe://<trust_domain>/spire/agent/ts/<hostname>`
41+
1. All done!

0 commit comments

Comments
 (0)