Skip to content

docs: explain NitroTPM runner authorization - #100

Merged
aledbf merged 4 commits into
mainfrom
docs/nitrotpm-attestation
Nov 12, 2026
Merged

aledbf merged 4 commits into
mainfrom
docs/nitrotpm-attestation

Conversation

@aledbf

@aledbf aledbf commented Nov 10, 2026 •

Copy link
Copy Markdown
Member

Summary

  • document how OpenTofu, NitroTPM, STS and KMS authorize runners: what the module declares, how a runner is admitted at every boot (same instance, same build, a build its release signed), why KMS checks the same evidence
  • state the threats this boundary mitigates and its limits, linking spin's "What this does not protect" (unmeasured user data; a control plane running other code)

The diagram

The page has no figure for now. Its picture is spin-terraform-aws's docs/diagrams/nitrotpm.svg (spin-terraform-aws#110), which is on the module's main and in no release yet, and the site pins v20261027.02. Pinning the module at main would move every AWS page onto an unreleased module, so the <Figure name="nitrotpm"> and its diagrams entry in tools/refgen/diagrams.go return with the next spin-terraform-aws release.

Validation

  • task check exits 0; task reference:check exits 0
  • page read against spin v20261110.01 and spin-terraform-aws v20261027.02, reads stamped

🤖 Generated with Claude Code

aledbf and others added 2 commits November 11, 2026 20:27
…site is

The page drew an SVG of its own and a component to show it, which the build refuses: a
component the Markdown twin cannot say. The module draws it now, in D2 with the
installation's palette and AWS's icons (spin-stack/spin-terraform-aws#110), and the
page shows it with Figure, whose words the twin carries.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
@aledbf
aledbf force-pushed the docs/nitrotpm-attestation branch from 87622f4 to 64dbdbb Compare November 11, 2026 23:32
aledbf and others added 2 commits November 12, 2026 14:08
…ys what the join does

The page showed <Figure name="nitrotpm">, which refgen draws from spin-terraform-aws's
docs/diagrams/nitrotpm.svg. That file is on the module's main (21ba51f) and in no release, and
the site pins v20261027.02, so the build stopped at /llms-full.txt. Pinning the module at main
would move every AWS page onto an unreleased module (24 refgen findings, instance_types among
them), so the figure returns with the module's next release.

Read against spin v20261110.01 and spin-terraform-aws v20261027.02:
- OpenTofu, not the control plane, writes host_attestation.runner (config.tf), each build with
  what its release signed; a build with nothing signed is not admitted (join.go admitted).
- A runner joins at every boot, again only from the same instance and the same build.
- The builds accepted are the installed release's revisions not revoked (attested_key.tf).
- The limits link spin's "What this does not protect": user data is unmeasured, and a control
  plane running other code.
- reads stamped at v20261110.01, with docs/security/README.md and volume_keys.tf added.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@aledbf
aledbf merged commit 885c8ba into main Nov 12, 2026
2 checks passed
@aledbf
aledbf deleted the docs/nitrotpm-attestation branch November 12, 2026 17:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant