Session certificates now cover the full enrollment flow
Agents enroll with a registration key and receive a short-lived Atria session certificate — no shared secrets on the wire, verified offline against a pinned CA key.
Core capabilities available/Zero-trust gateway for AI agents
A zero-trust proxy in front of the APIs you already run. Every agent carries a 15-minute certificate, every request is checked against boundaries you keep in git, and every decision — allowed or denied — lands in an append-only log with its reason code. No SDK, no backend change, and nothing on the request path leaves your network. Core enforcement, identity, and audit capabilities are ready for commercial deployment.
Incoming agent request
{
"agent": "agent://acme.procurement.v2",
"org": "Acme Corp",
"action": "invoices.read",
"resource": "/v1/finance/invoices"
}Execution log
For the person who signs off
Answers you can give with a mechanism behind them, not an assurance.
Each agent presents a certificate issued against a named API key. The agent id and the key id are both on every log line, so an action resolves to an account — not just to a role somebody could have reused.
A YAML allow-list you keep in git: method and path, calls per minute, and a transaction-value ceiling. Paths match by segment, so /orders never admits /orders-export. Anything not granted is denied.
One append-only JSON line per request: agent, credential, endpoint, allowed or denied, the reason code behind the decision, and whether the revocation list was current at the time.
Nothing on the request path. Certificates verify against a CA public key pinned at install, and revocation is a list the proxy already holds. Our cloud is not in the call — by construction, not by SLA.
A reverse proxy in front of the API you already have. No SDK, no framework, no change to your service, and no rewrite of your API scopes — agents enrol themselves against an API key, so onboarding one is not a ticket queue.
Architecture
Agents never talk to your systems directly. Atria intercepts, verifies, and records each call before it ever reaches an origin.
External AI Agent
Cross-org · untrusted
Atria Policy Gateway
Authenticate · authorize · audit
Enterprise API
Protected origin
Policy
No console to learn. Policy lives in your repo, keyed by agent identity, and reloads without a restart — an agent with no entry is denied by default.
# Keyed by agent id, taken from the certificate subject.
# No entry here means no access — there is no implicit allow.
agents:
acme-procurement-v2:
allowed_endpoints:
- method: POST
path: /api/v1/orders
- method: GET
path: /api/v1/orders/*
# Counted per agent id, across all its certificates.
rate_limit_per_minute: 100
# Any transaction_value in the body, at any depth.
max_transaction_value: 1000.0Core capabilities
Atria sits between external agents and your systems, turning every request into an authenticated, authorized, and auditable event.
Role-based access control built for LLMs. Define granular action boundaries per agent, org, and resource — evaluated on every request.
Unlike JWT, the gateway validates any Atria-issued certificate against a pinned public key — no secret to distribute, no call to our cloud on the request path.
Every intercepted action is written to an append-only log — which agent, which endpoint, allowed or denied, and the reason code behind the decision.
Where a CDN or load balancer terminates TLS before the proxy sees it, the certificate and a signed proof of possession travel in a header instead, with replay protection. Every log line records which mode decided it, so one log stays readable across a mixed fleet.
Drop Atria in front of any MCP server, tool endpoint, or enterprise API — no changes to your backend. Agents enroll once for a session certificate; no SDK, no framework lock-in.
Policy is a YAML file you own, reviewed in your pull requests. A rejected edit leaves the previous policy in force, and a reload takes effect on the next request — no restart, no dropped connections.
The fair objections
Keep it. A gateway authenticates callers you enrolled and shapes their traffic; it was not built to hold a per-session identity for somebody else’s autonomous process, to bound the value of an action inside the request body, or to attribute a denial to a credential you can revoke centrally in fifteen minutes. Atria goes in front of it or behind it — it is a reverse proxy, not a platform.
Because a key is a bearer secret with the lifetime of whoever forgets to rotate it, and it is copied into an agent framework you do not operate. A 15-minute certificate re-enrolled against a revocable credential changes what a leak costs, from "until someone notices" to "until it expires".
Those bound what a model says. This bounds what its actions reach. The prompt is not where the money moves — the API call is, and that call arrives at your edge whether or not the reasoning that produced it was well behaved.
Neither are we. Nothing of ours is in the call: certificates verify against a public key pinned into the proxy at install, revocation is a list already on the box, and the proxy is a binary you run on your own hardware. If our infrastructure vanished tomorrow, your agents would keep being checked.
Control mapping
“How is third-party AI access governed?” is now a question on assessments that were written before agents existed. These are the controls it usually falls under, and the artifact you hand over when someone asks for proof.
ISO/IEC 27001:2022
A.5.15 Access control · A.8.2 Privileged access rights
Per-agent allow-list of method and path, issued against a named credential and revocable independently of it.
The policy file in your git history, plus the revocation list the proxy pulls.
ISO/IEC 27001:2022
A.8.15 Logging · A.8.16 Monitoring activities
One record per request — allowed or denied, with the reason code and the credential behind it.
Append-only newline-delimited JSON, written locally, shipped wherever you already ship logs.
SOC 2 (Trust Services Criteria)
CC6.1 logical access · CC6.6 external threats · CC7.2 monitoring
External, non-employee automation authenticated with short-lived certificates and bounded at the edge of your API.
Certificate lifetime and issuance trail, plus the decision log for the audit period.
NIST CSF 2.0
PR.AA identity & access · DE.CM continuous monitoring
Identity proofing for a non-human actor, with authorisation re-evaluated on every single request rather than at session start.
Per-request decisions, including the ones that were denied — usually the harder half to produce.
EU AI Act
Art. 12 record-keeping · Art. 26 deployer log retention
Automatic recording of events over the lifetime of an AI system you deploy or expose to third parties.
A log line per agent action, retained on your infrastructure and under your retention policy.
To be exact about it: Atria holds no certification of its own, and nothing here says your programme is compliant. It says which control the mechanism satisfies and what evidence it produces — the part an auditor actually asks for. Our own certification status is on the security page, stated plainly.
Measured, not targeted
Release build, p99, on one machine. The decision itself is microseconds; what you pay for is the extra hop and its TLS handshake.
Per decision
Added p99, end to end
The benchmark's backend shares a process with the proxy, so the loaded rows include contention that a real deployment does not have. Read them as a ceiling. Beyond 32 concurrent connections on one core-constrained box, overhead grows faster than linearly — ask us for the full table rather than assuming it flattens.
Development log
Agents enroll with a registration key and receive a short-lived Atria session certificate — no shared secrets on the wire, verified offline against a pinned CA key.
The proxy now pulls a signed revocation list on an interval and fails open on the last good copy rather than blocking traffic when Atria Cloud is unreachable.
Dropped the Redis dependency for policy storage — policies are a YAML file you own and version control, parsed at startup and on explicit reload.