「AIエージェントにシェルアクセスを与えるのは怖い」——その直感は正しいです。だからこそ、サンドボックスが必要です。
OpenClawのDockerサンドボックスは、AIエージェントの実行環境をコンテナで分離し、ホストシステムへの影響を最小限に抑える三層セキュリティモデルを採用しています。この記事では、OpenClaw 完全攻略シリーズ第42弾として、安全なAIエージェント実行環境の構築方法を実践ガイドとして解説します。
この記事を3秒でまとめると
- OpenClawはDockerコンテナ内でAIエージェントを実行し、ホストとの分離を実現
- 三層セキュリティモデル(コンテナ分離・権限制御・ネットワーク分離)で多層防御
- sandbox=require設定によるスキル実行の強制サンドボックス化で安全性を担保
なぜDockerサンドボックスが必要なのか
AIエージェントのセキュリティリスク
AIエージェントは強力なツールですが、以下のセキュリティリスクを内在しています。
- プロンプトインジェクション: 悪意のある指示が注入され、意図しないコマンドが実行される
- データ漏洩: エージェントがホスト上の機密ファイルにアクセスし、外部に送信
- 権限昇格: エージェントがシステム権限を取得し、ホスト全体を制御
- リソース枯渇: 無限ループやフォークボムによるシステムリソースの消費
これらのリスクは、エージェントがホスト環境で直接実行される場合に最大化されます。

CVE-2026-25253の教訓と対策
2026年1月に報告されたCVE-2026-25253は、あるAIエージェントフレームワークにおいて、プロンプトインジェクション経由でホストのルートアクセスが取得される脆弱性でした。
この事例が示す教訓は明確です。AIエージェントの実行環境は、ホストシステムから物理的(論理的)に分離されるべきということです。NIST AI 600-1(AIリスク管理フレームワーク)でも、AI実行環境のサンドボックス化が推奨されています(出典: NIST AI 600-1)。
OpenClawのDockerサンドボックスアーキテクチャ
三層セキュリティモデルの概要
OpenClawは以下の三層でセキュリティを確保しています。
第1層: コンテナ分離
- Linux namespace / cgroupsによるプロセス分離
- ホストファイルシステムへのアクセス制限
- 独立したネットワークスタック
第2層: 権限制御
- Linux Capabilities の最小化(no-new-privileges)
- seccomp プロファイルによるシステムコール制限
- AppArmor / SELinux によるアクセス制御
第3層: ネットワーク分離
- 内部ネットワークのみ(外部通信は明示的に許可)
- DNS解決の制限
- Egress/Ingressフィルタリング
コンテナ分離の仕組み
OpenClawのサンドボックスは、通常のDockerコンテナよりも厳しい制約を課しています。
# OpenClawが内部で使用するセキュリティ設定のイメージ
security_opt:
- no-new-privileges:true
- seccomp:openclaw-seccomp.json
cap_drop:
- ALL
cap_add:
- NET_BIND_SERVICE # 必要最小限のケイパビリティのみ
read_only: true
tmpfs:
- /tmp:size=100m
サンドボックス環境のセットアップ手順
Docker Composeによる構築
OpenClawのサンドボックスは、Docker Composeで簡単に構築できます。
# docker-compose.sandbox.yml
version: '3.8'
services:
openclaw-sandbox:
image: openclaw/sandbox:latest
security_opt:
- no-new-privileges:true
cap_drop:
- ALL
volumes:
- ./workspace:/workspace:rw
- ./config:/config:ro
networks:
- sandbox-net
deploy:
resources:
limits:
cpus: '2.0'
memory: 4G
networks:
sandbox-net:
internal: true # 外部アクセス不可
# サンドボックスの起動
docker compose -f docker-compose.sandbox.yml up -d
OpenClaw本番デプロイガイドでも、本番環境の構築手順を解説しています。
権限設定とケイパビリティ制御
Linuxケイパビリティを最小限に設定することで、コンテナ内からの権限昇格を防止します。
| ケイパビリティ | デフォルト | 推奨設定 | 理由 |
|---|---|---|---|
| CAP_NET_ADMIN | 有効 | 無効 | ネットワーク設定変更は不要 |
| CAP_SYS_ADMIN | 有効 | 無効 | システム管理操作は不要 |
| CAP_SYS_PTRACE | 有効 | 無効 | プロセスデバッグは不要 |
| CAP_NET_BIND_SERVICE | 無効 | 有効 | ポートバインドに必要 |
ネットワーク分離の設定
サンドボックスのネットワーク設定では、外部通信を明示的にホワイトリストで管理します。
# 許可する外部通信先の例
ALLOWED_DOMAINS="
api.anthropic.com
api.openai.com
api.github.com
registry.npmjs.org
"
これにより、エージェントが意図しない外部サーバーにデータを送信するリスクを排除できます。
ファイルシステムとシークレットの保護
ボリュームマウントの最小化
サンドボックスにマウントするボリュームは、必要最小限のディレクトリのみにします。
良い例:
volumes:
- ./workspace/project-a:/workspace:rw # プロジェクトディレクトリのみ
- ./config/agent.json:/config/agent.json:ro # 設定は読み取り専用
悪い例:
volumes:
- /:/host:rw # ホスト全体をマウント(絶対にやらない!)
- ~/.ssh:/root/.ssh:rw # SSH鍵をマウント(危険)
APIキー・認証情報の安全な管理
シークレット情報は環境変数やDockerシークレットで管理し、ファイルとして永続化しないようにします。
# Docker Secretsを使った安全なシークレット管理
secrets:
anthropic_api_key:
external: true
openai_api_key:
external: true
OpenClawセキュリティ強化ガイドでも、シークレット管理のベストプラクティスを解説しています。
サンドボックス内でのスキル実行
sandbox=requireの設定と効果
OpenClawの設定で sandbox=require を指定すると、すべてのスキル実行がDockerサンドボックス内に強制されます。
{
"agents": {
"my-agent": {
"sandbox": "require",
"skills": ["coding", "web-search"]
}
}
}
この設定により、どのスキルが実行されても以下が保証されます。
- ホストファイルシステムへのアクセスが制限される
- ネットワーク通信が制御される
- リソース使用量が制限される
ホストアクセスが必要な場合の制御
一部のスキル(カメラ制御、USB機器操作等)はホストアクセスが必要です。その場合は、スキル単位で例外設定を行います。
{
"skills": {
"camera": {
"sandbox": "inherit",
"elevated": true,
"reason": "カメラデバイスアクセスに必要"
}
}
}
監視とログによるセキュリティ監査
コンテナ内操作のログ取得
サンドボックス内で実行されたすべての操作をログに記録し、事後監査に備えます。
# Dockerのログ出力設定
docker logs --follow openclaw-sandbox 2>&1 | tee /var/log/openclaw/sandbox.log
監視・アラートガイドで、監視体制の構築方法を解説しています。
不審な挙動の検出と通知
以下のパターンを検出した場合、自動でアラートを送信する設定が推奨されます。
- 異常なファイルアクセス: /etc/passwd, /etc/shadow 等のシステムファイルへの読み取り試行
- 大量のネットワーク通信: 短時間での大量のDNSクエリやHTTPリクエスト
- 権限昇格の試行: sudo, su, chmod 777 等のコマンド実行
- リソース異常: CPU/メモリ使用率の急激な上昇
インシデント対応自動化ガイドでも、自動対応フローを解説しています。
まとめ:安全性と利便性を両立するサンドボックス運用
Dockerサンドボックスは、AIエージェントの能力を活かしながら、セキュリティリスクを最小化する現実的なアプローチです。
導入ステップ:
- Docker Compose で基本的なサンドボックス環境を構築する
- sandbox=require を設定してスキル実行を強制分離する
- ネットワークのホワイトリストを設定する
- ログ監視とアラートを設定する
- 定期的にセキュリティ設定をレビューする
**AIエージェントのセキュリティは「利便性とのトレードオフ」ではなく「適切な設計で両立するもの」です。**OpenClawのサンドボックスを活用して、安全で生産的なAI運用環境を構築しましょう。
SES BASEでは、セキュリティ・DevOps関連のSES案件も多数掲載しています。案件を検索するからチェックしてみてください。