Claude Code Docker環境の権限管理:NVIDIA OpenShell入門

Claude Code Docker環境の権限管理を考えるために、NVIDIA OpenShellの仕組みと導入手順を解説します。ファイル・ネットワーク・認証情報の制御、稼働中に変えられるポリシー、Windows対応の制約、実効権限の確認と許可・拒否テストまで、チームで評価する際の要点をまとめました。

公開日

Claude Code Docker環境の権限管理:NVIDIA OpenShell入門

Claude Code Docker環境を含め、コーディングエージェントには作業領域と承認済みサービスへのアクセスだけを渡し、マシン全体を自由に使わせずに運用できます。NVIDIA OpenShellは、既存のエージェントが触れられるファイル、送信できるネットワークリクエスト、認証情報を使える場所に、強制力のある境界を設けます。プラットフォームチームが稼働前にレビューでき、繰り返し使える権限設定を用意できることが、実務上の利点です。

Claude Code Docker環境でNVIDIA OpenShellが担う役割

OpenShellはオープンソースのランタイムです。エージェントを動かし、そのアクセスを制御する実行環境に当たります。エージェントの推論やツールを置き換えるのではなく、その下層で動作します。

建物の中で作業する外部の業者を想像してください。作業場を用意し、特定の部屋への入室と、指定した取引先への連絡を許可します。依頼書に「慎重に作業すること」と書いたからといって、建物のマスターキーまで渡す必要はありません。OpenShellは、ソフトウェアエージェントに対してこのような境界を用意します。

ランタイムの概要では、ファイルシステム、ネットワーク、プロセスの制限と、プロバイダーの認証情報の保護が説明されています。Landlockはファイルアクセスを制限するLinuxカーネルの機構です。seccompは、プログラムがOSに対して行う低レベルの要求であるシステムコールを制限します。これらの制御はエージェントの推論の外側で強制されます。

ゲートウェイはサンドボックスとアクセスを管理します。サンドボックスの外にあるスーパーバイザーが、送信リクエストをポリシーと照合し、許可された場合に認証情報を供給します。ポリシー証明器は、モデル化した権限が定義済みの境界に収まるかを検証します。これらはエージェントが実行できる操作を制御するものであり、許可された作業の正しさを保証するものではありません。

エージェントの作業場から、ファイル、ネットワーク、用途を限定した認証情報へ、それぞれ別の検査地点を通って接続する図。
アクセス境界の概念図です。どの経路にも許可が必要です。部屋は制御の考え方を示すもので、実際のソフトウェア構成要素ではありません。

NVIDIAは、Claude Code、Codex、GitHub Copilot CLI、Hermes、LangChain Deep Agents、OpenClaw、OpenCodeに加え、独自のエージェントやイメージを使う手順を案内しています。ただし、「対応」は各ツールがインストール済みであることを意味しません。現在のデフォルトのワークロードは最小構成のUbuntuイメージで、エージェントの起動に使うコマンドラインプログラム、つまりエージェントCLIは含まれていません。

業務上の変化は、権限設定を再利用できることです。使い回せる境界がなければ、新しいエージェントのワークフローを追加するたびに、どのファイル、シークレット、サービスを公開するかを検討し直すことになりかねません。境界を用意すれば、そうした判断をワークロードとまとめて管理し、変更をレビューできます。効果は、アクセス設定や作業中断への対応に費やしたエンジニアの工数で測ってください。そのまま引用できる、検証済みの普遍的な時間削減率はありません。

現在の対応環境はどこまでか

ホストは、現行のサポート表を見て選んでください。本稿の手順は、2026年11月8日に確認したv0.1.7表記のドキュメントに基づいています。

ホスト現在のドキュメント上の位置付け
Debian/Ubuntu Linux、x86_64またはARM64対応
Apple Silicon搭載macOS、Docker Desktop使用対応
Windows x86_64、WSL 2とDocker Desktop使用実験的対応
MXCを使うネイティブWindows x64またはARM64windowsブランチで開発中。本番利用の適格性は未確認

WSL 2はWindows上でLinux環境を動かします。MXCは、それとは別のネイティブWindows向け分離方式です。「Windows対応」を、相互に置き換えられる単一のインストール手順として扱わないでください。

Windowsに関する協業発表では、MXCを通じてOpenShellをWindowsに展開する方針が説明されています。ただし、その方向性が示されたからといって、現時点でネイティブ版を通常の安定版インストーラーとして導入できるわけではありません。現行のインストールドキュメントには、標準のリリース経路ではネイティブWindowsのバイナリを提供しないと明記されています。

初めて評価するなら、対応済みのLinuxまたはApple Silicon環境を選びましょう。サポート表には、カーネルとランタイムの要件も記載されています。必要なLandlock ABIはLinux 6.2で導入されましたが、カーネルのバージョンだけでは判断できません。ランタイムが所定の検査を通過する必要があります。macOSでDocker Desktopを使う場合、これらのLinux機能は内部のLinux仮想マシンで動作します。NVIDIA Vera CPUは必須ではありません。

CLIを導入し、最初のエージェントを動かす

まずはNVIDIAのドキュメントにあるOpenCodeの例から始めます。この例なら、サービスへのアクセスを担うプロバイダー、エージェントを含むイメージ、実行場所となるサンドボックスという3つの構成要素が見えます。以下はドキュメントに基づく手順であり、筆者のローカル環境で動作確認したという主張ではありません。

1. ホストを準備し、OpenShellをインストールします。 Dockerを使う場合は、Docker Desktopを起動しておくか、Docker Engine 28.0以降を用意します。対応済みのLinuxまたはmacOSでは、インストールガイドでcurl -LsSf https://raw.githubusercontent.com/NVIDIA/OpenShell/main/install.sh | shを使っています。実行前にインストーラーの内容を確認してください。CLI、ポリシー証明器、ローカルゲートウェイがインストールされます。openshell statusを実行し、CLIからゲートウェイに接続できることを確認します。

2. モデルサービスを設定します。 この例ではOpenRouterを使います。プロバイダーを作成する前に、ホストの環境変数にOPENROUTER_API_KEYを設定してください。プロバイダープロファイルは許可するサービスのエンドポイントと実行ファイルのパスを定義し、プロバイダーが認証情報を保持します。NVIDIAのサンプルプロファイルは、/usr/local/bin/opencodeからopenrouter.aiへのアクセスを許可します。

3. プロファイルを取り込み、プロバイダーを作成してイメージを起動します。 ホスト上で次のコマンドを順番に実行します。

Shell
openshell profile import \
  --url https://raw.githubusercontent.com/NVIDIA/OpenShell/main/providers/openrouter.yaml
openshell provider create \
  --name openrouter --type openrouter --from-existing
openshell sandbox create \
  --name my-agent \
  --from ghcr.io/anomalyco/opencode:latest \
  --provider openrouter \
  -- opencode -m openrouter/nvidia/nemotron-3.5-lightning:free

OpenCodeはイメージに含まれ、--より後ろのコマンドでメインプロセスとして起動します。最初のエージェントを動かすチュートリアルでは、OpenRouterのクレジットが不要な、この無料モデルを使っています。あくまでサンプルで選ばれているモデルの話であり、どのモデルを使っても無料になるという意味ではありません。

4. ホスト側でアクセス要求を確認します。 エージェントが未承認の宛先に接続しようとすると、OpenShellはリクエストを拒否し、範囲を絞ったルール案を作成します。openshell rule get my-agent --status pendingを実行してください。提案が作業に必要なアクセスと合致する場合は、openshell rule approve my-agent --chunk-id <chunk-id>で、その提案だけを承認します。プレースホルダーは実際のIDに置き換えます。ルールが再読み込みされ、エージェントは再試行できるようになります。

5. 実際に付与した権限を調べます。 openshell policy get my-agent --base、続いてopenshell policy get my-agent --fullを実行します。前者は基本ポリシー、後者はプロバイダーが追加するルールを含むポリシーを表示します。実プロジェクトや機密性の高いサービスを追加する前に、実効権限を確認してください。

使い捨ての評価環境での作業が終わったら、openshell sandbox delete my-agentで削除します。

稼働中に変更できるポリシーはどれか

ネットワークアクセスは作業中でも変更できます。ファイルシステムとプロセスの境界を変更するには、サンドボックスを新しく作成する必要があります。

制御対象変更を反映する方法
ファイルシステムのパスとLandlockの動作起動時に設定。実効アクセスの変更にはサンドボックスの再作成が必要
プロセスのユーザーとグループ作成時に設定。変更には再作成が必要
ネットワークの宛先とリクエストルールサンドボックス稼働中に再読み込み可能
ネットワークミドルウェア、追加の通信検査・変換組み込み機能と登録済みの外部サービスは稼働中に再読み込み可能
プロバイダーの接続、認証情報のローテーション・失効実行時に更新可能。新しい環境変数には新しいプロセスが必要

「稼働中に反映できる」といっても、影響がないわけではありません。新しいネットワークルールを適用すると、以前のルールで確立した接続は閉じられるため、クライアントは再接続する必要があります。新しい外部ミドルウェアサービスの登録には、ゲートウェイの設定変更と再起動が必要です。保存済みポリシーにファイルシステムのパスを追加しても、実行中のワークロードにそのアクセス権が付与されるわけではありません。起動後のパス削除や起動設定の変更は拒否されます。ポリシー管理ガイドに、これらの違いが詳しく説明されています。

ファイルシステムとプロセス設定を表す固定された部屋と、稼働中のネットワークルールやミドルウェアを表す可動式のゲート。
ファイルとプロセスの権限は起動前に設計します。ネットワークルールと対象のミドルウェアは作業中でも変更できます。

もう一つの落とし穴は、ポリシーファイルがないからといって、アクセス権もないとは限らないことです。ポリシーはイメージ、環境設定、ゲートウェイ全体のポリシーから与えられる場合があります。接続したプロバイダーがネットワークルールを追加することもあります。ポリシーの選択規則にもあるとおり、グローバルポリシーはサンドボックス自身のポリシーを置き換えます。単に制限を上乗せする層ではありません。

権限の範囲を把握できるコーディングエージェント用ポリシー

不具合修正を任せるエージェントには、まず書き込み可能なプロジェクトディレクトリと読み取り専用のAPIアクセスを与え、変更の公開権限は後から検討します。

以下は、プロジェクトを/workspaceに置き、curlを/usr/bin/curlにインストール済みのコーディング用イメージを想定したポリシー例です。policy.yamlとして保存し、新しいサンドボックスを作成する際に--policy ./policy.yamlを指定します。このイメージ構成向けのひな型であり、どのエージェントイメージにもそのまま適用できるものではありません。

YAML
version: 1
filesystem_policy:
  include_workdir: false
  read_only: [/usr, /lib, /etc]
  read_write: [/workspace, /tmp]
landlock:
  compatibility: hard_requirement
network_policies:
  github_readonly:
    endpoints:
      - host: api.github.com
        port: 443
        protocol: rest
        enforcement: enforce
        access: read-only
    binaries:
      - path: /usr/bin/curl

エージェントは、プロジェクトと一時ファイルを編集できます。ネットワークルールでは、指定の実行ファイルがGitHub APIにGET、HEAD、OPTIONSリクエストを送ることを許可しています。任意のプログラムにインターネットアクセスを与えるものではなく、パッケージのダウンロードやGit pushも許可しません。モデルプロバイダーは別途設定します。

イメージが必要とする、書き込み可能なエージェントの状態保存用ディレクトリも準備し、意図を持って追加してください。これらのパスはサンドボックス内のファイルシステムを指します。ホスト側に似た名前のディレクトリがあっても、自動的に利用できると考えてはいけません。また、ネットワークを利用するワークロードには基本のファイルシステムパスが追加されます。この短いYAMLに書かれたパスだけが実効的なアクセス範囲に存在する、という意味ではありません。

特に注意したい設定が2つあります。hard_requirementは、ユーザー定義のファイルシステムルールを強制できない場合に起動を停止します。ただし、個々のパスが存在しない場合やアクセス不能な場合には、そのパスがスキップされることがあります。enforcement: enforceは、検査対象のうち許可されないリクエストを遮断します。一方、スキーマのデフォルトであるauditモードは違反を記録しつつ、リクエストを通します。ひな型を変更する前にポリシースキーマのリファレンスを確認してください。

許可と拒否の両方をテストします。NVIDIAのネットワークポリシーのチュートリアルでは、読み取り専用ルールの下でcurl -s https://api.github.com/zenが成功することを確認し、その後POSTが拒否されることを検証します。ホストからopenshell logs my-agent --since 5m --source sandboxを確認してください。自分のプロジェクトでは、想定したファイルへの書き込みと、範囲外のファイルへのアクセスもテストします。エージェントが起動できただけでは、セキュリティポリシーの受け入れテストを通ったことにはなりません。

最初に試したい5つのワークフロー

初期導入に向くのは、作業範囲が明確で、人が成果物を判断できる用途です。運用面で期待できる価値の順に並べると、次のようになります。

対象チームで実行できるワークフロー期待できる効果
コーディングエージェントを展開するプラットフォームチームプロジェクトの作業領域、承認済みモデルプロバイダー、レビュー済みネットワークルールを再利用可能な環境にまとめるアクセス設定の繰り返しを減らし、例外を可視化する
不慣れなリポジトリを調査するメンテナー外向きのアクセスを絞った使い捨ての作業領域で、エージェントにコード調査とパッチ案の作成を任せる調査の影響範囲を限定し、パッチはメンテナーがレビューする
インシデントを調査する運用チーム選んだ診断用ファイルと読み取り専用APIアクセスを渡し、復旧案を求める原因調査と本番環境の変更権限を分ける
非公開のモデルサービスを使う開発チーム承認済みプロバイダーのエンドポイントを設定し、接続可能なエージェント実行ファイルを限定するモデルへのアクセス判断をインフラポリシーに組み込む
エージェントのリリースを検証する社内開発ツールチーム準備した各イメージで、同じタスクと権限検査を実行するイメージの展開前に、必要なアクセス権の変化を捉える

どの用途でも、生成コードの正しさやインシデント診断の信頼性が保証されるわけではありません。価値は、エージェントが作業している間に起こり得ることを限定できる点にあります。ツール選びを広く検討するなら2026年のAIサンドボックス・セキュリティツール比較、実行基盤を選ぶなら2026年のAIエージェント向けコードサンドボックス比較も参照してください。

OpenShellを軸に考えられる2つの事業案

最も有望なのは、チーム向けのコーディングエージェント導入キットです。 想定する購入者は、承認済みの環境で開発者が生産的に働けるようにしたいプラットフォーム責任者です。DataForSEOは、この実行のクエリで返された市場について、「claude code sandbox」の月間検索数を1,300と推定しています。これは環境設定への関心を示すもので、見込み客が1,300人いるという意味ではありません。また、検索者の中にはOpenShellではなく、エージェント自身のサンドボックス機能を求めている人もいます。

最小限の商品なら、対象を一つのエージェントと一つの承認済みホスト構成に絞れます。準備済みのイメージ、レビュー済みポリシー、プロバイダー設定のチェックリスト、繰り返し実行できる許可・拒否テストをそろえます。更新の責任範囲を明確にしたうえで、チームで実際に使える導入一式として提供する形です。課題は保守です。イメージ内のパス、エージェントの挙動、実験的なインターフェースは変わる可能性があります。ホスト型サービスを開発する前に、プラットフォーム責任者に保守負担について聞いてください。

もう一つは、ポリシーレビューの作業環境です。 セキュリティチームが、実効ポリシーで許可される操作を確認し、変更を比較し、承認を記録するために使えます。DataForSEOの推定では、「ai agent security」は月間480件、「ai agent security tools」は70件検索されています。別々のクエリによる幅広い需要の手掛かりなので、足し合わせて重複のない購入者数として扱ってはいけません。

MVPでは、基本ポリシーと実効ポリシーを取り込み、追加された宛先やリクエスト権限を強調し、レビュー記録にテスト結果を添付できるようにする案が考えられます。課題は差別化です。OpenShellにはすでにポリシー分析、提案、ログの機能があります。既存コマンドをダッシュボードで包むだけでなく、チームのレビュー工程を改善する必要があります。購入者と納品物を定義しやすい導入キットから始めるのがよいでしょう。

OpenShellだけでは解決できないこと

OpenShellはアクセスを制限しますが、許可された操作が業務上適切かどうかまでは判断しません。プロジェクトファイルへの書き込みを許されたエージェントは、不適切なパッチも書けます。承認済みの外部宛先にも、ポリシーで送信を許したデータは届きます。ファイルアクセスとエンドポイントの承認には、実際に何を公開するつもりなのかを反映させる必要があります。

また、ID管理、シークレットストア、監視、ガバナンスを置き換えるものでもありません。NVIDIAのランタイム制御に関する発表では、制御の強制をエージェントのワークロードの外側に置いています。周辺システムを構成する一要素として扱い、ほかの仕組みをなくす理由にしないでください。

現在のプロジェクトには、サポート表の範囲内で本番利用を想定した安定版リリースがあります。したがって、OpenShell全体を実験的なデモと呼ぶのは誤解を招きます。制約はもっと具体的です。実験的なインターフェースはパッチリリースでも変わる可能性があり、ネイティブWindowsは引き続き開発中です。またNVIDIAは、現在の適格性検証プロファイルが、リリース適格性検証ポリシーの全体を網羅していないとしています。導入するバージョンを固定し、実際に使うワークロードとホストの組み合わせを検証してください。

WindowsのOpenShellサンドボックスでClaude Codeを動かせますか?

ドキュメントに記載されたLinux-on-Windowsの経路は、x86_64でWSL 2とDocker Desktopを組み合わせるもので、実験的対応です。MXC経由のネイティブWindowsは別の開発経路であり、本番利用の適格性は確認されていません。サンドボックスのイメージには、エージェントと必要なツールを含める必要があります。

OpenShellは、コーディングエージェントがサンドボックスから脱出しないことを保証しますか?

これらの制御から絶対的な保証が得られるわけではありません。OpenShellはエージェントの推論の外側で、ファイル、プロセス、ネットワークの制限を強制します。しかし、脆弱性がないことを証明するものではなく、広すぎるポリシーを安全にするものでもありません。実際の環境と権限を検証してください。

Claude Code向けのOpenShell構成でDockerは何を担いますか?

Dockerは、OpenShellの下層で利用できる対応ランタイムの一つです。OpenShellは、エージェント向けのポリシー強制、プロバイダーの認証情報処理、ゲートウェイの調整、監督機能を加えます。Claude Codeを含むイメージを選び、利用するサービスを設定してください。デフォルトのUbuntuワークロードにはエージェントは同梱されていません。

月曜日に始めるなら: プラットフォーム責任者に、機密性のないリポジトリとエージェントを一つずつ選んでもらいます。対応済みのホストにインストールし、イメージを準備し、ファイルとネットワークのアクセス範囲を定義してから、許可する操作と遮断する操作をテストします。最初の週は、設定にかかった時間と、作業中断への対応に費やしたエンジニアの工数を記録してください。付与したすべての権限をチームで説明できるようになってから、対象を広げます。

チームのワークフローにこの仕組みを組み込みたい場合は、本番運用に必要な制御の整備を支援します。

公開日
カテゴリー
Build
レジデンシャルプロキシ比較2026:Bright Dataなど7社の料金と選び方

レジデンシャルプロキシ比較2026:Bright Dataなど7社の料金と選び方

レジデンシャルプロキシを中心に、Bright Data、Oxylabs、Decodo、Webshare、ThorData、IPRoyal、NetNutを比較。料金、無料試用、KYC、IPの調達経路と注意点を整理し、スクレイピングの用途に合うサービスと、試験導入で確認すべき項目を解説します。2026年11月10日Build
CodeRabbit 料金ガイド:人数別の費用・利用上限・追加料金

CodeRabbit 料金ガイド:人数別の費用・利用上限・追加料金

CodeRabbit 料金を、Essentials・Team・Advancedのシート単価から解説します。開発者5人・20人・50人の月払いと年払いの総額、無料プランとOSSの条件、レビュー回数やファイル数の上限、エージェントとスキャンの追加料金を整理。必要な機能と作業量に合わせ、払い過ぎを防ぐ選び方を紹介します。2026年11月9日Build
Microsoft Defender for Businessほか6製品を比較:中小企業のウイルス対策2026

Microsoft Defender for Businessほか6製品を比較:中小企業のウイルス対策2026

中小企業のウイルス対策は、誰が運用し、アラートに対応するかで選びます。Microsoft Defender for Business、Bitdefender、ESET、Sophos、CrowdStrike、Malwarebytesの6製品を、米ドル価格、対応OS、ライセンス、運用サービスの範囲で比較します。2026年11月8日Build
マルチエージェント管理にPaperclip AIは使える?導入・料金・権限の実像

マルチエージェント管理にPaperclip AIは使える?導入・料金・権限の実像

マルチエージェントの担当割り当て、予算、レビューをまとめるPaperclip AIを解説します。OpenClaw・Hermes Agentとの違いから、ローカル導入、対応ランタイム、定期実行、権限管理の落とし穴まで整理。何を任せ、何を人が判断するのか、週末の試行で導入価値を見極める基準がわかります。2026年11月7日Build
Supabaseとは?AIで作るアプリの仕組みと導入前の確認点

Supabaseとは?AIで作るアプリの仕組みと導入前の確認点

Supabaseとは何か、AIで作ったアプリの裏側から解説します。Postgres、認証、ストレージ、Edge Functions、Realtime、ベクトル検索の役割を整理。Lovable・Bolt・v0との連携やMCP、RLSによる顧客データの分離、管理権限、移行と復旧まで、本格利用の前に確認すべき点がわかります。2026年11月7日Build
AI コーディングで選ぶおすすめエディタ6選:Cursor・VS Codeほかを比較

AI コーディングで選ぶおすすめエディタ6選:Cursor・VS Codeほかを比較

AI コーディングに使うエディタを、Cursor、VS CodeとGitHub Copilot、Devin Desktop、Zed、Kiro、JetBrains AIで比較します。料金や無料枠に加え、エージェントの実行場所、モデルの選択肢、BYOK、プライバシー、組織の管理機能から、開発環境を選ぶためのガイドです。2026年11月6日Build
Activepiecesの使い方と料金:自動化を移行する前の判断ガイド

Activepiecesの使い方と料金:自動化を移行する前の判断ガイド

Activepiecesの使い方、料金、AIエージェント、セルフホストの要件を解説します。Google SheetsからSlackへ通知するフローを例に、必要なアクションの確認方法、実行制限、運用責任を整理。Zapier・Make・n8nとの違いを踏まえ、既存の自動化を移行すべきか判断するための評価記事です。2026年11月6日Build
マニュアル作成ツール6製品を比較:リリース・翻訳・APIの運用で選ぶ

マニュアル作成ツール6製品を比較:リリース・翻訳・APIの運用で選ぶ

マニュアル作成ツールを、リリース後の保守まで比較します。Mintlify、GitBook、Paligo、MadCap Flare、Document360、Archbeeの価格、執筆AIと読者向けAI、バージョン管理、翻訳、API対応を整理。自社の執筆・レビュー・公開工程に合う選び方と、移行前に試すべき作業が分かります。2026年11月6日Build
ニュースレター

毎週日曜、一通の手紙。動くシステムの話。感想戦ではなく。

週刊。スパムなし。いつでも解除できます。