Skip to content

Isolation

View as Markdown

Daytona sandboxes are isolated by default. Each sandbox runs as a hardware-isolated microVM with its own kernel: code running in a sandbox cannot read another sandbox’s filesystem or memory, is not on a shared network with other sandboxes, and its credentials and API access are scoped to its own project. Isolation operates at three boundaries:

BoundaryWhat is separatedMechanisms
RuntimeKernel, processes, filesystem, and memory of each sandbox• Sandboxes
• Resources
NetworkTraffic entering (ingress) and leaving (egress) each sandbox• Network policy
• Preview
• Ports
ProjectAccess to sandboxes, data, and credentials• Projects
• API keys
• Secrets

Runtime isolation separates what runs inside one sandbox from the host it executes on and from every other sandbox. Each sandbox runs as a Firecracker microVM with its own kernel, filesystem, and network stack. The boundary is enforced by the hypervisor, not by the guest: code inside a sandbox cannot observe or interfere with other sandboxes or the host.

Network isolation controls traffic in each direction separately. Egress is open by default and locked down per sandbox with a network policy; ingress is closed by default and opened per endpoint; sandboxes never share a network.

DirectionDefaultControls
Sandbox to internetOpen egressNetwork policy: default-deny with an allow list of IPs, CIDRs, and domains
Internet to sandboxClosed; no port is reachable until exposedPreview URLs (token-authenticated unless an endpoint is made public), declared ports, and SSH
Sandbox to sandboxNo shared networkNone; sandboxes reach each other only through exposed endpoints

Project isolation separates tenants. Organizations are the unit of membership and billing; projects are the unit of isolation. Every sandbox, image, snapshot, secret, and API key belongs to exactly one project, and access control is enforced at that boundary: an API key from one project cannot see or operate on another project’s resources.

Within a project, access narrows further to the following mechanisms:

MechanismWhat it scopesHow it works
Scoped API keysWhat a key can doEach key carries an explicit verb:resource scope list chosen at creation, and every request is confined to those scopes; write: and delete: imply read: on the same resource. Keys can carry an expiry. Revocation takes effect immediately on the API; toolbox and SSH access through the proxy can continue for up to 30 seconds after revocation.
SecretsCredentials used in a sandboxA sandbox holds an opaque placeholder; an outbound proxy substitutes the real value only for requests to the secret’s allowed domains. Responses are not rewritten, so a destination that echoes the credential back returns the real value into the sandbox.