Skip to content

Conversation

stevendpclark
Copy link
Contributor

Initial stab at adding the SPIFFE auth plugin docs.

@stevendpclark stevendpclark self-assigned this Sep 25, 2025
@stevendpclark stevendpclark requested a review from a team as a code owner September 25, 2025 18:40
@stevendpclark stevendpclark added the Vault Content update for Vault product docs label Sep 25, 2025
Copy link
Contributor

github-actions bot commented Sep 25, 2025

Vercel Previews Deployed

Name Status Preview Updated (UTC)
Dev Portal 🔄 Building (Inspect) --- ---
Unified Docs API ✅ Ready (Inspect) Visit Preview Tue Oct 7 20:41:43 UTC 2025

Copy link
Contributor

github-actions bot commented Oct 6, 2025

Broken Link Checker

No broken links found! 🎉

Comment on lines 88 to 90
When using a profile that fetches the trust bundle from a remote endpoint, the trust
bundle is cached locally and is refreshed periodically. Refresh intervals are calculated
based on the bundle's refresh hint (if provided) or a default of 1 hour.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
When using a profile that fetches the trust bundle from a remote endpoint, the trust
bundle is cached locally and is refreshed periodically. Refresh intervals are calculated
based on the bundle's refresh hint (if provided) or a default of 1 hour.
Vault caches trust bundles fetched from remote endpoints and refreshes the
bundle periodically based on the provided refresh hint. If the bundle does not
provide a refresh hint, Vault uses a default refresh interval of 1 hour.
The active node within a Vault cluster performs the initial fetch and subsequent
refreshes on the trust bundle on behalf of all nodes in the cluster. But all
active nodes on Performance replica clusters fetch and refresh the trust
bundle independently.

Style correction: write in active voice, avoid possessives
Folded in the refresh mechanics discussion from below

Comment on lines 92 to 97
If an immediate refresh is required, call the [configuration endpoint](/vault/api-docs/auth/spiffe#create-configuration)
with an empty payload to force a refresh.

The active node within a Vault cluster performs the initial fetch and subsequent
refreshes on the trust bundle on behalf of all nodes in the cluster. The active node
on Performance replica clusters will fetch and refresh the trust bundle independently.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If an immediate refresh is required, call the [configuration endpoint](/vault/api-docs/auth/spiffe#create-configuration)
with an empty payload to force a refresh.
The active node within a Vault cluster performs the initial fetch and subsequent
refreshes on the trust bundle on behalf of all nodes in the cluster. The active node
on Performance replica clusters will fetch and refresh the trust bundle independently.
You can force an immediate refresh by calling the
[configuration endpoint](/vault/api-docs/auth/spiffe#create-configuration)
with an empty payload and read the details about a fetched trust bundle,
including the last refresh time and calculated refresh interval by calling the
[read configuration endpoint](/vault/api-docs/auth/spiffe#read-configuration).

Comment on lines 99 to 100
Details on the fetched trust bundle, including the last refresh time and the
refresh interval are available via the [read configuration endpoint](/vault/api-docs/auth/spiffe#read-configuration).
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Details on the fetched trust bundle, including the last refresh time and the
refresh interval are available via the [read configuration endpoint](/vault/api-docs/auth/spiffe#read-configuration).

Folded into the paragraph above

Details on the fetched trust bundle, including the last refresh time and the
refresh interval are available via the [read configuration endpoint](/vault/api-docs/auth/spiffe#read-configuration).

### Load Balancing / Proxying Consideration
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
### Load Balancing / Proxying Consideration
## Load balancing and proxying consideration

Style correction: use sentence case for headers

Comment on lines 104 to 112
If the Vault server is fronted by a reverse proxy or load balancer, TLS is
terminated before Vault. In that case the proxy must provide the validated
client certificate via header, and [configured in the Vault configuration's
listener stanza](/vault/docs/configuration/listener/tcp#tcp-listener-parameters).

Configure the listener with the header name that your load balancer provides.
In this mode, the security of authentication depends on the load balancer performing
full TLS verification to the client, and that the connection between the load
balancer and Vault is secured, ideally with Mutual TLS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
If the Vault server is fronted by a reverse proxy or load balancer, TLS is
terminated before Vault. In that case the proxy must provide the validated
client certificate via header, and [configured in the Vault configuration's
listener stanza](/vault/docs/configuration/listener/tcp#tcp-listener-parameters).
Configure the listener with the header name that your load balancer provides.
In this mode, the security of authentication depends on the load balancer performing
full TLS verification to the client, and that the connection between the load
balancer and Vault is secured, ideally with Mutual TLS.
TLS terminates before client requests reach Vault when you use a reverse proxy
or load balancer as your Vault server fronted. As a result, you must:
1. Configure your frontend to provide the validated client certificate in the
request header.
1. [Configure your Vault listener](/vault/docs/configuration/listener/tcp#tcp-listener-parameters)
to accept the header provided by the frontend.
1. Ensure your frontend performs full TLS verification to the client to provide
proper authentication security.
1. Ensure a secure connection between your frontend and Vault, ideally with
Mutual TLS.

Style correction: write in active voice, make complex lists easy to scan

Copy link
Contributor

@schavis schavis left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added suggestions

@stevendpclark stevendpclark requested a review from schavis October 7, 2025 13:08

Fetch a SPIFFE bundle in JWKS format from a remote HTTPS endpoint. If using a SPIRE server, this will work with
a SPIRE Federation API endpoint of type `https_web`.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Okay. Let's use the same field descriptions then

@stevendpclark stevendpclark requested a review from schavis October 7, 2025 20:11
@stevendpclark stevendpclark merged commit a5914e8 into vault/1.21.x Oct 7, 2025
12 checks passed
@stevendpclark stevendpclark deleted the stevendpclark_vault-38002_spiffe-docs branch October 7, 2025 20:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Vault Content update for Vault product docs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants