@namzu/sandbox 4.0.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +32 -0
- package/README.md +27 -3
- package/dist/backends/docker/index.d.ts +50 -4
- package/dist/backends/docker/index.d.ts.map +1 -1
- package/dist/backends/docker/index.js +118 -6
- package/dist/backends/docker/index.js.map +1 -1
- package/dist/index.d.ts +13 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/backends/docker/index.ts +135 -6
- package/src/index.ts +13 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,37 @@
|
|
|
1
1
|
# @namzu/sandbox
|
|
2
2
|
|
|
3
|
+
## 5.0.0
|
|
4
|
+
|
|
5
|
+
### Major Changes
|
|
6
|
+
|
|
7
|
+
- a208ba8: The docker backend's default configuration could not create a sandbox, and the test that would have caught it had never run
|
|
8
|
+
|
|
9
|
+
`create()` failed on the documented defaults — `network: 'none'`, `hostReachability: 'host-port'` — with `index of untyped nil` thrown out of a `docker inspect` template, reported as "the container exited immediately". The container was alive and well. Docker binds a published port to the container's address by NAT, so a container with no route out has no address to bind to and nothing is published; measured against Docker 29.6, `--network none --publish 127.0.0.1::2024` is _accepted_ and `NetworkSettings.Ports` comes back `{"2024/tcp":[]}`. An `--internal` network behaves the same way.
|
|
10
|
+
|
|
11
|
+
`deny-all` had the same defect from the other side. It answered `--network none`, which reads as the strictest possible answer and removes the interface the worker is reached on — so it denied the way _in_ along with the way out, in both reachability modes.
|
|
12
|
+
|
|
13
|
+
**Why no one noticed.** `packages/sandbox/vitest.config.ts` excludes `**/*.smoke.test.ts` from every run it governs, including the `test:smoke` run that exists to run them; naming the files as CLI arguments does not re-include them, because positional arguments filter what discovery already found. With `--passWithNoTests`, `pnpm sandbox:smoke` printed `No test files found, exiting with code 0` and the workflow went green — after building a Debian image with a browser and an office suite in it to run nothing. The suite's own fail-fast guard for a misconfigured CI could not fire either: it lives inside a file that was never loaded.
|
|
14
|
+
|
|
15
|
+
**What changes for you.**
|
|
16
|
+
|
|
17
|
+
- The smoke suite has its own config and no `--passWithNoTests`, so an empty run is now a failure.
|
|
18
|
+
- `create()` checks the container's network against the daemon before starting anything, and refuses with the reason. **The `network` default of `'none'` is one of the pairings it refuses** — name a bridge to reach the worker by host port, or set `hostReachability: 'container-network'`.
|
|
19
|
+
- `deny-all` now keeps the configured network and **requires it to be one created with `docker network create --internal`**, verified rather than trusted. That is a real boundary: outbound gets `Network unreachable` from the kernel, not from an environment variable a workload may decline to read, while sibling containers still reach the worker by name.
|
|
20
|
+
- Consequently **`deny-all` over a published host port is refused as impossible**, not unsupported: a published port needs a route out and `deny-all` needs none. Closing that means moving the worker's control channel off TCP, which is tracked separately.
|
|
21
|
+
- `resolveNetwork` no longer returns `'none'` for `deny-all`. `assertNetworkCarriesThePolicy` and `isInternalNetwork` are exported alongside it.
|
|
22
|
+
|
|
23
|
+
### Patch Changes
|
|
24
|
+
|
|
25
|
+
- 3e591c7: Record why the capability drop is load-bearing for egress denial
|
|
26
|
+
|
|
27
|
+
Comment only; no behaviour change.
|
|
28
|
+
|
|
29
|
+
`deny-all` is now enforced by the container's network being `--internal`, and it was worth measuring what that is actually worth. A container on such a network has no default route — but `ip route add default via <sibling>` is refused with `Operation not permitted` under docker's **default** capability set, before `--cap-drop=ALL` is applied at all. `NET_ADMIN` is what would lift that.
|
|
30
|
+
|
|
31
|
+
So the internal network removes the route and the capability drop removes the ability to put one back. Both are needed, and `HARDENING_ARGS` previously justified the drop only on unrelated grounds (`CAP_DAC_OVERRIDE` walking past read-only binds) — a rationale that would survive softening the flag, while this one would not.
|
|
32
|
+
|
|
33
|
+
Also recorded: given `NET_ADMIN` and a manually installed route, a dual-homed sibling _does_ forward the packet (`net.ipv4.ip_forward` is `1` inside a container). No connection establishes because nothing masquerades the internal subnet, but the docblock says plainly that this is not a security property — one-way egress is enough for exfiltration, and what was measured is a failed handshake, not a dropped packet.
|
|
34
|
+
|
|
3
35
|
## 4.0.0
|
|
4
36
|
|
|
5
37
|
### Major Changes
|
package/README.md
CHANGED
|
@@ -64,11 +64,34 @@ throws instead of quietly ignoring it:
|
|
|
64
64
|
|
|
65
65
|
| Backend | `deny-all` | `allow-all` | `static` | `resolver` |
|
|
66
66
|
|---|---|---|---|---|
|
|
67
|
-
| `container:docker` | enforced
|
|
67
|
+
| `container:docker` | enforced on an `--internal` network, and **throws** under `hostReachability: 'host-port'` | enforced | **throws** — no proxy to filter through | **throws** |
|
|
68
68
|
| `container:standby-pool` | **throws** | **throws** | **throws** | **throws** |
|
|
69
69
|
| `microvm:firecracker` | enforced (empty allowlist) | enforced (no allowlist) | enforced | enforced — `resolve()` is called and its result forwarded |
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
### The network has to be able to carry the policy
|
|
72
|
+
|
|
73
|
+
`network` and `hostReachability` are not independent of the egress policy,
|
|
74
|
+
and pairing them wrongly used to produce a container nobody could reach:
|
|
75
|
+
|
|
76
|
+
| You want | `network` | `hostReachability` |
|
|
77
|
+
|---|---|---|
|
|
78
|
+
| no egress, enforced | a network created `--internal` | `container-network` |
|
|
79
|
+
| egress, restricted by allowlist | a bridge, plus an egress proxy | either |
|
|
80
|
+
| egress, unrestricted | a bridge | either |
|
|
81
|
+
|
|
82
|
+
Docker binds a published port to the container's address by NAT, so a
|
|
83
|
+
container with no route out has no address to bind to and **nothing is
|
|
84
|
+
published** — that holds for `--network none` and for an `--internal`
|
|
85
|
+
network alike. `deny-all` needs exactly such a network. The two
|
|
86
|
+
requirements are opposites, so *no egress plus a published host port* is
|
|
87
|
+
impossible rather than unsupported; closing that means moving the worker's
|
|
88
|
+
control channel off TCP.
|
|
89
|
+
|
|
90
|
+
`create()` checks both against the daemon and refuses with the reason.
|
|
91
|
+
Note that the `network` default of `'none'` is one of the pairings it
|
|
92
|
+
refuses.
|
|
93
|
+
|
|
94
|
+
Two rows of the table above carry the same lesson from opposite directions.
|
|
72
95
|
|
|
73
96
|
The docker row used to accept a restrictive policy and silently grant the
|
|
74
97
|
configured network, which is worse than not supporting the feature: the
|
|
@@ -120,7 +143,8 @@ Every container is launched with:
|
|
|
120
143
|
layout advisory rather than enforced.
|
|
121
144
|
- `--security-opt=no-new-privileges` — without it a setuid binary in the
|
|
122
145
|
image re-escalates after the drop.
|
|
123
|
-
-
|
|
146
|
+
- the configured network, which defaults to `none` (see the egress table
|
|
147
|
+
above, and the network note below it).
|
|
124
148
|
|
|
125
149
|
There is deliberately **no re-add list** for capabilities. A workload that
|
|
126
150
|
genuinely needs one should say so somewhere a reviewer sees it, not inherit
|
|
@@ -134,10 +134,17 @@ export declare function buildDockerBackend(config: DockerBackendInternalConfig):
|
|
|
134
134
|
*
|
|
135
135
|
* The policy used to be accepted and silently ignored, which is worse than
|
|
136
136
|
* not supporting it: a host that set `deny-all` believed the container had
|
|
137
|
-
* no network and it had the configured one.
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
137
|
+
* no network and it had the configured one. It cannot enforce a host
|
|
138
|
+
* allowlist without a proxy this backend does not have, so those policies
|
|
139
|
+
* are REFUSED rather than quietly downgraded to "allow everything".
|
|
140
|
+
*
|
|
141
|
+
* `deny-all` used to answer `'none'`, which reads as the strictest possible
|
|
142
|
+
* answer and produced a sandbox nobody could reach. `--network none`
|
|
143
|
+
* removes every interface, and this backend's control channel is inbound
|
|
144
|
+
* TCP to the worker — so removing the interfaces removes the way IN, not
|
|
145
|
+
* just the way out. It now keeps the configured network, and
|
|
146
|
+
* {@link assertNetworkCarriesThePolicy} is what makes that network a
|
|
147
|
+
* boundary.
|
|
141
148
|
*/
|
|
142
149
|
export declare function resolveNetwork(configured: string, egress: EgressPolicy | undefined, hasProxy?: boolean): string;
|
|
143
150
|
/**
|
|
@@ -151,6 +158,45 @@ export declare function resolveNetwork(configured: string, egress: EgressPolicy
|
|
|
151
158
|
export declare function resolveAllowedHosts(egress: EgressPolicy): Promise<readonly string[]>;
|
|
152
159
|
/** Whether a policy needs a boundary before it can be enforced at all. */
|
|
153
160
|
export declare function needsEgressProxy(egress: EgressPolicy | undefined): boolean;
|
|
161
|
+
/**
|
|
162
|
+
* Whether the daemon says a network has no route out.
|
|
163
|
+
*
|
|
164
|
+
* Takes the raw `docker network inspect --format '{{.Internal}}'` output
|
|
165
|
+
* rather than reading it, so every decision below is testable without a
|
|
166
|
+
* daemon and the daemon call stays one line. Anything other than a literal
|
|
167
|
+
* `true` counts as "not internal": an unreadable answer is not evidence of
|
|
168
|
+
* a boundary.
|
|
169
|
+
*/
|
|
170
|
+
export declare function isInternalNetwork(inspectedInternalFlag: string): boolean;
|
|
171
|
+
/**
|
|
172
|
+
* Refuse a container whose network cannot do what was asked of it.
|
|
173
|
+
*
|
|
174
|
+
* Two requirements meet on the same object here, and both were previously
|
|
175
|
+
* unstated — which is how the backend came to ship a default configuration
|
|
176
|
+
* that could not create a sandbox at all:
|
|
177
|
+
*
|
|
178
|
+
* - **A published host port needs a route out.** Docker binds the port by
|
|
179
|
+
* NAT to the container's address, so a container with no address gets no
|
|
180
|
+
* binding. Measured against Docker 29.6: `--network none --publish
|
|
181
|
+
* 127.0.0.1::2024` is *accepted*, `NetworkSettings.Ports` comes back
|
|
182
|
+
* `{"2024/tcp":[]}`, and `docker port` prints nothing. An `--internal`
|
|
183
|
+
* network behaves the same way. The port readback then failed with
|
|
184
|
+
* `index of untyped nil` and reported it as "the container exited
|
|
185
|
+
* immediately" — blaming a container that was alive and well.
|
|
186
|
+
* - **`deny-all` needs a network with no route out.** Since it no longer
|
|
187
|
+
* answers `--network none`, the configured name is all that stands
|
|
188
|
+
* between the policy and ordinary outbound networking, and a name says
|
|
189
|
+
* nothing. `deny-all` pointed at the default bridge would be full egress
|
|
190
|
+
* under a policy object claiming none — the "accepted and silently
|
|
191
|
+
* ignored" failure the rest of this file exists to refuse.
|
|
192
|
+
*
|
|
193
|
+
* They are exact opposites, so `deny-all` over a published host port is
|
|
194
|
+
* impossible rather than merely unsupported: no arrangement of docker
|
|
195
|
+
* networking both denies all egress and lets the host reach the worker over
|
|
196
|
+
* TCP. Closing that needs the control channel moved off TCP — see #398 —
|
|
197
|
+
* and is not a flag this function could accept.
|
|
198
|
+
*/
|
|
199
|
+
export declare function assertNetworkCarriesThePolicy(network: string, reachability: 'host-port' | 'container-network', egress: EgressPolicy | undefined, inspectedInternalFlag: string): void;
|
|
154
200
|
/**
|
|
155
201
|
* The options the boundary is built from, as a value.
|
|
156
202
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EACN,KAAK,sBAAsB,EAE3B,KAAK,8BAA8B,EAenC,MAAM,YAAY,CAAA;AAEnB,OAAO,KAAK,EACX,kBAAkB,EAClB,kBAAkB,EAElB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAEN,KAAK,YAAY,EACjB,KAAK,cAAc,EAEnB,MAAM,gBAAgB,CAAA;AAEvB;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,8BAA8B,CAAA;IAC/C,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAA;IAE9B;;;;;;;;OAQG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;IAE3B;;;;;;;;;OASG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAA;IAE5D;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAE3C,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAA;IAC7C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;IAC5C;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;IAC7D;;;;;;;OAOG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAClD;AAOD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,2BAA2B,GAAG,cAAc,CAQtF;AAED
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,17 +47,23 @@ export function buildDockerBackend(config) {
|
|
|
47
47
|
*
|
|
48
48
|
* The policy used to be accepted and silently ignored, which is worse than
|
|
49
49
|
* not supporting it: a host that set `deny-all` believed the container had
|
|
50
|
-
* no network and it had the configured one.
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
50
|
+
* no network and it had the configured one. It cannot enforce a host
|
|
51
|
+
* allowlist without a proxy this backend does not have, so those policies
|
|
52
|
+
* are REFUSED rather than quietly downgraded to "allow everything".
|
|
53
|
+
*
|
|
54
|
+
* `deny-all` used to answer `'none'`, which reads as the strictest possible
|
|
55
|
+
* answer and produced a sandbox nobody could reach. `--network none`
|
|
56
|
+
* removes every interface, and this backend's control channel is inbound
|
|
57
|
+
* TCP to the worker — so removing the interfaces removes the way IN, not
|
|
58
|
+
* just the way out. It now keeps the configured network, and
|
|
59
|
+
* {@link assertNetworkCarriesThePolicy} is what makes that network a
|
|
60
|
+
* boundary.
|
|
54
61
|
*/
|
|
55
62
|
export function resolveNetwork(configured, egress, hasProxy = false) {
|
|
56
63
|
if (!egress)
|
|
57
64
|
return configured;
|
|
58
65
|
switch (egress.kind) {
|
|
59
66
|
case 'deny-all':
|
|
60
|
-
return 'none';
|
|
61
67
|
case 'allow-all':
|
|
62
68
|
return configured;
|
|
63
69
|
default:
|
|
@@ -90,6 +96,55 @@ export async function resolveAllowedHosts(egress) {
|
|
|
90
96
|
export function needsEgressProxy(egress) {
|
|
91
97
|
return egress?.kind === 'static' || egress?.kind === 'resolver';
|
|
92
98
|
}
|
|
99
|
+
/**
|
|
100
|
+
* Whether the daemon says a network has no route out.
|
|
101
|
+
*
|
|
102
|
+
* Takes the raw `docker network inspect --format '{{.Internal}}'` output
|
|
103
|
+
* rather than reading it, so every decision below is testable without a
|
|
104
|
+
* daemon and the daemon call stays one line. Anything other than a literal
|
|
105
|
+
* `true` counts as "not internal": an unreadable answer is not evidence of
|
|
106
|
+
* a boundary.
|
|
107
|
+
*/
|
|
108
|
+
export function isInternalNetwork(inspectedInternalFlag) {
|
|
109
|
+
return inspectedInternalFlag.trim() === 'true';
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Refuse a container whose network cannot do what was asked of it.
|
|
113
|
+
*
|
|
114
|
+
* Two requirements meet on the same object here, and both were previously
|
|
115
|
+
* unstated — which is how the backend came to ship a default configuration
|
|
116
|
+
* that could not create a sandbox at all:
|
|
117
|
+
*
|
|
118
|
+
* - **A published host port needs a route out.** Docker binds the port by
|
|
119
|
+
* NAT to the container's address, so a container with no address gets no
|
|
120
|
+
* binding. Measured against Docker 29.6: `--network none --publish
|
|
121
|
+
* 127.0.0.1::2024` is *accepted*, `NetworkSettings.Ports` comes back
|
|
122
|
+
* `{"2024/tcp":[]}`, and `docker port` prints nothing. An `--internal`
|
|
123
|
+
* network behaves the same way. The port readback then failed with
|
|
124
|
+
* `index of untyped nil` and reported it as "the container exited
|
|
125
|
+
* immediately" — blaming a container that was alive and well.
|
|
126
|
+
* - **`deny-all` needs a network with no route out.** Since it no longer
|
|
127
|
+
* answers `--network none`, the configured name is all that stands
|
|
128
|
+
* between the policy and ordinary outbound networking, and a name says
|
|
129
|
+
* nothing. `deny-all` pointed at the default bridge would be full egress
|
|
130
|
+
* under a policy object claiming none — the "accepted and silently
|
|
131
|
+
* ignored" failure the rest of this file exists to refuse.
|
|
132
|
+
*
|
|
133
|
+
* They are exact opposites, so `deny-all` over a published host port is
|
|
134
|
+
* impossible rather than merely unsupported: no arrangement of docker
|
|
135
|
+
* networking both denies all egress and lets the host reach the worker over
|
|
136
|
+
* TCP. Closing that needs the control channel moved off TCP — see #398 —
|
|
137
|
+
* and is not a flag this function could accept.
|
|
138
|
+
*/
|
|
139
|
+
export function assertNetworkCarriesThePolicy(network, reachability, egress, inspectedInternalFlag) {
|
|
140
|
+
const internal = isInternalNetwork(inspectedInternalFlag);
|
|
141
|
+
if (reachability === 'host-port' && (network === 'none' || internal)) {
|
|
142
|
+
throw new Error(`The docker sandbox backend cannot publish the worker's port on network '${network}': docker binds a published port to the container's address, and a container with no route out has no address to bind to, so nothing is published and the sandbox is unreachable. Either give config.network a bridge that has one, or set hostReachability: 'container-network' and reach the worker by container name. Refusing rather than starting a container nobody can reach.`);
|
|
143
|
+
}
|
|
144
|
+
if (egress?.kind === 'deny-all' && !internal) {
|
|
145
|
+
throw new Error(`The docker sandbox backend was asked for an egress policy of 'deny-all' on network '${network}', but that network is not internal, so the container can still reach the world. Create it with 'docker network create --internal ${network}' — an internal bridge denies egress in the kernel, rather than through an environment variable a workload may decline to read, while sibling containers still reach the worker by name. Refusing rather than reporting a boundary that is not there.`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
93
148
|
/**
|
|
94
149
|
* The options the boundary is built from, as a value.
|
|
95
150
|
*
|
|
@@ -122,6 +177,30 @@ export function egressProxyOptions(config, policy) {
|
|
|
122
177
|
* `--cap-drop=ALL` is deliberately not softened by a re-add list: a
|
|
123
178
|
* workload that genuinely needs a capability should say so through
|
|
124
179
|
* `extraRunArgs` and be visible in review.
|
|
180
|
+
*
|
|
181
|
+
* **It carries a second, independent load, and this is the one that would
|
|
182
|
+
* survive being forgotten.** An egress policy of `deny-all` is enforced by
|
|
183
|
+
* the container's network being `--internal`, which gives it no route out.
|
|
184
|
+
* Measured against Docker 29.6: a container on such a network has only its
|
|
185
|
+
* own subnet in `ip route` and no default, and `ip route add default via
|
|
186
|
+
* <a sibling>` answers `RTNETLINK answers: Operation not permitted` —
|
|
187
|
+
* already, with docker's DEFAULT capability set, before this flag is
|
|
188
|
+
* applied. `NET_ADMIN` is what would lift that, and dropping every
|
|
189
|
+
* capability is what guarantees the workload does not have it.
|
|
190
|
+
*
|
|
191
|
+
* So the internal network removes the route and this flag removes the
|
|
192
|
+
* ability to put one back. Both are needed. Measured on a container given
|
|
193
|
+
* `--cap-add=NET_ADMIN`, adding the route and reaching a sibling attached
|
|
194
|
+
* to an external bridge produces `download timed out` rather than
|
|
195
|
+
* `Network unreachable` — the route existed, the packet left, and the
|
|
196
|
+
* dual-homed sibling forwarded it (`net.ipv4.ip_forward` is `1` inside a
|
|
197
|
+
* container). Nothing masquerades the internal subnet so no reply finds its
|
|
198
|
+
* way back and no connection establishes, **but that is not a security
|
|
199
|
+
* property**: one-way egress is sufficient for exfiltration, and what was
|
|
200
|
+
* measured is that the handshake fails, not that the packet was dropped.
|
|
201
|
+
*
|
|
202
|
+
* Recorded here because the first justification above would survive
|
|
203
|
+
* softening this flag and the second would not.
|
|
125
204
|
*/
|
|
126
205
|
const HARDENING_ARGS = ['--cap-drop=ALL', '--security-opt=no-new-privileges'];
|
|
127
206
|
/** Name the container reaches the host-side egress proxy by. */
|
|
@@ -139,9 +218,25 @@ async function spawnDockerSandbox(config, options) {
|
|
|
139
218
|
const policy = options.egress;
|
|
140
219
|
egressProxy = await new EgressProxy(egressProxyOptions(config, policy)).listen();
|
|
141
220
|
}
|
|
221
|
+
const hostReachability = config.hostReachability ?? 'host-port';
|
|
142
222
|
const network = resolveNetwork(config.network ?? 'none', options.egress, egressProxy !== undefined);
|
|
223
|
+
// Whether this network can carry the reachability mode and the policy is
|
|
224
|
+
// a fact about the network, so it is checked against the daemon rather
|
|
225
|
+
// than inferred from its name. Before the container starts on purpose: a
|
|
226
|
+
// refusal here is a wiring mistake and must not arrive dressed as a
|
|
227
|
+
// container that failed to come up, which is exactly how it used to
|
|
228
|
+
// arrive.
|
|
229
|
+
try {
|
|
230
|
+
assertNetworkCarriesThePolicy(network, hostReachability, options.egress, await inspectNetworkInternalFlag(docker, network));
|
|
231
|
+
}
|
|
232
|
+
catch (err) {
|
|
233
|
+
// The allowlist kinds start a proxy above, and this is outside the
|
|
234
|
+
// try/catch that owns teardown — so without this the refusal would
|
|
235
|
+
// leave a listening server on loopback stamping real credentials.
|
|
236
|
+
await egressProxy?.close().catch(() => undefined);
|
|
237
|
+
throw err;
|
|
238
|
+
}
|
|
143
239
|
const runtime = config.runtime;
|
|
144
|
-
const hostReachability = config.hostReachability ?? 'host-port';
|
|
145
240
|
const containerName = `namzu-sandbox-${id}`;
|
|
146
241
|
// All bind sources come from the consumer-supplied layout. The
|
|
147
242
|
// backend never allocates host directories and never removes them
|
|
@@ -563,6 +658,23 @@ function runOnce(binary, args) {
|
|
|
563
658
|
});
|
|
564
659
|
});
|
|
565
660
|
}
|
|
661
|
+
/**
|
|
662
|
+
* Read a network's `Internal` flag from the daemon.
|
|
663
|
+
*
|
|
664
|
+
* A network that does not exist, or a daemon that is down, comes back as the
|
|
665
|
+
* empty string rather than throwing, so {@link assertNetworkCarriesThePolicy}
|
|
666
|
+
* refuses it for the reason the caller actually cares about — "this is not
|
|
667
|
+
* a boundary" — instead of surfacing a docker CLI error that says nothing
|
|
668
|
+
* about the egress policy that prompted the lookup.
|
|
669
|
+
*/
|
|
670
|
+
async function inspectNetworkInternalFlag(docker, network) {
|
|
671
|
+
try {
|
|
672
|
+
return await runOnce(docker, ['network', 'inspect', '--format', '{{.Internal}}', network]);
|
|
673
|
+
}
|
|
674
|
+
catch {
|
|
675
|
+
return '';
|
|
676
|
+
}
|
|
677
|
+
}
|
|
566
678
|
function runOnceQuiet(binary, args) {
|
|
567
679
|
return new Promise((resolve) => {
|
|
568
680
|
const child = spawn(binary, args, { stdio: 'ignore' });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/backends/docker/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -148,11 +148,19 @@ export interface ContainerBackendConfig {
|
|
|
148
148
|
readonly hostReachability?: 'host-port' | 'container-network';
|
|
149
149
|
/**
|
|
150
150
|
* Docker network the spawned container attaches to. Default
|
|
151
|
-
* `'none'` (no inbound or outbound network).
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
155
|
-
*
|
|
151
|
+
* `'none'` (no inbound or outbound network).
|
|
152
|
+
*
|
|
153
|
+
* **The default does not work with the default `hostReachability`,
|
|
154
|
+
* and `create()` refuses rather than starting a container nobody can
|
|
155
|
+
* reach.** Docker binds a published port to the container's address,
|
|
156
|
+
* so a container with no route out has no address to bind to and
|
|
157
|
+
* nothing is published. Name a bridge here to reach the worker by host
|
|
158
|
+
* port, or set `hostReachability: 'container-network'` and reach it by
|
|
159
|
+
* container name — that mode works on an `--internal` network, which
|
|
160
|
+
* is also the only way to get `deny-all` enforced.
|
|
161
|
+
*
|
|
162
|
+
* Egress from the sandbox is governed separately by `EgressPolicy`,
|
|
163
|
+
* which is checked against this network rather than trusted.
|
|
156
164
|
*/
|
|
157
165
|
readonly network?: 'none' | 'bridge' | string;
|
|
158
166
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,KAAK,EACX,sBAAsB,EACtB,OAAO,EAEP,eAAe,EACf,MAAM,YAAY,CAAA;AASnB,YAAY,EACX,sBAAsB,EACtB,2BAA2B,EAC3B,2BAA2B,EAC3B,0BAA0B,EAC1B,8BAA8B,GAC9B,MAAM,YAAY,CAAA;AAOnB,OAAO,EACN,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,4BAA4B,GAC5B,MAAM,YAAY,CAAA;AAMnB,YAAY,EACX,gCAAgC,EAChC,yBAAyB,GACzB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACN,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,mBAAmB,GACnB,MAAM,qCAAqC,CAAA;AAM5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,SAAS,CAAA;AAEjD;;;;GAIG;AACH,MAAM,MAAM,oBAAoB,GAC7B,sBAAsB,GACtB,2BAA2B,GAC3B,oBAAoB,CAAA;AAEvB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAA;IACpC,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAA;IAC/B,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAA;IAC9B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAA;IACtC,QAAQ,CAAC,+BAA+B,EAAE,MAAM,CAAA;IAChD,QAAQ,CAAC,6BAA6B,CAAC,EAAE,MAAM,CAAA;IAC/C;;;OAGG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAA;IAC3C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;IACrC,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAA;IAC/B;;;;;;OAMG;IACH,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CACrC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,WAAW,sBAAsB;IACtC,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAA;IAC1B,QAAQ,CAAC,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAA;IACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;;;;OAQG;IACH,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,GAAG,mBAAmB,CAAA;IAC7D
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AASH,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAA;AACjF,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,iCAAiC,CAAA;AAazE,qEAAqE;AACrE,2DAA2D;AAC3D,iEAAiE;AACjE,6DAA6D;AAC7D,oEAAoE;AACpE,OAAO,EACN,4BAA4B,EAC5B,6BAA6B,EAC7B,iCAAiC,EACjC,gCAAgC,EAChC,4BAA4B,GAC5B,MAAM,YAAY,CAAA;AAUnB,OAAO,EAGN,mBAAmB,GACnB,MAAM,qCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@namzu/sandbox",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "5.0.0",
|
|
4
4
|
"description": "Pluggable sandbox provider for @namzu/sdk. Process-level isolation (bubblewrap on Linux, Seatbelt on macOS, via @anthropic-ai/sandbox-runtime) for developer dev loops; container-level isolation (HTTP worker + a loopback-bound egress proxy that allows by resolved address and brokers outbound credentials so they never enter the sandbox) for multi-tenant production. Backend selected at construction time; the SDK consumes both through the same SandboxProvider interface.",
|
|
5
5
|
"license": "FSL-1.1-MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@types/node": "^22.19.17",
|
|
51
51
|
"typescript": "^5.5.0",
|
|
52
52
|
"vitest": "^3.2.6",
|
|
53
|
-
"@namzu/sdk": "^
|
|
53
|
+
"@namzu/sdk": "^27.1.0"
|
|
54
54
|
},
|
|
55
55
|
"scripts": {
|
|
56
56
|
"build": "tsc --build",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"lint:fix": "biome check --write src/",
|
|
60
60
|
"format": "biome format --write src/",
|
|
61
61
|
"test": "vitest run --passWithNoTests",
|
|
62
|
-
"test:smoke": "vitest run --
|
|
62
|
+
"test:smoke": "vitest run --config vitest.smoke.config.ts",
|
|
63
63
|
"typecheck": "tsc --noEmit"
|
|
64
64
|
}
|
|
65
65
|
}
|
|
@@ -186,10 +186,17 @@ export function buildDockerBackend(config: DockerBackendInternalConfig): Sandbox
|
|
|
186
186
|
*
|
|
187
187
|
* The policy used to be accepted and silently ignored, which is worse than
|
|
188
188
|
* not supporting it: a host that set `deny-all` believed the container had
|
|
189
|
-
* no network and it had the configured one.
|
|
190
|
-
*
|
|
191
|
-
*
|
|
192
|
-
*
|
|
189
|
+
* no network and it had the configured one. It cannot enforce a host
|
|
190
|
+
* allowlist without a proxy this backend does not have, so those policies
|
|
191
|
+
* are REFUSED rather than quietly downgraded to "allow everything".
|
|
192
|
+
*
|
|
193
|
+
* `deny-all` used to answer `'none'`, which reads as the strictest possible
|
|
194
|
+
* answer and produced a sandbox nobody could reach. `--network none`
|
|
195
|
+
* removes every interface, and this backend's control channel is inbound
|
|
196
|
+
* TCP to the worker — so removing the interfaces removes the way IN, not
|
|
197
|
+
* just the way out. It now keeps the configured network, and
|
|
198
|
+
* {@link assertNetworkCarriesThePolicy} is what makes that network a
|
|
199
|
+
* boundary.
|
|
193
200
|
*/
|
|
194
201
|
export function resolveNetwork(
|
|
195
202
|
configured: string,
|
|
@@ -200,7 +207,6 @@ export function resolveNetwork(
|
|
|
200
207
|
|
|
201
208
|
switch (egress.kind) {
|
|
202
209
|
case 'deny-all':
|
|
203
|
-
return 'none'
|
|
204
210
|
case 'allow-all':
|
|
205
211
|
return configured
|
|
206
212
|
default:
|
|
@@ -237,6 +243,68 @@ export function needsEgressProxy(egress: EgressPolicy | undefined): boolean {
|
|
|
237
243
|
return egress?.kind === 'static' || egress?.kind === 'resolver'
|
|
238
244
|
}
|
|
239
245
|
|
|
246
|
+
/**
|
|
247
|
+
* Whether the daemon says a network has no route out.
|
|
248
|
+
*
|
|
249
|
+
* Takes the raw `docker network inspect --format '{{.Internal}}'` output
|
|
250
|
+
* rather than reading it, so every decision below is testable without a
|
|
251
|
+
* daemon and the daemon call stays one line. Anything other than a literal
|
|
252
|
+
* `true` counts as "not internal": an unreadable answer is not evidence of
|
|
253
|
+
* a boundary.
|
|
254
|
+
*/
|
|
255
|
+
export function isInternalNetwork(inspectedInternalFlag: string): boolean {
|
|
256
|
+
return inspectedInternalFlag.trim() === 'true'
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Refuse a container whose network cannot do what was asked of it.
|
|
261
|
+
*
|
|
262
|
+
* Two requirements meet on the same object here, and both were previously
|
|
263
|
+
* unstated — which is how the backend came to ship a default configuration
|
|
264
|
+
* that could not create a sandbox at all:
|
|
265
|
+
*
|
|
266
|
+
* - **A published host port needs a route out.** Docker binds the port by
|
|
267
|
+
* NAT to the container's address, so a container with no address gets no
|
|
268
|
+
* binding. Measured against Docker 29.6: `--network none --publish
|
|
269
|
+
* 127.0.0.1::2024` is *accepted*, `NetworkSettings.Ports` comes back
|
|
270
|
+
* `{"2024/tcp":[]}`, and `docker port` prints nothing. An `--internal`
|
|
271
|
+
* network behaves the same way. The port readback then failed with
|
|
272
|
+
* `index of untyped nil` and reported it as "the container exited
|
|
273
|
+
* immediately" — blaming a container that was alive and well.
|
|
274
|
+
* - **`deny-all` needs a network with no route out.** Since it no longer
|
|
275
|
+
* answers `--network none`, the configured name is all that stands
|
|
276
|
+
* between the policy and ordinary outbound networking, and a name says
|
|
277
|
+
* nothing. `deny-all` pointed at the default bridge would be full egress
|
|
278
|
+
* under a policy object claiming none — the "accepted and silently
|
|
279
|
+
* ignored" failure the rest of this file exists to refuse.
|
|
280
|
+
*
|
|
281
|
+
* They are exact opposites, so `deny-all` over a published host port is
|
|
282
|
+
* impossible rather than merely unsupported: no arrangement of docker
|
|
283
|
+
* networking both denies all egress and lets the host reach the worker over
|
|
284
|
+
* TCP. Closing that needs the control channel moved off TCP — see #398 —
|
|
285
|
+
* and is not a flag this function could accept.
|
|
286
|
+
*/
|
|
287
|
+
export function assertNetworkCarriesThePolicy(
|
|
288
|
+
network: string,
|
|
289
|
+
reachability: 'host-port' | 'container-network',
|
|
290
|
+
egress: EgressPolicy | undefined,
|
|
291
|
+
inspectedInternalFlag: string,
|
|
292
|
+
): void {
|
|
293
|
+
const internal = isInternalNetwork(inspectedInternalFlag)
|
|
294
|
+
|
|
295
|
+
if (reachability === 'host-port' && (network === 'none' || internal)) {
|
|
296
|
+
throw new Error(
|
|
297
|
+
`The docker sandbox backend cannot publish the worker's port on network '${network}': docker binds a published port to the container's address, and a container with no route out has no address to bind to, so nothing is published and the sandbox is unreachable. Either give config.network a bridge that has one, or set hostReachability: 'container-network' and reach the worker by container name. Refusing rather than starting a container nobody can reach.`,
|
|
298
|
+
)
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
if (egress?.kind === 'deny-all' && !internal) {
|
|
302
|
+
throw new Error(
|
|
303
|
+
`The docker sandbox backend was asked for an egress policy of 'deny-all' on network '${network}', but that network is not internal, so the container can still reach the world. Create it with 'docker network create --internal ${network}' — an internal bridge denies egress in the kernel, rather than through an environment variable a workload may decline to read, while sibling containers still reach the worker by name. Refusing rather than reporting a boundary that is not there.`,
|
|
304
|
+
)
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
|
|
240
308
|
/**
|
|
241
309
|
* The options the boundary is built from, as a value.
|
|
242
310
|
*
|
|
@@ -273,6 +341,30 @@ export function egressProxyOptions(
|
|
|
273
341
|
* `--cap-drop=ALL` is deliberately not softened by a re-add list: a
|
|
274
342
|
* workload that genuinely needs a capability should say so through
|
|
275
343
|
* `extraRunArgs` and be visible in review.
|
|
344
|
+
*
|
|
345
|
+
* **It carries a second, independent load, and this is the one that would
|
|
346
|
+
* survive being forgotten.** An egress policy of `deny-all` is enforced by
|
|
347
|
+
* the container's network being `--internal`, which gives it no route out.
|
|
348
|
+
* Measured against Docker 29.6: a container on such a network has only its
|
|
349
|
+
* own subnet in `ip route` and no default, and `ip route add default via
|
|
350
|
+
* <a sibling>` answers `RTNETLINK answers: Operation not permitted` —
|
|
351
|
+
* already, with docker's DEFAULT capability set, before this flag is
|
|
352
|
+
* applied. `NET_ADMIN` is what would lift that, and dropping every
|
|
353
|
+
* capability is what guarantees the workload does not have it.
|
|
354
|
+
*
|
|
355
|
+
* So the internal network removes the route and this flag removes the
|
|
356
|
+
* ability to put one back. Both are needed. Measured on a container given
|
|
357
|
+
* `--cap-add=NET_ADMIN`, adding the route and reaching a sibling attached
|
|
358
|
+
* to an external bridge produces `download timed out` rather than
|
|
359
|
+
* `Network unreachable` — the route existed, the packet left, and the
|
|
360
|
+
* dual-homed sibling forwarded it (`net.ipv4.ip_forward` is `1` inside a
|
|
361
|
+
* container). Nothing masquerades the internal subnet so no reply finds its
|
|
362
|
+
* way back and no connection establishes, **but that is not a security
|
|
363
|
+
* property**: one-way egress is sufficient for exfiltration, and what was
|
|
364
|
+
* measured is that the handshake fails, not that the packet was dropped.
|
|
365
|
+
*
|
|
366
|
+
* Recorded here because the first justification above would survive
|
|
367
|
+
* softening this flag and the second would not.
|
|
276
368
|
*/
|
|
277
369
|
const HARDENING_ARGS: readonly string[] = ['--cap-drop=ALL', '--security-opt=no-new-privileges']
|
|
278
370
|
|
|
@@ -297,13 +389,33 @@ async function spawnDockerSandbox(
|
|
|
297
389
|
egressProxy = await new EgressProxy(egressProxyOptions(config, policy)).listen()
|
|
298
390
|
}
|
|
299
391
|
|
|
392
|
+
const hostReachability = config.hostReachability ?? 'host-port'
|
|
300
393
|
const network = resolveNetwork(
|
|
301
394
|
config.network ?? 'none',
|
|
302
395
|
options.egress,
|
|
303
396
|
egressProxy !== undefined,
|
|
304
397
|
)
|
|
398
|
+
// Whether this network can carry the reachability mode and the policy is
|
|
399
|
+
// a fact about the network, so it is checked against the daemon rather
|
|
400
|
+
// than inferred from its name. Before the container starts on purpose: a
|
|
401
|
+
// refusal here is a wiring mistake and must not arrive dressed as a
|
|
402
|
+
// container that failed to come up, which is exactly how it used to
|
|
403
|
+
// arrive.
|
|
404
|
+
try {
|
|
405
|
+
assertNetworkCarriesThePolicy(
|
|
406
|
+
network,
|
|
407
|
+
hostReachability,
|
|
408
|
+
options.egress,
|
|
409
|
+
await inspectNetworkInternalFlag(docker, network),
|
|
410
|
+
)
|
|
411
|
+
} catch (err) {
|
|
412
|
+
// The allowlist kinds start a proxy above, and this is outside the
|
|
413
|
+
// try/catch that owns teardown — so without this the refusal would
|
|
414
|
+
// leave a listening server on loopback stamping real credentials.
|
|
415
|
+
await egressProxy?.close().catch(() => undefined)
|
|
416
|
+
throw err
|
|
417
|
+
}
|
|
305
418
|
const runtime = config.runtime
|
|
306
|
-
const hostReachability = config.hostReachability ?? 'host-port'
|
|
307
419
|
const containerName = `namzu-sandbox-${id}`
|
|
308
420
|
|
|
309
421
|
// All bind sources come from the consumer-supplied layout. The
|
|
@@ -806,6 +918,23 @@ function runOnce(binary: string, args: string[]): Promise<string> {
|
|
|
806
918
|
})
|
|
807
919
|
}
|
|
808
920
|
|
|
921
|
+
/**
|
|
922
|
+
* Read a network's `Internal` flag from the daemon.
|
|
923
|
+
*
|
|
924
|
+
* A network that does not exist, or a daemon that is down, comes back as the
|
|
925
|
+
* empty string rather than throwing, so {@link assertNetworkCarriesThePolicy}
|
|
926
|
+
* refuses it for the reason the caller actually cares about — "this is not
|
|
927
|
+
* a boundary" — instead of surfacing a docker CLI error that says nothing
|
|
928
|
+
* about the egress policy that prompted the lookup.
|
|
929
|
+
*/
|
|
930
|
+
async function inspectNetworkInternalFlag(docker: string, network: string): Promise<string> {
|
|
931
|
+
try {
|
|
932
|
+
return await runOnce(docker, ['network', 'inspect', '--format', '{{.Internal}}', network])
|
|
933
|
+
} catch {
|
|
934
|
+
return ''
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
|
|
809
938
|
function runOnceQuiet(binary: string, args: string[]): Promise<void> {
|
|
810
939
|
return new Promise((resolve) => {
|
|
811
940
|
const child = spawn(binary, args, { stdio: 'ignore' })
|
package/src/index.ts
CHANGED
|
@@ -203,11 +203,19 @@ export interface ContainerBackendConfig {
|
|
|
203
203
|
readonly hostReachability?: 'host-port' | 'container-network'
|
|
204
204
|
/**
|
|
205
205
|
* Docker network the spawned container attaches to. Default
|
|
206
|
-
* `'none'` (no inbound or outbound network).
|
|
207
|
-
*
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
206
|
+
* `'none'` (no inbound or outbound network).
|
|
207
|
+
*
|
|
208
|
+
* **The default does not work with the default `hostReachability`,
|
|
209
|
+
* and `create()` refuses rather than starting a container nobody can
|
|
210
|
+
* reach.** Docker binds a published port to the container's address,
|
|
211
|
+
* so a container with no route out has no address to bind to and
|
|
212
|
+
* nothing is published. Name a bridge here to reach the worker by host
|
|
213
|
+
* port, or set `hostReachability: 'container-network'` and reach it by
|
|
214
|
+
* container name — that mode works on an `--internal` network, which
|
|
215
|
+
* is also the only way to get `deny-all` enforced.
|
|
216
|
+
*
|
|
217
|
+
* Egress from the sandbox is governed separately by `EgressPolicy`,
|
|
218
|
+
* which is checked against this network rather than trusted.
|
|
211
219
|
*/
|
|
212
220
|
readonly network?: 'none' | 'bridge' | string
|
|
213
221
|
/**
|