Skip to content

[Substrate] Security & multi-tenant isolation (gVisor, agentgateway, per-user keys) #76

Description

@Sam123ben

Part of the Agent Substrate epic ⬆️. The reason Substrate is worth it for user-authored agents.

Goal

Run untrusted, user-authored agent code with strong isolation and per-user/tenant boundaries, on each user's own LLM key.

Today (grounded)

We have: ambient-mesh AuthorizationPolicies, NetworkPolicies, agentgateway, per-user passthrough ModelConfigs (forward the user's key as the A2A bearer — no shared key), the tenancy model (private-by-default, per-tenant uniqueness). Isolation guardrails in dispatch: HUMAN-principal only, connector-scoped keys, per-principal, never logged.

Tasks

  • Sandbox runtime: gVisor/Firecracker per Actor (kernel-level isolation) — confirm + enforce via WorkerPool config (#A/#B).
  • Network: route all Actor traffic through agentgateway with fine-grained egress/ingress policies (Substrate's model); deny-by-default egress, allowlist the LLM provider + approved MCP.
  • Per-user keys on Substrate: carry the passthrough ModelConfig pattern to SandboxAgent so an Actor runs on the triggering user's key (per-principal, never cross-user).
  • Multi-tenant: per-user/team/org isolation (gVisor + namespace/account boundaries); a user's agent can't read another tenant's tools/secrets.
  • Secrets: no platform secrets mounted into a user Actor unless explicitly granted; audit grants.
  • Threat-model doc: what a malicious user-authored agent can/can't do.

Acceptance

A user-authored agent runs gVisor-sandboxed, on the user's own key, with deny-by-default egress through agentgateway, and provably cannot reach another tenant's data.

Refs: KAGENT-INTEGRATION.md §7 (isolation), tesserix-k8s/.../istio-auth-policies, agentgateway; memory: SCM Per-User, Team/Org Connectors, User Connector Secrets.

— Part of #69

Metadata

Metadata

Assignees

Labels

agent-substratekagent Agent Substrate adoptionenhancementNew feature or requestkagentkagent / agent runtime

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions