Claude Code セキュリティ:依存関係のインストールだけに通信を許可する

Claude Code 2.1.271では、サンドボックスの自動モードでネットワーク許可をコマンド単位に限定できます。依存関係のインストール時だけレジストリを開き、その後のビルドやテストへ通信権限を引き継がせない設定方法、適用範囲、永続許可との違い、見落としやすい制約を実務目線で解説します。

Tuesday, September 15, 2026Omid Saffari
Claude Code セキュリティ:依存関係のインストールだけに通信を許可する

Claude Code セキュリティの運用では、依存関係のインストール1回のためだけに、Claude Codeのジョブ全体へネットワーク境界を広げる必要がなくなりました。2026年9月14日、Claude Code 2.1.271は、サンドボックス化された自動モードにコマンド単位のネットワークアクセスを追加しました。インストール時に許可したレジストリホストは、そのコマンドが終われば再び閉じられます。

Claude Code セキュリティで実際に変わったこと

この仕組みには2つの異なる安全レイヤーがあります。今回の変更を理解するには、両者を分けて考える必要があります。

自動モードが判断するのは、ツール呼び出しを実行してよいかどうかです。 別の分類器が、依頼内容に照らしてアクションを審査します。全体的な権限モデルについては、以前のClaude Code自動モード解説で詳しく取り上げています。

サンドボックスが制御するのは、実行中のシェルコマンドが触れられる範囲です。 ファイルへの書き込みを制限し、ネットワーク通信をプロキシ経由にして接続先ホストを確認します。

バージョン2.1.271では、この2つのレイヤーがより密接に連携します。サンドボックス化された自動モードで、Bash、PowerShell、Monitorの呼び出しにallowed_domainsリストを付けられるようになりました。Claude Codeはコマンドと、その実行に必要なホストをまとめて審査します。許可されたホストが開くのはそのコマンドの間だけで、ほかのホストへの接続はサンドボックスが拒否します。リリースノートにも、この適用範囲が明記されています。

このsnake_case形式のフィールドは、settings.jsonのsandbox.network.allowedDomainsとは別物です。

制御方法有効期間後続コマンドへの影響
コマンド単位のallowed_domains審査対象となった1回のBash、PowerShell、Monitor呼び出しアクセス権は引き継がれません。後続コマンドでは、必要なホストを改めて審査します。
sandbox.network.allowedDomainsその設定が適用される間の、すべてのサンドボックス化コマンド指定ホストはすでに開いているため、後続コマンドからも到達できます。
保存されたWebFetch(domain:...)許可ルールそのルールを読み込む今後のセッションホストは一時的な例外ではなく、常設設定になります。
sandbox.network.deniedDomains条件に一致する、すべてのサンドボックス通信より広い許可ワイルドカードの内側でも、拒否が優先されます。

このリリース以前は、新しいサンドボックスホストを承認すると、必要以上に広い権限が残る場合がありました。手動承認は現在のセッションが終わるまで有効で、保存すれば後のセッションにも残ります。自動モードがホストとポートに対する判断をキャッシュすることもあります。新しいフィールドが変えるのは、実行時に到達できる範囲です。分類器の判定が再利用されても、ネットワークの開放は現在のコマンドだけに属します。

対象はリリースで明示された組み合わせに限られます。自動モード、サンドボックス、そしてBash、PowerShell、Monitorです。手動セッション、サンドボックス外のコマンド、組み込みのファイルツール、ネットワークを一切使わないジョブには、この境界は追加されません。

重要なのは料金ではなく、権限の広さ

Claude Codeのシート料金は今回変更されていません。Anthropicも、コマンド単位のドメイン許可について別料金、別SKU、性能結果を発表していません。

見るべきなのは、説明責任を負う認可範囲の大きさです。

standing grant = approved host × every later command that can reuse it

command-scoped grant = approved host × the reviewed command

registry.npmjs.orgへの接続が必要な依存関係インストールを例にします。従来の運用では、無人ジョブを止めてネットワーク利用を判断するか、レジストリを事前許可して以降のすべてのサンドボックス化コマンドから到達できる状態を受け入れるか、悩ましい選択になりがちでした。これからは、インストールと同時に自動モードがそのホストを承認し、ビルド、テスト、パッケージ化、レビューへ進む前に閉じられます。

サブスクリプションの請求額は変わりませんが、2つの運用コストには効きます。プラットフォームチームが設計し、後から片付ける常設例外が減ります。セキュリティレビューでも、ホストが残りのジョブ全体で利用可能だとみなすのではなく、コマンドとホストの組み合わせを評価できます。

ただし、審査処理には依然としてコンピュートコストがかかります。Anthropicの権限モード資料に記載されたEnterpriseおよび従量課金のプロバイダーアカウントでは、分類器による確認がトークン使用量に計上され、1往復分の処理も加わります。リリースには所要時間のベンチマークがなく、本稿でも時間計測を行っていません。そのため、何秒短縮できるとは正直に主張できません。

一時的な橋を渡ってインストールコマンドがレジストリへ接続し、テストコマンドの前に橋が上がる構造を示した教材モデル
レジストリへの橋はインストールコマンド専用です。次のテスト工程は、ネットワーク経路を引き継がずに始まります。

すぐに活用できるのは誰か

一人で長時間のビルドジョブを回す創業者

SaaSリポジトリのパッケージをClaude Codeにロックファイルどおり復元させた後も、公開レジストリを開いたままにせず、テストとコードレビューまで進められます。必要なダウンロード1回のためにセッション全体へ常設の外向き通信を許すことなく、ジョブを止めずに進行できる点がメリットです。

複数の顧客リポジトリを切り替える開発会社の技術責任者

顧客のパッケージホストを、必要なインストールだけにひも付けられます。プロジェクト単位の例外を新たに保存する必要はありません。権限の後片付けが減るだけでなく、依存関係の取得専用に開けたホストへ、次の工程のコマンドが顧客コードを送ってしまうリスクも抑えられます。

無人エージェントを管理するプラットフォーム/セキュリティ責任者

組織全体の拒否ルールと管理対象ドメインの制約を維持しながら、日常的なコマンドには、そのポリシー内でより狭いアクセスを要求させられます。審査記録も説明しやすくなります。「このアクションのために、このコマンドがこのホストを必要とした」と示せるからです。ただし、その後にエージェントが実行したすべての処理に対して、同じホストが安全だった証明にはなりません。

インストールとテストを分離するビルドエンジニア

パッケージ復元をネットワーク接続ありの工程、テストスイートをオフライン工程として切り分けられます。侵害されたテストや想定外のスクリプトがインストール後にレジストリへ接続しようとしても、別の常設ルールで許可されていない限り、先ほどのコマンドに与えた開放状態は引き継がれません。

依存関係のインストールを必要最小限に設定する

この変更を最も分かりやすく確認できるのは、package-lock.jsonがコミットされ、既知の1つのレジストリから依存関係を解決するリポジトリです。npmは、クリーンな自動インストール向けにnpm ciを案内しています。ロックファイルが必須で、ロックとマニフェストが一致しなければ失敗し、既存のnode_modulesを削除し、マニフェストとロックファイルは変更しません。--ignore-scriptsオプションを付ければ、インストール中のパッケージライフサイクルスクリプトも止められます。これらの動作はnpmのドキュメントに記載されています。

  1. Claude Codeのバージョンを確認する

    変更履歴に記載されたバージョン確認コマンドを実行します。

    Bash
    claude --version

    2.1.271、またはこの機能を含むそれ以降のビルドを使用します。

  2. フェイルクローズのサンドボックスで自動モードを起動する

    1つのセッションに限り、自動モードと、起動に成功することが必須で、ブロックされたコマンドを境界外で再試行できないサンドボックスを組み合わせます。

    Bash
    claude --permission-mode auto --settings '{"sandbox":{"enabled":true,"failIfUnavailable":true,"allowUnsandboxedCommands":false}}'

    ここでは、ドキュメントに記載された--permission-mode、--settings、failIfUnavailable、allowUnsandboxedCommandsを使用しています。macOSではサンドボックスが組み込まれています。LinuxとWSL2ではbubblewrapとsocatが必要で、ネイティブWindowsは組み込みサンドボックスの対象外です。セットアップ方法と対応プラットフォームの制約はサンドボックスガイドに記載されています。

  3. インストールの役割を狭く指定する

    次の内容をタスクとして送信します。ロックファイルがプライベートレジストリを使っている場合は、レジストリホストを置き換えてください。

    package-lock.jsonに記録された依存関係だけを、npm ci --ignore-scriptsでインストールしてください。このコマンドが接続できるのはregistry.npmjs.orgだけです。このホストをプロジェクト設定またはユーザー設定に保存しないでください。インストールの完了後、ネットワークアクセスなしの別コマンドとしてテストスイートを実行してください。インストールにほかのホストが必要なら停止してください。

    allowed_domainsフィールドを自分で入力する必要はありません。Claude Codeがシェルツール呼び出しを組み立て、自動モードがその呼び出しと要求されたホストをまとめて審査します。

  4. 次の工程が閉じた状態で始まることを確認する

    /sandboxを開いて、解決済み設定のConfigタブを確認します。registry.npmjs.orgが常設のallowedDomainsや保存済みのWebFetchルールに含まれていないことを確かめてから、別コマンドとしてテストを実行してください。この後続コマンドがネットワーク接続を試みた場合、専用の審査済みドメインセットが新たに必要になるか、既存ポリシーによって拒否されるはずです。

見落としやすいのがロックファイルです。パッケージロックには、プライベートレジストリ、Gitホスト、あるいはtarballの直接URLが記録されている場合があります。registry.npmjs.orgだけを指定しても、それらの依存関係が同じホストから取得できるようになるわけではありません。実際の解決先ホストを確認してリストを正確に絞り込み、想定外の接続先をロックが要求したらコマンドを停止させます。

コマンド単位のネットワークアクセスでも解決できないこと

コマンド単位のネットワークアクセスが狭めるのは、ホストへ到達できる時間です。そのホストの信頼性を証明したり、暗号化されたリクエストをすべて検査したり、ダウンロードしたコードを安全にしたりする機能ではありません。

Anthropicの組み込みプロキシはホスト名で通信をフィルタリングし、デフォルトではTLSの内容を検査しません。許可されたコマンドの実行中は、そのホスト上の許可されたすべてのパスへプロセスが接続できます。コマンドが起動した子プロセスにも同じサンドボックス境界が適用されます。そのため、npm ci --ignore-scriptsは教材として分かりやすい例です。インストール工程からパッケージのライフサイクルスクリプトは取り除けますが、ダウンロードするパッケージ自体を監査するわけではありません。

管理ポリシーは引き続き、この機能より上位にあります。strictAllowlistは設定済みリスト外のすべてを拒否でき、allowManagedDomainsOnlyは接続可能なホストを管理設定に限定できます。明示的な拒否ルールもそのまま優先されます。コマンド単位のドメイン許可で、これらの制御をすり抜けることはできません。

サンドボックス外での再試行も、現実的な境界条件です。通常のClaude Codeには、サンドボックスで実行できないコマンドのためのエスケープハッチがあります。allowUnsandboxedCommandsをfalseにする意味は、失敗したインストールがいつの間にか「このコマンドはどのホストへ接続してよいか」ではなく、「このコマンドをサンドボックス外で実行してよいか」という別の問いに変わるのを防ぐことです。

次の月曜日に試すこと

依存関係の更新、夜間メンテナンス、無人ビルドジョブでClaude Codeの自動モードを使い、現在パッケージレジストリを広いサンドボックス許可リストに入れているなら、今週中に対応する価値があります。今回の機能を使えば、そうした常設エントリを削除できるか検証できます。

一方、組織の管理対象ネットワークポリシーで、すべてのコマンドに対して意図的にレジストリを事前許可している場合は急ぐ必要がありません。外側のコンテナやCIランナーですでにプロセス単位の厳しい外向き通信制御を実施している場合も同様です。新しいフィールドは多層防御にはなりますが、運用中の境界に置き換わるものではありません。

サンドボックスと自動モードを組み合わせていない場合や、Bash、PowerShell、Monitorからネットワークを使う作業がない場合は、今回の変更による影響はありません。

月曜日に行う作業は小さなものです。Claude Code 2.1.271以降であることを確認し、ロック済みの依存関係インストールを1つ選びます。フェイルクローズのサンドボックスで自動モードを起動し、想定するレジストリホストだけを指定したうえで、次のテストコマンドがそのネットワーク経路を再利用できないことを確かめてください。常設のレジストリ例外を削除するのは、自分の環境でこの確認に合格してからです。

次のプラットフォーム変更が実際のワークフローをどう変えるのか知りたい方は、ニュースレターにご登録ください。

最終更新
2026年9月15日
カテゴリー
Explained

Googleでこのサイトを優先する

omidsaffari.comをGoogle検索の優先ソースに追加

omidsaffari.comを優先ソースに設定すると、GoogleがTop Stories・AI Overviews・AI Modeであなたのために優先表示します。

AI 文字起こしの料金は据え置き:Grok Voice Transcribe 2.0移行ガイド

AI 文字起こしの料金は据え置き:Grok Voice Transcribe 2.0移行ガイド

Grok Voice Transcribe 2.0のAI 文字起こし料金は、バッチが音声1時間あたり$0.10、ストリーミングが$0.20のままです。デフォルトモデル変更で起こり得る出力差、移行前に確認すべき総コスト、1.0と2.0を同条件で検証して本番モデルを固定する手順を、運用担当者向けに整理します。2026年9月20日Explained
HAR ファイルで原因を追う:Cloudflare Browser Runの失敗調査

HAR ファイルで原因を追う:Cloudflare Browser Runの失敗調査

Cloudflare Browser RunのSession RecordingにInspectパネルが加わり、完了後のログ、通信、最終DOMを確認できるようになりました。HAR ファイルで失敗原因を絞り込み、不要な再実行を減らす手順、料金への影響、録画では見えない領域まで、実務向けに分かりやすく解説します。2026年9月19日Explained
v0でnpm プライベートパッケージを活用する:社内コンポーネント再利用の実践ガイド

v0でnpm プライベートパッケージを活用する:社内コンポーネント再利用の実践ガイド

v0が共有環境変数経由でnpm プライベートパッケージに対応。NPM_TOKENとNPM_RCの選び方、認証情報をモデルやSandboxに渡さない仕組み、社内コンポーネントを試作から本番へ引き継ぐ設定手順、料金と実務上の注意点を整理し、差し替え工数を減らせるか判断する方法を解説します。2026年9月19日Explained
Claude Code 料金を見直す:auto modeの分類器課金が消える条件

Claude Code 料金を見直す:auto modeの分類器課金が消える条件

Claude Code 2.1.278では、auto modeの安全判定をサーバー側で処理できるセッションの分類器リクエスト課金がなくなります。API、Enterprise、クラウド、ゲートウェイ環境で適用条件を見極め、/statusで実際の課金経路を確認し、予算へ正しく反映する方法を解説します。2026年9月19日Explained
Vercel ビルド高速化:Turboを1回だけ使う方法と料金

Vercel ビルド高速化:Turboを1回だけ使う方法と料金

VercelのPro/Enterpriseで、プロジェクト設定を変えずに1回のデプロイだけTurboを指定する方法を解説します。GitHubのコミットマーカー、Vercel CLI、デプロイAPIという3つの経路と、1分あたり$0.105からの料金、権限不足時のフォールバック、通常ビルドとの比較手順まで整理しました。2026年9月18日Explained
ChatGPT Word連携の実力:できること・料金・導入手順

ChatGPT Word連携の実力:できること・料金・導入手順

ChatGPT Word連携を使えば、Wordのサイドバーで下書き、要約、選択範囲の修正、見出し調整まで完結します。利用条件、共有される使用量、料金の考え方、データ境界、導入手順を、提案書やSOPの具体例とともに解説。コピペ往復を減らしつつ、事実や約束を守るレビュー方法も紹介します。2026年9月18日Explained
Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Google Antigravity移行ガイド:10月5日までのローカルジョブ対応

Google Antigravityの5月版エージェントは2026年10月5日に停止予定です。出力のみのジョブはID変更で済みますが、ローカルツールやfunction_callを扱う環境には、新しいツール名、PascalCase引数、行範囲編集に対応するアダプター改修が必要です。安全な移行手順を解説します。2026年9月18日Explained
Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで遅延箇所を特定する

Cloudflare WorkersのRPCトレースで、遅い顧客リクエストを別のWorkerやDurable Objectまで追跡。担当サービスとメソッドを見つける手順、サンプリング率、保持期間、2026年10月1日以降のスパン単位の料金まで、チェックアウトの例で実践的に解説します。2026年9月17日Explained
ニュースレター

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

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