Every credential a Defakto server issues leaves a record behind. Where does that record go, and what can you do with it?
Workload identity works best when nobody has to think about it. A workload asks for a credential, gets one, and gets on with its job. That quiet is great for operations and less great when someone asks what your identity system has been up to. Which workloads got credentials last week? Is anything unusual happening right now? Can we show an auditor what happened two years ago? Can we get all of this into our own tools?
At Defakto, we think you should be able to see everything your identity infrastructure does. When something meaningful happens in a Defakto deployment, like a credential being issued, an agent checking in, or a configuration change, Defakto records it as an event.
Scroll to follow a single event from the moment it’s created to every place it ends up, including event forwarding, which is now available.
01 · your environment
It starts with a credential
A workload asks its agent for an identity, and the Defakto server running in your environment issues an SVID. The server also records an svid_issued event that says which workload got the credential, when, and from which deployment.
The server puts the event in a buffer in memory. Issuing a credential never waits on the network, so recording the event doesn’t slow your workloads down. They have places to be.
02 · control plane
Sent to the control plane
Every few seconds, the server sends its buffered events to the Defakto control plane in one batch over mutual TLS (mTLS). The control plane collects events from every Defakto server in your organization, across all of your trust domain deployments.
How does the control plane know whose events they are? The event itself doesn’t say. The control plane reads the organization and deployment from the server’s SPIFFE ID on the mTLS connection, so a server can only write events into its own organization.
03 · durable storage
Made durable before anyone says “got it”
Before it replies to the server, the control plane writes each event to an encrypted, durable buffer in Kinesis. The server keeps its own copy until that reply arrives, and if anything fails along the way, the server sends the event again.
Everything after this point reads from that buffer.
04 · fan out
One event, three uses
Three independent readers pick the event up from the buffer, and each one answers a different question about your system. None of them waits on the others, so a slow forwarding destination doesn’t delay what you see in the console.
05 · archive
What happened?
The archive writes every event to S3. We keep important events, like audit logs, for seven years, which is longer than most of the workloads they describe will be around. We also copy security events to a separate, locked backup where nobody can change or delete them.
The archive is the source of truth. If we ever need to rebuild another view of your data, we rebuild it from here.
06 · search
What’s happening right now?
The search pipeline turns the event into documents in OpenSearch, which keeps each organization’s data separate. The event is searchable within seconds of the credential being issued, and it shows up in the issuance chart for its trust domain.
Trust Domains/acme.example/Issuance
Workload Credentials (SPIFFE SVIDs)
Issued SVIDs over the last 24 hours
24 hours
Credentials issued for one trust domain, with the interval holding this post’s event highlighted. Example data.07 · console
On your screen
Open a trust domain’s audit log in the Defakto console, and the event is at the top, next to other credentials, agent attestations, federation checks and API requests. The credential counts and charts on each page come from the same search index.
The control plane filters every query to your organization and to what your account can see, so the same data can serve everyone on your team.
Trust Domains/acme.example/Audit Logs
Time
Source
Event type
Summary
Nov 11, 4:41 AM
Trust Domain Server
Workload credential issued
X509 issued for spiffe://acme.example/payments/api
Nov 11, 4:41 AM
Trust Domain Server
Workload credential issued
JWT issued for spiffe://acme.example/checkout/web
Nov 11, 4:40 AM
Agent
Agent attestation
Attestation recorded for agent “k8s-node-07”
Nov 11, 4:40 AM
Trust Domain Server
Federation link polled
Federation between acme.example and partner.example
Nov 11, 4:39 AM
Control Plane
Control plane API request
ListRealms by ci-deployer
The audit log in the Defakto console, with this post’s event at the top. Example data.
08 · forwarding
Can you keep your own copy?
We’d like you to trust us, but we’d also like you to verify. Forwarding sends your credential issuance events, as they happen, to a destination you choose, such as a security vendor that ingests identity signals, your SIEM, or a service you run that stores them in your own S3 bucket or OpenSearch cluster.
Each event is a Security Event Token, the standard format from the OpenID Shared Signals Framework. Defakto signs every delivery with a key unique to your organization, and your destination checks the signature against our public keys, so there’s no shared secret to store or rotate.
Each subscription has its own queue, so one slow destination doesn’t hold up another.
One svid_issued event, recorded as a side effect of a workload getting its identity, answers three different questions.
ArchiveWhat happened?Kept for up to seven years, for audits and investigations.
SearchWhat’s happening now?Searchable within seconds, scoped to what each person on your team can see.
ForwardingWhere else do I need it?Signed and delivered to the tools you already use, so you have your own copy.
We built the event pipeline so you can check what your identity infrastructure is doing whenever you need to, whether that’s in our console, in years of archived history, or in your own systems.