← marwandiallo.comlabs

Attestation primer

An agent's identity is only as strong as the platform that vouches for it. Attestation is the mechanism by which a workload proves what it is, rather than asserting it. The six options below are the ones a builder is most likely to wire up first, ranked by operational lift relative to the trust-root strength they provide.

SurfaceBest forBinds toTTLTrust root
GitHub Actions OIDCCI/CD agents, build-time tooling, deploy workflowsRepository + workflow + ref + job + environment≤ 6 hours (default 15 min)GitHub OIDC issuer JWKS
AWS Nitro Enclave attestationHigh-sensitivity agents (financial, PII, key custody)Enclave image hash (PCRs), parent instance, regionAttestation document signed at request timeAWS Nitro root of trust certificate chain
Azure managed identityAgents on Azure compute (App Service, Functions, AKS, VMs)Azure resource ID + tenant + subscription≤ 24 hours, refreshed automaticallyMicrosoft Entra ID
GCP Workload Identity FederationAgents that run outside GCP and need GCP API accessExternal issuer + claim mapping rules≤ 12 hours (configurable)External OIDC issuer + WIF pool policy
TPM 2.0 quoteOn-prem agents, edge devices, hardware roots of trustTPM endorsement key + PCR set + boot measurementsQuote signed at request timeTPM manufacturer EK certificate
Apple App AttestAgents that ride along inside an iOS/macOS clientApp bundle ID + device hardware keyPer assertionApple Anonymous Attestation CA

Notes per surface

GitHub Actions OIDC

Rotation: Per workflow run, automatic

The lowest-friction path off long-lived API keys for any agent that runs in CI. Cloud providers (AWS, Azure, GCP) all accept GitHub's OIDC token directly.

AWS Nitro Enclave attestation

Rotation: Per attestation request

Hardware-backed. The attestation document includes PCR measurements of the enclave image, so a runtime modification of the agent invalidates the proof.

Azure managed identity

Rotation: Platform-managed

System-assigned identity is the simplest pattern; user-assigned identity is required when multiple workloads share an identity intentionally (most agents should be system-assigned).

GCP Workload Identity Federation

Rotation: Per token exchange

Lets a GitHub OIDC token, AWS STS token, or any RFC 7519 JWT be exchanged for a Google access token without storing a service-account key.

TPM 2.0 quote

Rotation: Per quote

Most rigorous attestation surface available without going to a TEE; also the highest operational lift. Worth it for agents that hold key material on the host.

Apple App Attest

Rotation: Per assertion

The right primitive for endpoint-resident assistants. Less common in server-side agent stacks but increasingly relevant as agents move into client apps.

How to pick

Anti-pattern to avoid

A long-lived API key in a config file with no platform attestation, no sender-constraint, and no act claim on the issued token. This is the modal agent identity setup in 2026 and the one that shows up in incident reports first. The fix is not "rotate the key more often" — the fix is to retire the long-lived key class entirely and federate against one of the surfaces above.

References