
2026/02/04 2:33
**Deno サンドボックス**
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
Deno Deploy の新しい Sandbox は、開発者が大規模言語モデル(LLM)によって生成されることが多い信頼できないコードを、安全に実行できるようにします。これらのコードは、秘密鍵を直接受け取らない分離されたマイクロ VM 内で実行されます。
Sandbox は軽量な Linux コンテナを使用し、起動時間が 1 秒未満です。また、
Sandbox.create() API を通じて JavaScript/TypeScript がサポートされ、SSH、HTTP、VS Code 経由で対話できます。シークレットはプレースホルダーとして提供され、アウトバウンドリクエストが承認済みのホストを対象とした場合にのみ解決されます。ネットワーク出口は
allowNet とアウトバウンドプロキシ(coder/httpjail に似た仕組み)によって制御され、許可されていないホストへのアクセスはブロックしつつ必要な API 呼び出しを可能にします。永続性は読み書き可能なボリュームや事前インストールされたツールチェーンのスナップショットで追加できるため、フレッシュ環境を高速に起動できます。
sandbox.deploy() を使用して直接 Deno Deploy にデプロイでき、Sandbox は自動スケーリングかつサーバーレスです。そのため AI エージェント、CI ランナー、および安全なプラグインシステムに最適です。現在のハードウェアは 2 vCPU、768 MB–4 GB のメモリを提供し、最大稼働時間は 30 分です。リージョンには Amsterdam と Chicago が含まれます。
料金はコンピュートタイムベースで、CPU は $0.05/h、メモリは $0.016/GB‑h、ボリュームストレージは $0.20/GiB‑month です。Pro ユーザーには無料クレジットが付与されます。エンタープライズ向け料金は deploy@deno.com までお問い合わせください。
この機能は Deno Deploy GA と同日にベータリリースされ、deno.com/sandbox、docs.deno.com/sandbox、jsr.io/@deno/sandbox、npm、および pypi.org/project/deno‑sandbox にてドキュメント化されています。
本文
Deno Sandbox – LLMで生成したコードを安全に、即座にデプロイ
過去一年間、Deno Deployをご利用の顧客が構築しているものに変化が見られます。
ユーザーがLLM(大規模言語モデル)でコードを書き、そのコードをレビューなしですぐに実行するプラットフォームです。
こうしたコードはしばしば自身でLLMへアクセスするため、APIキーやネットワーク接続が必要になります。
これは従来の「信頼できないプラグインを走らせる」問題ではありません。
LLM生成コードは 人間によるレビューなしに 実際の認証情報を使って外部 API を呼び出すことが可能です。
計算環境をサンドボックス化するだけでは不十分で、ネットワークアウトバウンドを制御し、秘密情報の流出を防止する必要があります。
Deno Sandbox はこれら両方を実現し、コードが完成したら再ビルドせずにそのまま Deno Deploy にデプロイできます。
完全な発表動画はこちらでご覧ください
なぜサンドボックスなのか?
LLM が生成したコード(ユーザーの LLM でも手書きでも)を直接サーバー上で走らせることは望ましくありません。
それはシステムを危険に晒し、API キーを盗み、悪意あるサイトへ接続させてしまう可能性があります。
隔離(Isolation)が不可欠です。
Deno Sandbox は Deno Deploy のクラウド上で動作する軽量 Linux マイクロVM を提供し、信頼できないコードを防御層付きで実行します。
- JavaScript または Python SDK から簡単に作成・起動
- 起動時間は 1 秒未満
- SSH、HTTP、または VS Code ウィンドウ経由で直接操作可能
import { Sandbox } from "@deno/sandbox"; await using sandbox = await Sandbox.create(); await sandbox.sh`ls -lh /`;
盗まれない秘密情報
Deno Sandbox においては、秘密情報は環境に入ることがありません。
コード側ではプレースホルダーしか見えません。
import { Sandbox } from "@deno/sandbox"; await using sandbox = await Sandbox.create({ secrets: { OPENAI_API_KEY: { hosts: ["api.openai.com"], value: process.env.OPENAI_API_KEY, }, }, }); await sandbox.sh`echo $OPENAI_API_KEY`;
実際のキーは、サンドボックスが許可されたホストへアウトバウンドリクエストを行ったときにのみ展開されます。
プロンプト注入コードが
evil.com へプレースホルダーを流出させても意味がありません。
ネットワークアウトバウンド制御
サンドボックスが通信できるホストを限定します:
await using sandbox = await Sandbox.create({ allowNet: ["api.openai.com", "*.anthropic.com"], });
リストに載っていないホストへのリクエストは VM の境界でブロックされます。
この機能は
coder/httpjail に似たアウトバウンドプロキシを通じて実装されています。
今後追加予定の機能:
- アウトバウンド接続の分析
- 信頼できるコードがリクエストを検査・変更するためのプログラム可能フック
JavaScript/TypeScript の信頼できないコードを走らせる際は、Deno の
--allow-net フラグと組み合わせてレイヤードな防御を実現してください。
サンドボックス → 本番
sandbox.deploy() でサンドボックス内のコードを直接 Deno Deploy にデプロイします:
const build = await sandbox.deploy("my-app", { production: true, build: { mode: "none", entrypoint: "server.ts" }, }); const revision = await build.done; console.log(revision.url);
1 回の呼び出しで、サンドボックスから自動スケーリングされる本番準備済みサーバーレスデプロイへ移行できます。
別の CI システムで再ビルドしたり、他ツールで再認証する必要はありません。
永続化
サンドボックスは デフォルトで揮発性 ですが、必要に応じて状態を保持できます:
- Volumes – キャッシュやデータベース、ユーザーデータ用の読み書きストレージ
- Snapshots – 事前インストール済みツールチェーンとボリューム基盤の読み取り専用イメージ
apt-get install を一度実行しスナップショットを作成すれば、以降のサンドボックスはすべて既にインストールされた状態で起動します。スナップショットから読み書き可能なボリュームを生成して数秒で新しい開発環境を立ち上げることができます。
技術仕様
| Spec | Value |
|---|---|
| Regions | アムステルダム、シカゴ |
| vCPUs | 2 |
| Memory | 768 MB – 4 GB |
| Lifetime | 揮発性またはタイムアウト(必要に応じて延長可) |
| Max lifetime | 30 分 |
| Boot time | < 1 秒 |
AI エージェントがコードを実行する環境、即席コーディングスペース、安全なプラグインシステム、揮発性 CI ランナー、および顧客提供コードに最適です。
価格
Deno Sandbox は Deno Deploy プランに含まれており、利用量ベースで競争力のある料金体系です。
計算時間を課金対象とし、ウォールクロック時間は課金されません。
| Resource | Rate |
|---|---|
| CPU time | $0.05/h (40 h が Pro で含まれる) |
| Memory | $0.016/GB‑h (1,000 GB‑h が Pro で含まれる) |
| Volume storage | $0.20/GiB-month (5 GiB が Pro で含まれる) |
詳細料金 →
エンタープライズプランもご相談ください –
deploy@deno.com までお問い合わせください。
はじめてみる
Deno Sandbox は本日からベータ版で公開され、同時に Deno Deploy の一般提供が開始されます。
- ランディングページ:https://deno.com/sandbox
- ドキュメント:https://docs.deno.com/sandbox
- JavaScript SDK:
または npmjsr.io/@deno/sandbox - Python SDK:https://pypi.org/project/deno-sandbox
Deno Sandbox であなた(または AI エージェント)が何を作るのか、ぜひご期待ください。