目的
AWS CloudFormation テンプレートに NVIDIA NemoClaw(OpenShell)サンドボックスと LiteLLM プロキシを統合し、カーネルレベルで隔離されたセキュアな AI エージェント基盤を構築する。
アーキテクチャ
Browser → SSM Port Forward → host:18789 (SSH LocalForward)
→ Sandbox:18789 (OpenClaw Gateway)
→ https://inference.local (OpenShell managed inference proxy)
→ host.openshell.internal:4000 (LiteLLM on host)
→ Amazon Bedrock (IAM Role)
コンポーネント構成
| コンポーネント |
実行場所 |
役割 |
| OpenClaw |
sandbox 内 |
AI エージェント。チャット、コード実行、ツール呼び出し |
| OpenShell |
k3s クラスタ (Docker) |
サンドボックスのライフサイクル管理、inference proxy、ネットワークポリシー |
| LiteLLM |
ホスト OS (systemd) |
OpenAI API 形式 → Bedrock API のプロトコル変換 |
| Amazon Bedrock |
AWS |
LLM推論(Nova Lite 2、Claude 等) |
セキュリティモデル(3層のLinuxカーネル隔離)
- Landlock LSM:
/sandbox と /tmp のみ書き込み可。ホストの SSH キーや .env は不可視
- seccomp-BPF:
mount, ptrace, reboot 等の危険なシステムコールをブロック
- Network Namespace: デフォルトで全アウトバウンド通信を遮断。
https://inference.local のみ許可
- クレデンシャル注入: API キーはホスト側の OpenShell プロキシが保持。sandbox 内には存在しない
従来方式(EnableSandbox=false)との比較
| 項目 |
従来(Docker sandbox) |
本実装(NemoClaw sandbox) |
| OpenClaw の場所 |
ホストに直接インストール (npm, 22GB) |
sandbox イメージに内蔵(~5GB) |
| コード実行の隔離 |
OpenClaw 内蔵の Docker sandbox(アプリレベル) |
Landlock + seccomp + Network Namespace(カーネルレベル) |
| ネットワーク隔離 |
Docker network(インターネット到達可能) |
デフォルト全遮断、allowlist のみ |
| API キーの保護 |
コンテナ内の環境変数に存在 |
sandbox 内に存在しない(プロキシが注入) |
| LLM アクセス経路 |
OpenClaw → Bedrock(直接) |
OpenClaw → inference.local → LiteLLM → Bedrock |
NemoClaw sandbox は OpenClaw 自体をカーネルレベルで隔離するため、従来の Docker sandbox(Docker-in-Docker)は不要。
実装内容
scripts/setup-nemoclaw-litellm.sh — セットアップスクリプト
- inotify 制限設定(k3s 安定動作に必須)
- LiteLLM プロキシのインストールと systemd サービス化
- OpenShell CLI のインストール(NemoClaw installer 経由)
- OpenShell ゲートウェイ起動
host.openshell.internal の IP 修正(Docker network gateway IP を動的検出)
- LiteLLM を OpenAI 互換プロバイダーとして登録 + inference route 設定
- Sandbox policy 作成
- サンドボックス作成 + CRD hostAliases パッチ + Pod 再作成
- SSH 経由で OpenClaw 設定配信 + ゲートウェイ起動
- SSH LocalForward の systemd サービス化
clawdbot-bedrock.yaml — CloudFormation テンプレート
EnableSandbox パラメータ(デフォルト: true)で NemoClaw+LiteLLM を制御
- sandbox mode 時に inotify 制限を自動設定
EnableSandbox=false は従来通り Bedrock 直接接続
ドキュメント
SECURITY.md, TROUBLESHOOTING.md, README.md, DEPLOYMENT.md を更新
対象ファイル
clawdbot-bedrock.yaml (Linux template)
scripts/setup-nemoclaw-litellm.sh (セットアップスクリプト)
- 関連ドキュメント (README.md, DEPLOYMENT.md, SECURITY.md, TROUBLESHOOTING.md)
目的
AWS CloudFormation テンプレートに NVIDIA NemoClaw(OpenShell)サンドボックスと LiteLLM プロキシを統合し、カーネルレベルで隔離されたセキュアな AI エージェント基盤を構築する。
アーキテクチャ
コンポーネント構成
セキュリティモデル(3層のLinuxカーネル隔離)
/sandboxと/tmpのみ書き込み可。ホストの SSH キーや.envは不可視mount,ptrace,reboot等の危険なシステムコールをブロックhttps://inference.localのみ許可従来方式(EnableSandbox=false)との比較
NemoClaw sandbox は OpenClaw 自体をカーネルレベルで隔離するため、従来の Docker sandbox(Docker-in-Docker)は不要。
実装内容
scripts/setup-nemoclaw-litellm.sh— セットアップスクリプトhost.openshell.internalの IP 修正(Docker network gateway IP を動的検出)clawdbot-bedrock.yaml— CloudFormation テンプレートEnableSandboxパラメータ(デフォルト: true)で NemoClaw+LiteLLM を制御EnableSandbox=falseは従来通り Bedrock 直接接続ドキュメント
SECURITY.md,TROUBLESHOOTING.md,README.md,DEPLOYMENT.mdを更新対象ファイル
clawdbot-bedrock.yaml(Linux template)scripts/setup-nemoclaw-litellm.sh(セットアップスクリプト)