New: Talos is now available on the AWS Marketplace - usage-metered by enforced workload.
eBPF egress security for EKS & ECS

Know exactly where every workload talks to, and stop it from talking anywhere else.

Talos enforces per-workload, identity-aware, default-deny egress policy in the Linux kernel. No sidecar. No proxy hop. No added latency on legitimate traffic. Finally, a clean answer to "prove what each workload is allowed to reach, and prove it is enforced."

0ms added latency on allowed traffic 1 agent per node, not per pod Default-deny by design
talos demo - live enforcement
# one agent per node, enforcing in-kernel
$ talos demo
Talos egress enforcement - LIVE (eBPF cgroup/connect4)
policy: allow api.stripe.com, rds.internal (default-deny)

  connect  api.stripe.com:443        ALLOW
  connect  rds.internal:5432         ALLOW
  connect  s3.us-east-1.vpce:443     ALLOW
  connect  185.220.101.44:443        DENY  <- C2 beacon blocked
  connect  1.1.1.1:853 (DoH)         DENY  <- evasion blocked

OK allowed traffic flowed, exfil paths blocked in-kernel.
Built for compliance-heavy teams: 🛡️ PCI-DSS 🏥 HIPAA SOC 2 ☁️ AWS Marketplace
0%
of outbound connections evaluated, allowed and denied
0ms
proxy latency added to permitted requests
In‑kernel
decisions via eBPF at the cgroup connect hook
EKS + ECS
identity-aware policy that survives IP churn
The egress blind spot

Ingress is guarded. Egress is wide open.

Firewalls, WAFs, and security groups all watch traffic coming in. Almost nothing watches what leaves. A single compromised container can exfiltrate data or beacon to command-and-control infrastructure over ordinary, well-formed outbound HTTPS, and most environments would never see it.

  • Most shops have no per-workload egress policy at all, just a flat NAT gateway that lets anything out.
  • Security groups and NACLs are IP and port level, shared across a whole subnet. They cannot say "this service may only ever reach Stripe and our database."
  • They cannot tell you when a workload starts talking to something it never talked to before.
  • For PCI, HIPAA, and SOC 2 auditors, "prove egress is filtered per workload" is a box teams cannot honestly check.
The exfiltration path nobody watches
compromised pod
   ├─ outbound 443 → attacker-cdn.example   exfil
   ├─ outbound 443 → 185.220.101.44       C2 beacon
   └─ DNS-over-HTTPS → 1.1.1.1:853       policy evasion

looks like normal HTTPS. Nobody is watching.
Talos turns every one of those lines into an allow or deny decision, made in the kernel, logged with the workload identity.
How it works

Policy compiled to the kernel, enforced per workload

Talos runs as a single agent per node (a DaemonSet on EKS, a per-instance daemon on ECS). It compiles your declarative policy into eBPF allow-maps and attaches at the cgroup connect hook, so the verdict on every outbound connection happens in-kernel, bound to the workload, not a fragile IP.

EgressPolicy (YAML / CRD, default-deny)
        │ compile
        ▼
  per-workload allow-maps (LPM-trie CIDRs + exact-IP + resolved FQDNs), keyed by cgroup
        │ sync
        ▼
[ talos agent ] ── attach ──► cgroup/connect4 ── allow(1) / deny(0 → EPERM)
        ▲                               │
        │ ringbuf                        ▼
   audit log + anomaly + Prometheus     every outbound connect() decided in-kernel
1

Declare

Write an EgressPolicy per workload: allow by FQDN, IP/CIDR, or AWS VPC endpoint. Or let baseline learning draft it for you.

2

Compile

The control plane compiles policy into per-workload eBPF filter maps and pushes them to node agents.

3

Enforce

In-kernel allow/deny at the connect hook. Legitimate traffic is untouched: no proxy, no latency.

4

Observe

Every attempt is logged with identity and matched rule, streamed live, and scored for anomalies.

Product

Everything you need to lock down egress

An identity-aware policy engine, a behavioral anomaly layer, deep observability, and a compliance surface auditors can actually read.

🔑

Identity-aware policy

Policy binds to the workload (pod or task), not an IP. It survives IP churn and autoscaling automatically.

Default-deny

Everything not explicitly allowed is denied. The compliance story depends on this being the standard mode, not an opt-in.

🌐

FQDN & DNS tracking

Allow by hostname with live DNS resolution tracking, so CDN and load-balanced SaaS endpoints do not break IP-only rules.

☁️

AWS endpoint aware

Recognizes traffic to S3, DynamoDB, and other VPC endpoints distinctly from generic internet egress.

🌲

Environment inheritance

Dev, staging, and prod policy tiers so you are not hand-writing the same rules three times.

Time-boxed break-glass

"Allow this destination for 4 hours" with automatic expiry and a full audit trail for incident response.

📈

Baseline learning

Observe a workload's normal egress, then suggest a tightened policy. No hand-writing allow-lists for 200 services on day one.

📡

Anomaly detection

Flag new destinations inside allowed ranges, abnormal volume or frequency, and DNS tunneling or DoH evasion.

🛡️

Threat intel feeds

Cross-reference destinations against known C2 and malware infrastructure in real time, and alert regardless of policy match.

Beyond an allow-list

Catch the exfil that stays inside the rules

A plain allow-list firewall cannot see a workload that starts misbehaving toward destinations it is technically allowed to reach. Talos baselines normal behavior and scores deviation.

  • New host inside an allowed CIDR that this workload has never contacted before.
  • Allowed destination, abnormal data volume or connection frequency: the classic slow-trickle or single-burst exfil signal.
  • DNS-over-HTTPS attempts and DNS tunneling patterns that try to route around FQDN policy.
  • Real-time threat-intel correlation against known C2 and malware infrastructure.
# anomaly stream
ANOMALY payments  new-dest-in-cidr
  10.4.9.7 first seen, allowed range, 0 prior
ANOMALY billing   volume-spike
  s3.vpce  4.2GB/5m  baseline 40MB/5m
ANOMALY web       dns-tunneling
  87 TXT queries/min to a.evil.example
ALERT → PagerDuty + Slack + SIEM
# every connection, allowed and denied
{
  "time": "2026-08-05T14:03:11Z",
  "workload": "payments",
  "dest": "185.220.101.44",
  "port": 443,
  "allowed": false,
  "rule": "default-deny"
}
# live deny-stream, Prometheus, SIEM export
GET /api/v1/events?deny=1
Observability

Watch every outbound decision in real time

Security teams get a live view of exactly what is being blocked and allowed, per workload, with the policy that matched. Wire it into the tools you already run.

  • Every connection attempt logged: identity, destination, timestamp, matched policy.
  • Real-time deny-stream you can watch live during a suspected incident.
  • Alerting into PagerDuty, Slack, and Opsgenie.
  • SIEM export to Splunk and native S3 / CloudWatch, plus Prometheus metrics with a shipped Grafana dashboard.
Compliance

Hand your auditor something they can read

Talos maps directly to the controls your compliance team already reports against, so they get evidence instead of raw logs to translate.

RequirementWhat auditors askHow Talos answers it
PCI-DSS egress filteringRestrict outbound traffic to only what is necessaryPer-workload default-deny allow-lists, enforced in-kernel, with pre-built PCI-DSS report templates
HIPAA technical safeguardsControl transmission of ePHI to external systemsIdentity-aware destination control and full connection audit mapped to HIPAA safeguard language
SOC 2 change controlWho changed what policy, when, approved by whomFull audit trail of policy changes with author / approver separation of duties
Incident retrospectivesWhat was workload X allowed to reach on date YPoint-in-time policy reconstruction for any workload and date
Separation of dutiesDistinct authors, approvers, and read-only auditorsBuilt-in RBAC: policy authors vs approvers vs read-only audit viewers
Why not just security groups

A materially different security posture

Security groups and sidecar proxies each solve part of the problem. Talos gives you per-workload identity, in-kernel enforcement, and behavioral detection together.

CapabilityTalosSecurity groups / NACLsSidecar proxy mesh
Per-workload identity (survives IP churn)YesNo, subnet-sharedPartial
Default-deny egress by workloadYesImpracticalYes, with overhead
Added latency on allowed trafficNone (in-kernel)NoneProxy hop per request
FQDN policy with DNS trackingYesNoVaries
Behavioral anomaly detectionYesNoNo
Threat-intel correlationYesNoNo
Compliance reports & audit trailBuilt-inRoll your ownPartial
Operational footprint1 agent / nodeNone1 sidecar / pod
Deploy in minutes

Ships as a single AWS Marketplace container

One agent per node. Start on EKS with a Helm chart, or on ECS as a per-instance daemon. No per-connection sidecar to inject.

# one agent per node as a DaemonSet
helm repo add talos https://charts.talos-egress.dev
helm install talos talos/talos \
  --set image.tag=marketplace \
  --set cgroupPath=/sys/fs/cgroup

# apply a per-workload policy
kubectl apply -f payments-egress.yaml
# register the agent as an ECS daemon (EC2 launch type)
aws ecs register-task-definition \
  --cli-input-json file://deploy/ecs/taskdef.json

aws ecs create-service --launch-type EC2 \
  --scheduling-strategy DAEMON \
  --task-definition talos-egress
apiVersion: egress.talos.dev/v1alpha1
kind: EgressPolicy
metadata: {name: payments}
spec:
  workload: payments
  defaultAction: deny
  allow:
    - cidr: 10.0.0.0/16      # RDS subnet, any port
      name: rds-subnet
    - fqdn: api.stripe.com    # HTTPS only
      ports: [443]
    - awsEndpoint: s3         # S3 via VPC endpoint
Pricing

Usage-metered by enforced workload

Not per node, so many small pods per node never penalize you. Start free, upgrade when you need anomaly detection, threat intel, and multi-cluster.

Growth

Free
Up to 50 workloads, EKS only. For teams standing up default-deny egress for the first time.
  • In-kernel default-deny enforcement
  • FQDN, IP/CIDR & VPC endpoint policy
  • Baseline learning mode
  • Prometheus + Grafana dashboard
  • Community support
Start free
Most popular

Business

Usage / workload
Up to 500 workloads, EKS + ECS. The full detection and integration surface.
  • Everything in Growth
  • Behavioral anomaly detection
  • Threat-intel C2 feed
  • SIEM export (Splunk, S3, CloudWatch)
  • PagerDuty, Slack, Opsgenie alerts
  • Email & chat support
Choose Business

Enterprise

Custom
Unlimited workloads. For regulated fleets that need proof, controls, and an SLA.
  • Everything in Business
  • Custom PCI-DSS / HIPAA report templates
  • RBAC separation of duties
  • Point-in-time policy reconstruction
  • Fleet / multi-cluster federation
  • Dedicated support & SLA
Contact sales

All tiers ship as a single AWS Marketplace container. Open-core: the enforcement engine is Apache-2.0.

FAQ

Questions teams ask before rolling out

Does Talos add latency to our outbound requests?

No. Allow and deny decisions happen in-kernel at the cgroup connect hook. There is no proxy hop for legitimate traffic, which is exactly why latency-sensitive fintech and healthcare teams can run it on every outbound call.

How is this different from a service mesh or sidecar proxy?

A mesh puts a proxy next to every pod and adds a hop per request. Talos runs one agent per node and enforces in the kernel, so there is no per-pod sidecar and no added latency. It also adds behavioral anomaly detection and threat-intel correlation that a plain proxy allow-list does not have.

What about IP churn, autoscaling, and CDNs?

Policy binds to the workload's cgroup identity, not an IP, so it survives IP churn and autoscaling. FQDN rules use live DNS resolution tracking, so CDN and load-balanced SaaS endpoints do not break the way IP-only allow-lists do.

Do we have to hand-write allow-lists for hundreds of services?

No. Baseline learning mode observes a workload's normal egress for a window you choose, then suggests a tightened policy you can review and apply. It is the fastest way to onboard a large fleet.

Does it run on both EKS and ECS?

Yes. EKS is native via Kubernetes CRDs and a DaemonSet. ECS runs the agent as a per-instance daemon with task-role-tag based identity mapping. Both ship from the same AWS Marketplace container.

Is it open source?

Talos is open-core. The enforcement engine and agent are Apache-2.0. The enterprise layer (advanced anomaly detection, threat intel, SIEM export, compliance report templates, RBAC, and fleet federation) is commercially licensed.

Prove what your workloads can reach.

Stand up default-deny egress on one cluster today, then let Talos show you every connection it blocks.