𝕏 f B! L
案件・求人数 12,345
案件を探す(準備中) エージェントを探す(準備中) お役立ち情報 ログイン
案件・求人数 12,345
OpenClawのDockerサンドボックス|安全なAI実行環境の構築

OpenClawのDockerサンドボックス|安全なAI実行環境の構築

OpenClawDockerセキュリティサンドボックスAI安全性
目次

「AIエージェントにシェルアクセスを与えるのは怖い」——その直感は正しいです。だからこそ、サンドボックスが必要です。

OpenClawのDockerサンドボックスは、AIエージェントの実行環境をコンテナで分離し、ホストシステムへの影響を最小限に抑える三層セキュリティモデルを採用しています。この記事では、OpenClaw 完全攻略シリーズ第42弾として、安全なAIエージェント実行環境の構築方法を実践ガイドとして解説します。

この記事を3秒でまとめると

  • OpenClawはDockerコンテナ内でAIエージェントを実行し、ホストとの分離を実現
  • 三層セキュリティモデル(コンテナ分離・権限制御・ネットワーク分離)で多層防御
  • sandbox=require設定によるスキル実行の強制サンドボックス化で安全性を担保

なぜDockerサンドボックスが必要なのか

AIエージェントのセキュリティリスク

AIエージェントは強力なツールですが、以下のセキュリティリスクを内在しています。

  1. プロンプトインジェクション: 悪意のある指示が注入され、意図しないコマンドが実行される
  2. データ漏洩: エージェントがホスト上の機密ファイルにアクセスし、外部に送信
  3. 権限昇格: エージェントがシステム権限を取得し、ホスト全体を制御
  4. リソース枯渇: 無限ループやフォークボムによるシステムリソースの消費

これらのリスクは、エージェントがホスト環境で直接実行される場合に最大化されます。

OpenClaw三層セキュリティモデル

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エージェントの能力を活かしながら、セキュリティリスクを最小化する現実的なアプローチです。

導入ステップ:

  1. Docker Compose で基本的なサンドボックス環境を構築する
  2. sandbox=require を設定してスキル実行を強制分離する
  3. ネットワークのホワイトリストを設定する
  4. ログ監視とアラートを設定する
  5. 定期的にセキュリティ設定をレビューする

**AIエージェントのセキュリティは「利便性とのトレードオフ」ではなく「適切な設計で両立するもの」です。**OpenClawのサンドボックスを活用して、安全で生産的なAI運用環境を構築しましょう。

SES BASEでは、セキュリティ・DevOps関連のSES案件も多数掲載しています。案件を検索するからチェックしてみてください。

SES案件をお探しですか?

SES記事をもっと読む →
🏗️

SES BASE 編集長

SES業界歴10年以上のメンバーが在籍する編集チーム。SES企業での営業・エンジニア経験、フリーランス独立経験を持つメンバーが、業界のリアルな情報をお届けします。

📊 業界データに基づく記事制作 🔍 IPA・経済産業省データ参照 💼 SES実務経験者が執筆・監修