4 ポイント 投稿者 GN⁺ 2026-02-04 | 1件のコメント | WhatsAppで共有
  • 信頼できないコードを安全に実行するためのセキュアな Linux microVM 環境を提供
  • コード実行中、シークレットキーの保護ネットワークアクセス制御により、LLM 生成コードやユーザーコードのデータ漏えいリスクを遮断
  • sandbox.deploy() コマンドで、開発環境からDeno Deploy へ直接デプロイ可能。別途ビルドや認証プロセスは不要
  • ボリュームとスナップショット機能により、キャッシュ、データベース、開発環境を高速に再現可能
  • AI エージェント、プラグインシステム、CI ランナーなど、セキュリティが必要なコード実行環境に適している

Deno Sandbox 概要

  • Deno Sandbox は、Deno Deploy クラウド上の軽量 Linux microVM で信頼できないコードを実行する機能を提供
    • JavaScript または Python SDK から作成でき、起動時間は1 秒未満
    • SSH、HTTP、VS Code を通じて直接操作可能
  • LLM が生成したコードやユーザー提供コードが、API キーを含む外部呼び出しを行う際のセキュリティ問題の解決を目指している
  • サンドボックス内で実行されたコードは、システム分離と多層防御(Defense-in-depth) の構造で保護される

盗めないシークレット

  • サンドボックス環境では、シークレットキーが実際の環境変数として露出しない
    • コード内部からはプレースホルダー文字列にしかアクセスできない
    • 承認されたホストへのアウトバウンドリクエスト時にのみ実際のキーが注入される
  • たとえば OPENAI_API_KEYapi.openai.com へのリクエスト時にのみ有効化され、他のドメインへ流出しても無効化される
  • これにより、プロンプトインジェクションや悪意あるコードによるキー窃取の試みを防止できる

ネットワーク送信制御

  • サンドボックスは、許可されたホスト一覧(allowNet) 以外へのネットワークリクエストを遮断
    • 例: ["api.openai.com", "*.anthropic.com"]
  • すべてのネットワークトラフィックはVM 境界で遮断され、coder/httpjail に似たアウトバウンドプロキシを通じてポリシーが適用される
  • 今後はアウトバウンド接続の分析およびリクエスト検査・変更のためのプログラマブルフックを追加予定
  • Deno の --allow-net フラグと組み合わせることで、二重のネットワークセキュリティ層を構成できる

Sandbox から本番へ

  • sandbox.deploy() コマンドにより、サンドボックスから Deno Deploy へ直接デプロイ可能
    • 個別の CI ビルドや認証プロセスなしで、開発環境を即座にサーバーレス本番環境へ移行できる
    • サンプルコードでは my-appproduction: true オプションでデプロイし、その後 URL を出力
  • これにより、自動スケール可能なサーバーレスデプロイを単一呼び出しで実行できる

永続化

  • サンドボックスは基本的に**揮発性(ephemeral)**だが、状態保存が必要な場合には次の機能を提供
    • Volumes: キャッシュ、データベース、ユーザーデータ向けの読み書き可能なストレージ
    • Snapshots: ツールチェーンやベースボリュームを含む読み取り専用イメージ
  • apt-get install 後にスナップショットを作成すれば、以後すべてのサンドボックスを事前インストール済み環境で即座に起動できる
  • スナップショットベースのボリュームにより、新しい開発環境を数秒で作成できる

技術詳細

  • リージョン: Amsterdam、Chicago
  • vCPU: 2
  • メモリ: 768MB ~ 4GB
  • 寿命: 一時的(ephemeral)またはタイムアウトベース。必要に応じて延長可能
  • 最大寿命: 30 分
  • 起動時間: 1 秒未満
  • 適したユースケース: AI エージェントのコード実行セキュアなプラグインシステム一時的な CI ランナーユーザー提供コードの実行環境

料金

  • Deno Deploy の料金プランに含まれ、従量課金制
    • CPU 時間: $0.05/h(Pro プランに 40 時間含む)
    • メモリ: $0.016/GB-h(Pro プランに 1000 GB-h 含む)
    • ボリュームストレージ: $0.20/GiB-month(Pro プランに 5 GiB 含む)
  • エンタープライズプランは別途問い合わせ可能

はじめる

  • Deno Sandbox はベータ版として公開され、Deno Deploy の**一般提供(GA)**とともに利用可能
  • 主なリソース
  • Deno チームは、ユーザーや AI エージェントが Deno Sandbox でどのようなプロジェクトを構築するのか期待している

1件のコメント

 
GN⁺ 2026-02-04
Hacker Newsの意見
  • DenoやJavaScriptをまったく使わなくてもよい点が興味深い
    Python向けSDKのdeno-sandboxを通じてサンドボックスを作成し、コマンド実行、ファイル入出力などができる
    APIプロトコルはWebSocketベースで動作していることを確認した

    • サンドボックスがローカルではなくクラウドで実行される点は、最初は明確ではなかった
  • Deno Sandboxのシークレット処理方式が印象的
    コード内部では実際のキーの代わりにプレースホルダーだけが見え、承認済みホストへ出ていくリクエスト時にのみ本物のキーが注入される
    悪意あるコードがこのプレースホルダーを外部に流出させようとしても役に立たない

    • ただし、プロキシが単に文字列置換をしているだけなら、攻撃者が承認済みホストの1つでキーをエコーバックさせるよう誘導できるのではないかという疑問がある
      プロキシがレスポンス方向でもキーを再度置換するなら難しいだろうが、それでも完璧な防御ではなさそう
      文脈を理解するプロキシベースのシークレット注入のほうがより安全かもしれない
    • FlyのTokenizerを思い出させる
      アプリケーションが直接キーを扱わず、プロキシが代わりにAPIキーを追加する構造で、セキュリティ露出リスクを減らす
    • Denoの公式ブログでもこのアイデアが紹介されている
      Secrets that can’t be stolen
      悪意あるコードがシークレットを恒久的に窃取することはできないが、それでもそのキーを使って悪意あるリクエストを送ることはできる
      ちょうどXSSがhttpOnlyクッキーを読めなくても、そのクッキーでリクエストを送れるのと似た概念
    • HTTPSリクエストを横取りするMITMプロキシ方式である可能性が高い
      この場合、証明書ピンニングのような機能は難しくなるかもしれない
    • TCPベースのDB接続のようにヘッダー置換ができない場合はどう処理するのか気になる
      Vaultのような機能が追加されるのかも聞いてみたい
  • Denoチームによれば、最近はLLMが生成したコードをそのまま実行するプラットフォーム型サービスが増えている
    こうしたコードが外部APIを呼び出すには、実際の認証情報とネットワークアクセスが必要になる
    単純なサンドボックス化だけでは不十分で、ネットワーク制御とシークレット保護があわせて必要になる
    Deno Sandboxはこの2つをどちらも提供し、コードの準備ができればDeno Deployへそのままデプロイできる

    • 「これは単なるプラグインサンドボックスではなくAIコード実行プラットフォームだ」という文句を読むたびに、本能的に「これはAIだ」と思ってしまう
  • 私たちのチームも似たようなサンドボックス環境をFirecracker + Goで自前構築した
    データ主権の問題でEU内でのみ提供する必要があり、ハードウェア仮想化が可能な場所ならどこにでもデプロイできる
    認証情報はLLMが直接扱わないよう、スコープ制限されたCLIをその場で生成して提供している
    LLMはそれを単なるbashコマンドのように呼び出すだけ
    最新モデルはコーディングアシスタントとして学習されているので、このアプローチのほうがはるかに自然で効率的

  • シークレット置換方式は興味深いが、実際にOAuth 1、JWT、HMACのようなキー変換が必要な場合には壊れるのではないかと思う
    また、キーがペイロードの一部である場合、置換によってContent-Lengthの不一致のようなHTTP上の問題も起こり得る
    さらに、この方式はSQLインジェクションのような別種の攻撃には無力
    結局のところ、これは完全な防御策というより部分的な緩和策程度に見える

  • 無料プランがあるのでGlitchのように実験用として使ってみたくなるが、こうした無料サービスはいつも途中で終了した経験が多く、慎重になってしまう

  • シークレットのプレースホルダー設計は良い選択に見える
    ただ、最近はサンドボックス製品が多すぎる — Modal、Daytona、Fly、Cloudflare、Denoなど
    実際のプロダクションで何が使われているのか気になる

    • 実際のところ、こうしたサービスの多くはほぼVMラッパーの水準なので、EC2やGCP SDKで直接実装することも可能
    • Factory、Nvidia、Perplexity、ManusなどはE2Bをプロダクションで使っており、これまでに2億個以上のサンドボックスを実行したという
  • Deno Sandboxが提供する軽量Linux microVMがDeno Deployクラウドで動くとされているが、
    これをセルフホストされたLinux環境でも動かせるのかが最大の疑問

    • ただし、ほとんどの企業はロックイン戦略を取る
      完全にオープンソース化するとAWSやGCPに複製されてしまうからだ
      結局、他人のサンドボックスの中に城を築くような気分だが、現実的にはそれが唯一の収益モデルでもある
  • Claude ProやMaxプランをこうした環境で使うと、毎回違うIPから接続することになってAnthropicが多重ユーザーと誤認してブロックするのではないかと心配になる
    また、セッションが30分に制限されている理由も気になる

    • 近いうちにセッション寿命の延長を予定しているとのこと。内部の技術調整が必要で時間がかかっているという
    • ちなみに私は約50個のIPからこのように使っているが問題はなかった
      Anthropicは単に「人が直接使っているか」を判断するヒューリスティックを使っているようだ
    • こうした使い方の目的が月額サブスクリプションプランでAPIへ直接アクセスしようとしているのか、それとも別の用途なのか気になる