Skip to content

Commit d8f4871

Browse files
committed
feat: AWS EC2 NitroTPM attestation with TDX-aligned measurement model
Add AWS EC2 NitroTPM as a first-class attestation platform under the account-admin-untrusted threat model, integrated like SEV-SNP rather than with AWS-specific auth surface. Measurement model (aligned with bare TDX): - Boot: PCR4/7/12 for AMI/UKI identity - Config: shared-disk MrConfigV3 measured into PCR8 (no UKI cmdline pin) - Events: all dstack events extend SHA384 PCR14 (RTMR3 analogue; no PCR23 launch/runtime split) - os_image_hash: prefer unified sha256(sha256sum.txt) via VmConfig.aws_measurement + reference PCR bind; legacy PCR-hash fallback - KMS GetAppKey: RA-TLS only (api_version=1); no recipient encryption - GetQuote/Attest: report_data only (no platform attestation_options) - check_kms / auth-simple: pin early mrAggregated only (boot-mr-done) Includes Yocto AWS kernel/image support, verifier/KMS paths, SDKs, docs, and release/smoke helpers. Empty TPM key-provider id (already on master) keeps early MR precomputable.
1 parent f2ff8cd commit d8f4871

78 files changed

Lines changed: 7795 additions & 444 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# AWS NitroTPM improvement intent (operator notes)
2+
3+
Status: **decided 2026-07-13 — implementing on aws-attestation-platform-spec**
4+
5+
## Decisions (locked)
6+
7+
1. **MR_CONFIG → PCR8** (dedicated OS PCR; not cmdline/PCR4)
8+
2. **Config delivery: S1 shared disk only** (no UKI cmdline rewrite)
9+
3. **K1: keep `system-ready` as replay/auth boundary** (single PCR14 lane)
10+
4. **`check_kms` pins early MR (boot-mr-done)** — same as bare TDX
11+
5. **N2: single emit API** (no launch/runtime split; all events → PCR14 sha384)
12+
6. **Work on AWS PR branch; push commits there**
13+
7. **#777 empty TPM key-provider id: already merged** — rebase/include as needed
14+
15+
## Work items
16+
17+
1. No runtime config via UKI cmdline → shared disk + PCR8
18+
2. Unified `os_image_hash` = sha256(sha256sum.txt) + measurement.aws bind PCR4/7/12
19+
3. PCR8 for mr_config-like binding
20+
4. Remove `aws-pcr14-fault-injection`
21+
5. `check_kms` only `mrAggregated` (early / boot-mr-done)
22+
6. Remove GetAppKey v2 recipient + GetQuote `attestation_options`
23+
7. Single event PCR14; drop PCR23 runtime split; N2 one emit API

docs/aws-attested-instance-security-evaluation.md

Lines changed: 1384 additions & 0 deletions
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)