Skip to main content

Agent Attestation Methods

Agent attestation methods are the mechanisms by which the Trust Domain Server verifies the identity of an agent at login time. The server issues a session to the agent only if the agent satisfies the configured attestation requirements.

Policies

Agent attestation is configured via policies. Each policy contains one or more required attestors that must all pass. Multiple policies can be defined for a single cluster; an agent is authorized if it satisfies any one policy.

This gives you two composition patterns:

AND (all required within a policy) — agent must pass both Kubernetes PSAT and AWS identity:

section: AgentAttestation
schema: v1
spec:
policies:
- name: eks_cluster_policy
requiredAttestors:
- type: k8s_token
config:
issuerURL: https://oidc.eks.us-east-1.amazonaws.com/id/ABCDEF123456
- type: aws_iid

OR (multiple policies) — agent can authenticate via Kubernetes PSAT or SSH:

section: AgentAttestation
schema: v1
spec:
policies:
- name: k8s_policy
requiredAttestors:
- type: k8s_token
config:
issuerURL: https://oidc.eks.us-east-1.amazonaws.com/id/ABCDEF123456
- name: ssh_policy
requiredAttestors:
- type: ssh_pop
config:
certAuthorities:
- "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAA..."

Applying Configuration

Agent attestation policies are applied per-cluster using Managed Configuration.

Using spirlctl

spirlctl config set cluster --id <cluster-id> attestation-policy.yaml

Using Terraform

resource "spirl_cluster_config" "agent_attestation" {
cluster_id = spirl_cluster.my_cluster.id
sections = {
AgentAttestation = <<-YAML
section: AgentAttestation
schema: v1
spec:
policies:
- name: eks_cluster_policy
requiredAttestors:
- type: k8s_token
config:
issuerURL: https://oidc.eks.us-east-1.amazonaws.com/id/ABCDEF123456
YAML
}
}

Once a configuration document passes validation and is stored, the Defakto control plane syncs it to your Trust Domain Servers automatically. No server or agent restart is required.

Attributes available for SVID issuance

Most attestation methods produce attributes derived from the agent's verified identity. These attributes are available for use in:

Attributes from agent attestation are scoped to the agent session. They complement workload attributes, which are collected per SVID request.

Available Methods

MethodType identifierAttributes producedCommon use case
AWS Identity Documentaws_iidEC2 instance metadata, tags, IAM roleAWS EC2 instances
AWS Web Identity Tokenaws_tokenAccount, org, IAM tagsAWS workloads with IAM outbound federation
Azure IMDSazure_imdsVM metadata, tags, VMSS, networkAzure VMs without Managed Identity
Azure MSIazure_msiTenant ID, principal IDAzure VMs with Managed Identity
Agent Attestation ExtensionextensionCustom (webhook-defined)Organization-specific agent verification via external webhook
GCP Instance Identity Tokengcp_iitProject, instance, zone, labelsGCP Compute Engine VMs
HTTP DNShttp_dnsHostname, portNon-cloud VMs with DNS control
Kubernetes Service Account Tokenk8s_tokenDefault Kubernetes attributesK8s agents
SSH Proof of Possessionssh_popCertificate principals, serial, validityHosts with SSH host certificates
TPM Endorsement Keytpm_ekHardware fingerprint, manufacturerBare-metal, hardware-rooted trust
X.509 Proof of Possessionx509popCertificate identity, URI SANsPre-provisioned certs (PKI-heavy environments)