Synadia Protect inspects every NATS connection and message, blocks what your rules prohibit, and provides the evidence your security and compliance teams need.
gw-prod-euwest1
fleet: prod · 2 instances
CONNECTIONS
1.4K
ALLOW/S
12.6K
DENY/S
38
SUSPEND/S
6
Default-deny posture · all bundles signature-verified
Get visibility, enforcement, and an audit trail for every NATS connection or message, without being a NATS-protocol expert.
No more exception tickets. No more grandfathered apps. Ship NATS with policy already in place.
Continuous evidence that controls are enforced - straight to your SIEM.
A transparent proxy that inspects every connection and message. Deploy it between your clients (or leaf nodes) and your NATS cluster - no application changes required.
Every CONNECT, PUB, and MSG is evaluated against your active rules. Each rule resolves to one of five actions: allow, deny, suspend, log, or error - based on subject, header, payload, source IP, time of day, JWT claims, and more.
recent
Activate built-in rules for CIDR, headers, payload regex, JWT, and time windows with config alone. Write custom rules in the Expr language with full access to connection context and message contents.
name: <string> # unique within the bundledescription: <string> # optionalfacts: # connection-level filters- connection_kind: client # required: client or leafconditions: # per-message filters- rule_type: connect # required: connect or messagedefault: allow # action when no rule body matchesrules: # one or more rule bodies- expression: <expr>success: deny # action when expression returns truefail: allow # action when expression returns falsemessage: "audit log text" # shown in audit logs on deny/suspend
Package rules into signed bundles. Install, activate, upgrade, and roll back without restarting the gateway. Trust only bundles signed by identities you control.
Activate, upgrade, or roll back without restarting the gateway.
Every non-allow decision, connection event, and management action emits an audit event. Stream as text, JSON, or CEF - to local files, stdout, or straight to NATS for your SIEM pipeline.
{"action":"deny","port":"clients","cuuid":"7Yep…","reason":"payload regex"}
CEF:0|Synadia|Protect|1|POLICY|Protect Policy Action|8|act=deny dst=…
time=2026-04-07 type=policy.action action=deny port=clients reason=…
Allow or deny clients and leaf nodes by IP range - IPv4 and IPv6.
Accept connections whose JWT is signed by a key you trust - signature only, no full IdP integration needed.
Match payloads against regex by subject pattern - PII, secrets, tokens.
Enforce that messages carry the headers your platform contract expects.
Cron-scheduled allow or deny - perfect for change-window enforcement.
Reject publishes with wildcard subjects - with carve-outs for JetStream consumer creates.
Built-in rule library
Activate built-in rules with a few lines of YAML - no expression writing required. Mix and match across CIDR filtering, header inspection, payload matching, time windows, and JWT verification.
Where teams use Protect
Deploy Protect in front of every leaf-node ingress. Inspect headers, CIDR-restrict by source, and enforce JWT signing - without trusting the network the leaf rides on.
Require X-Tenant headers, scope each tenant to their subject space, and reject any publish that violates platform conventions - even from a misbehaving service.
Run payload-regex rules in the message path. Block anything matching secret, password, or PII patterns before it reaches a stream you can never fully purge.
Drops into your existing NATS
Protect speaks the NATS protocol. Point relevant clients (or leaf nodes) at the Protect port instead of your cluster, and Protect forwards allowed traffic to the backend — same protocol, same semantics, just policy in the middle.
ALLOW
62/s
SUSPEND
0/s
DENY
1/s
recent (subset)
A note from the team
In many large enterprises we've worked with, app teams who want to use NATS hit the same wall: there's no firewall for it, so security has to grant an exception. That slows everything down — and leaves real gaps once NATS is in production.
Protect is the missing piece. It puts security teams back in the loop, with policy enforcement and audit trails they can drive, independent of infra or app teams.
Same NATS your team already loves. Now with the controls your security team needs.
The Synadia Team
Creators of NATS
Drop-in proxy for any OSS NATS deployment. No application changes, no Synadia Platform required.
How to get started
Sign up for a trial
Submit the form to request your free 14-day trial.
Get your trial license
Receive an email with a download link and your trial license JWT.
Install and configure
Install the Protect binary and run `protect setup` to scaffold a config and keys.
Deploy in front of NATS
Start the gateway with your trial license JWT and route clients or leaf nodes through it.
After the trial, Protect is available on an annual contract — $25K/yr for 2 instances.
Standalone product - works with any OSS NATS deployment. No Synadia Platform required.
News and content from across the community