10月2日、Claudio Masoloが「Docker Sandbox Kit Spec: Packaging AI Agent Permissions as OCI Images」と題した記事を公開した。DockerがAIエージェントのパーミッション管理をOCIイメージとして標準化するため、Sandbox Kit仕様をCNCF(Cloud Native Computing Foundation)に提案したことを詳しく紹介している。
AIエージェントのパーミッションが「審査可能なアーティファクト」になる
Claude CodeやOpenAI CodexのようなAIエージェントは、ユーザーの代わりにパッケージのインストール、API呼び出し、クレデンシャルの利用を行う。しかし今、それらに与えている権限——バインドマウント、広範なトークン、開放されたファイアウォールルール——は、シェルの履歴やダッシュボード、あるいは担当者の記憶の中にバラバラに存在している。審査可能な成果物として残っていないのが現状だ。
Dockerはこれを「OCIが解決しようとした断片化と同じ問題だ」と指摘する。ランタイムベンダーが各自の答えを作り始める前に、標準を持ち込もうという狙いだ。
Sandbox Kit仕様とは何か
Sandbox Kit Specは、エージェント本体・ツール群・パーミッション要求を一つのOCIイメージにまとめる仕様だ。Apache 2.0ライセンスで公開されており、現在v3に達している。9月24日のWeAreDevelopersカンファレンスで、DockerはこれをCNCFに提案することを発表した。
仕様はv1・v2を経て段階的に設計が洗練されてきた。初期バージョンではカスタムのメディアタイプやサイドカーファイルを用いた独自アーティファクト型として設計されていたが、既存ツールチェーンとの互換性を高める方向で仕様が見直され、v3で現在の形に落ち着いた。
v3での重要な変更点は、KitがOCIの独自アーティファクト型をやめたことだ。カスタムのメディアタイプもサイドカーファイルも不要になり、マニフェストにvnd.docker.sandbox.kit.descriptorという1つのアノテーションを持つだけになった。これにより、既存のツールチェーンをそのまま使える:
docker buildx buildでビルドdocker pullで取得- 既存のスキャナー・署名ツールもそのまま動作
FROM命令で参照可能- ダイジェストをピン留めすると、コンテンツとパーミッションが同時に固定される
パーミッションの書き方
パーミッションは型付き・バージョン管理されたケイパビリティとして宣言する。例えば:
com.docker.sandbox/network-policy@2com.docker.sandbox/credential@1
GitHub CLIの例では、api.github.com へのアクセスを許可しつつ、/repos/** への DELETE を明示的に拒否している。denyが勝つルールだ。
クレデンシャルはプロキシ管理に対応しており、準拠ランタイムが実際のトークンをリクエスト時に注入する。サンドボックス内部にはセンチネル値のみが存在し、実トークンは露出しない。
Kitはあくまでパーミッションを「要求」するだけで、許可するのはホスト側だ。準拠ランタイムがなければアノテーションは無効になる。要求が満たせない場合、起動は拒否される。
ミックスインとコンポジション
一つの起動は、1つのワークロードKit(ルートファイルシステムを提供)と、任意数のミックスインオーバーレイで構成される。ミックスインはフラグの順序ではなく、provides/requires の依存グラフで順序が決まる。
requiresが未解決、または2つのKitが同じ名前をprovideしていると解決失敗- ネットワークルールは和集合で結合
- 非互換な宣言はエラー
また、各ディスクリプタは正規化されたグラント集合に変換される。更新をゲートできるランタイムはそのセットを記録し、denyルールの削除を含む権限の拡大を伴うバージョンアップを停止できる。
現状の制約と今後
仕様には2つの適合テストスイート(Kitアーティファクト用とランタイム用)が同梱される。
ただし、現時点で準拠ランタイムはDocker Sandboxes(エージェントをマイクロVM上で独自カーネルと共に実行する実装)のみだ。異なるランタイム間のポータビリティはまだ実証されていない点は留意が必要だ。
CNCFへの提案についても、受け入れが承認されたかどうか、どのマチュリティレベルで入るかはまだ発表されていない。CNCFはSandbox・Incubating・Graduatedという3段階のマチュリティモデルを採用しており、新規提案は通常Sandboxから審査が始まる。CNCF CTOのChris Aniszczyk氏は以下のようにコメントしている。
Standards are what let an ecosystem move fast without fragmenting, and few companies understand that better than Docker. By delivering Sandbox Kits as standard OCI images, Docker is giving the industry an open, repeatable way to package an AI agent, its tools, and its guardrails as one artifact.
(標準こそがエコシステムを断片化せずに加速させる。DockerはSandbox KitをOCIイメージとして届けることで、AIエージェント・ツール・ガードレールを一つのアーティファクトとしてパッケージする、オープンで再現可能な手段を業界に提供している)
Dockerはこの取り組みについて、かつてイメージフォーマットとruncをOCIに寄贈しコンテナ標準化につながった経緯と同様の流れを狙っていると説明している。当時の標準化がコンテナエコシステムの爆発的な普及を後押しした実績を踏まえると、今回の提案がAIエージェントの運用基盤においても同様の役割を果たすことをDockerは意図していると読み取れる。
エンジニアが試したい場合は docker/sandbox-kit-spec リポジトリが起点になる。sbx CLI を使って sbx run ./hello --kit ./gh のように動作確認できる。なお、sbx CLI の実行にはDockerが動作する環境が前提となるが、マイクロVM分離を活用するDocker Sandboxesランタイムの詳細な動作要件については、リポジトリのREADMEおよびリリースノートを参照されたい。
詳細はDocker Sandbox Kit Spec: Packaging AI Agent Permissions as OCI Imagesを参照していただきたい。