---
title: Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド
description: Claude Codeのサンドボックス機能でファイルアクセスとネットワーク通信を安全に制限する方法を解説。macOS Seatbelt・Dockerコンテナ隔離・permissions.allow／deny設定による多層防御の構築手順と、企業導入時の設計パターンを具体的に紹介します。
image: https://start-link.jp/hubfs/blog/screenshots/generated/claude-code-sandbox-security.png
---

[![StartLink](https://start-link.jp/hs-fs/hubfs/logo/%E6%9C%80%E7%B5%82Start%20Link%20(500%20x%20150%20px)%20(%E8%83%8C%E6%99%AF%E3%81%82%E3%82%8A).png?width=130&height=39&name=%E6%9C%80%E7%B5%82Start%20Link%20(500%20x%20150%20px)%20(%E8%83%8C%E6%99%AF%E3%81%82%E3%82%8A).png "StartLink")](https://start-link.jp)

- [会社情報About](https://start-link.jp/about)
- [サービスService](https://start-link.jp/service)
- [プロダクトProducts](https://start-link.jp/sync)
- [YoutubeYoutube](https://start-link.jp/about/sns)
- [ブログBlog](https://start-link.jp/hubspot-ai)
- [業界別ガイドIndustry guides](https://start-link.jp/case)
- [採用情報Recruit](https://start-link.jp/recruit)

[資料DL](https://start-link.jp/download/service) [無料相談 →](https://start-link.jp/contact)

[会社情報](https://start-link.jp/about) [サービス](https://start-link.jp/service) [プロダクト](https://start-link.jp/sync) [Youtube](https://start-link.jp/about/sns) [ブログ](https://start-link.jp/hubspot-ai) [業界別ガイド](https://start-link.jp/case) [採用情報](https://start-link.jp/recruit)

[資料ダウンロード](https://start-link.jp/download/service) [無料相談 →](https://start-link.jp/contact)

- [トップ](https://start-link.jp)
- [会社情報](https://start-link.jp/about)
- [サービス](https://start-link.jp/service)
- [Youtube](https://start-link.jp/about/sns)
- [ブログ](https://start-link.jp/hubspot-ai)
- [Contact](https://start-link.jp/contact)
- [個人情報保護方針](https://start-link.jp/privacy-policy)
- [個人情報取り扱い規定](https://start-link.jp/personal-information-processing-agreement)

[ホーム](https://start-link.jp) › [ブログ](https://start-link.jp/hubspot-ai) ›[AI活用](https://start-link.jp/hubspot-ai/ai) ›[Claude Code実践](https://start-link.jp/hubspot-ai/ai/claude-code-practice) ›Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド

# Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド

- 2026年3月17日
- 最終更新: 2026年10月24日

![claude-code-sandbox-security](https://start-link.jp/hubfs/blog/screenshots/generated/claude-code-sandbox-security.png)

この記事の結論

Claude Codeのサンドボックスはシェルコマンドを対象とするOSレベルの機能です。これに権限ルール・コンテナ隔離・managed-settingsを重ねた、本記事で提案する5層の多層防御により、ファイルアクセスとネットワーク通信をできる限り安全に制限できます。（2026年10月時点の公式ドキュメントに基づきます。5層という構成は公式機能の名称ではなく、筆者の整理です）

ブログ目次

もっと見る ▼

**Claude Codeのサンドボックスはシェルコマンドを対象とするOSレベルの機能です。これに権限ルール・コンテナ隔離・managed-settingsを重ねた、本記事で提案する5層の多層防御により、ファイルアクセスとネットワーク通信をできる限り安全に制限できます。**（2026年10月時点の公式ドキュメントに基づきます。5層という構成は公式機能の名称ではなく、筆者の整理です）

「Claude Codeを全社に展開したいが、セキュリティ担当から『どこまでファイルを読めるのか』『ネットワークに勝手にアクセスしないか』と質問攻めにあっている」「開発者に自由に使わせつつ、本番設定ファイルや機密データにはできる限り触れさせたくない」「AIに任せる範囲と人間が確認すべき範囲の線引きがあいまいなまま導入してしまった」——企業導入を検討しているテックリードやセキュリティ担当者が共通して直面しやすい問いです。

Claude Codeのサンドボックスとは、AIエージェントが操作できる範囲を技術的に制限する安全機構のことです。ファイルの読み書き・Bashコマンド実行・Git操作といった広範な操作を行えるからこそ、公式機能であるOSサンドボックス・権限ルール・managed-settingsに、コンテナ隔離などの周辺の仕組みを加えた複数のレイヤーを組み合わせ、一つの防御が突破されても次のレイヤーで食い止める多層防御として設計することが重要になってきます。

本記事では、Claude Codeのサンドボックスアーキテクチャの全体像、macOS Seatbeltの仕組みと有効化の方法、Dockerコンテナによるネットワーク・ファイルシステム隔離、permissions.allow/deny設定によるツールレベルの制御、そして企業導入時のサンドボックス設計パターンを解説します。

## この記事でわかること

Claude Codeをチームや企業で安全に運用するには、サンドボックスによる多層防御の設計が欠かせません。この記事では、OS・コンテナ・アプリケーションの各レイヤーでの制限設定を、チームの規模別に具体的に解説します。

- **多層防御の全体像** — 権限プロンプトからmanaged-settingsまで、本記事で提案する5つのレイヤーがそれぞれ何を制御しているかを整理します。
- **macOS Seatbeltサンドボックスの仕組みと有効化の方法** — `/sandbox`での有効化と、サンドボックスの対象になる範囲・ならない範囲を解説します。
- **Dockerコンテナを使ったネットワーク・ファイルシステム隔離の設定方法** — docker-compose.ymlでの具体的な制限記述を紹介します。
- **permissions.allowとpermissions.denyによるツールレベルの制御** — ワイルドカードを使った実践的なコマンド許可パターンを解説します。
- **企業導入時のサンドボックス設計パターン** — チーム規模・業界の要件に応じた3つの設計例をBefore/Afterで紹介します。

Claude Codeの企業導入を検討しているセキュリティ担当者・インフラエンジニア、チーム開発でのセキュリティポリシーを設計するテックリードの方に向けて書いています。最後まで読むと、自社の開発体制に合わせてどのレイヤーから手を付ければよいかを判断できるようになります。

## サンドボックスとは

Claude Codeのサンドボックスは、AIエージェントの操作範囲を技術的に制限する安全機構です。Claude Codeはローカル環境でファイルの読み書き、Bashコマンドの実行、Git操作など広範な操作を行えます。その強力さは生産性の源泉になりますが、同時にリスクの源泉でもあります。

サンドボックスは「AIができること」に技術的な上限を設け、万が一の誤操作や意図しない動作が本番環境やプライベートデータに影響しないようにする役割を担います。出典: [Anthropic公式ドキュメント: Security](https://docs.anthropic.com/en/docs/claude-code/security)

### なぜAIエージェントの操作範囲を制限するのか

Claude Codeのようなエージェント型ツールを安全に運用するうえで重要なのは、開発者の注意力に頼らないという考え方です。人が毎回コマンドを目視でチェックする運用は、チームが大きくなるほど形骸化しやすくなります。だからこそ、権限プロンプトやOSサンドボックスといった技術的な仕組みで制限をかけ、担当者が変わっても同じ水準の安全性が保たれる状態を作ることが重要になってきます。これは人の注意力ではなく仕組みで防ぐという発想であり、サンドボックス設計全体を貫く軸だと考えています。

### 多層防御の考え方

Claude Codeの安全性は、単一の仕組みではなく、複数のレイヤーを重ねて確保します。以下は公式ドキュメントの機能を、本記事で提案する多層防御として整理したものです。サンドボックスそのものは、このうちOSサンドボックスの層を指します。

| レイヤー | 仕組み | 制御対象 |
| --- | --- | --- |
| 権限プロンプト | ツール使用時の承認/拒否 | ユーザーの意図確認 |
| permissions.allow/deny | ツール単位の許可・拒否ルール | 実行可能なツールの種類 |
| OSサンドボックス | macOS Seatbelt / Linux bubblewrap | Bashコマンドのファイルシステム・ネットワーク |
| コンテナ隔離 | Docker / Dev Container | 実行環境全体 |
| managed-settings | 管理者によるポリシー強制 | 組織全体の設定 |

これらのレイヤーを組み合わせることで、一つの防御が突破されても次のレイヤーで食い止める多層防御を実現します。どのレイヤーから着手すべきかは、扱うデータの機密性や開発体制によって変わってくるため、企業様によって最適な形は異なります。いきなり5層すべてを一度に整えようとすると設定変更の負荷が大きくなるため、まずは影響範囲の狭いレイヤーから試し、運用が安定してから次のレイヤーに広げていく進め方をおすすめしています。次章以降で、レイヤーごとの具体的な設定方法を見ていきます。

## macOS Seatbeltサンドボックス

macOS上でClaude Codeを使う場合、最初に押さえておきたいのがSeatbeltサンドボックスです。macOSに組み込まれた仕組みを使うため追加のインストールは要りませんが、サンドボックスはデフォルトでオフです。`/sandbox`コマンドか設定で有効にすることで、多くのチームにとって最初の防御ラインになります。

### 仕組み

Seatbeltは、macOSに組み込まれたサンドボックス機構で、プロセスごとにファイルシステムやネットワークへのアクセスを制限できます。サンドボックスを有効にすると、Claude Codeが実行するシェルコマンド（Bashなど）とそこから起動されるプロセスが、OSの強制する境界の内側で動きます。

サンドボックス内のコマンドには、デフォルトで以下の制限がかかります。

- **書き込み範囲の制限**: 書き込めるのは作業ディレクトリ・ユーザーごとの一時ディレクトリ・追加で許可したディレクトリに限られます。
- **ネットワーク制限**: 外部への直接の経路はなく、手元のプロキシが許可ドメインかどうかを確認します。許可ドメインは最初は空です。
- **読み取りは広め**: 読み取りはマシンの大部分が対象で、`~/.ssh`などの認証情報も含まれます。`sandbox.filesystem.denyRead`で絞ります。

### 有効化の方法と対象外の範囲

セッション中に`/sandbox`を実行するとパネルが開き、自動許可（auto-allow）か通常の権限確認かのモードを選べます。全プロジェクトで有効にするなら、`~/.claude/settings.json`で`sandbox.enabled`を`true`にします。

```
{
  "sandbox": {
    "enabled": true
  }
}
```

ただし、サンドボックスの対象はシェルコマンドだけです。以下は境界の外で動く点を、正直にお伝えしておきたいところです。

- Read・Edit・Write・WebFetch・WebSearchなどの組み込みツールは、サンドボックスではなく権限ルール（`permissions`）で制御されます
- フック・ローカルMCPサーバーなど、Claude Codeが起動する他のプロセスは境界の外で動きます
- `excludedCommands`に一致するコマンドと、サンドボックス外での再実行をClaudeが求めて承認された操作は、サンドボックスの外で動きます（再実行は`allowUnsandboxedCommands`を`false`にすると無効化できます）
- ネイティブWindowsではサンドボックスは使えず、使うにはWSL2が必要です

つまりサンドボックスは有効にして初めて働く仕組みで、設定の抜けや個人の設定変更で保護が弱まる余地が残ります。個人の判断に委ねきらず、後述するmanaged-settingsと組み合わせておくことをおすすめします。個人のPC設定に依存させず、組織側のポリシーとして強制する仕組みに乗せておくことが、担当者が変わっても安全性を保つポイントになります。

### LinuxとWSL2のbubblewrap分離

LinuxとWSL2では、macOSのSeatbeltの代わりに`bubblewrap`と`socat`を使ってサンドボックスを実現します。事前にこの2つのパッケージを入れておく必要があり、`/sandbox`のパネルで不足しているものを確認できます。

macOSでもLinuxでも、有効にすれば「Bashコマンドに対してOSレベルの保護がかかっている」状態を作れます。ただし、この保護はあくまでOSプロセスレベルの制限であり、チーム全員が同じ制約のもとで作業することを技術的に保証するものではありません。個々の開発者のマシン環境や設定変更によって保護の強さにばらつきが出る可能性がある点は、押さえておく必要があります。

| OS | サンドボックス方式 | 設定の必要性 |
| --- | --- | --- |
| macOS | Seatbelt | `/sandbox`または`sandbox.enabled`で有効化 |
| Linux / WSL2 | bubblewrap + socat | パッケージの導入と有効化 |
| Docker | コンテナ隔離 | 手動設定 |

OSレベルのサンドボックスはあくまで基本的な保護です。機密データを扱うプロジェクトや、チーム全体で同じ制約をそろえたい場合は、次章のDockerコンテナによる隔離を検討する段階に進みます。

## Dockerコンテナによる隔離

### なぜDockerを使うのか

OSレベルのサンドボックスは基本的な保護を提供しますが、より厳密な隔離が必要な場合にはDockerコンテナが有効です。Seatbeltやbubblewrapはそのマシン上のプロセスを制限する仕組みであるのに対し、Dockerはファイルシステム・ネットワーク・実行ユーザーをコンテナ単位でまとめて分離します。違いは制約の置き場所にもあります。Seatbeltはマシンごとに有効化する保護のため、開発者ごとの設定差が残ります。Dockerは制約を`docker-compose.yml`などの定義ファイルに書くため、定義をチームで共有すれば、誰の環境でも同じ制約を再現しやすくなります。このファイルをGitで管理すれば、マウント範囲やネットワーク設定の変更をプルリクエストでレビューでき、「どのディレクトリをAIに見せるか」をコードと同じ手順で合意・検証できます。この「制約をファイルとして持ち運べる」点が、チーム単位で運用をそろえたい場面でDockerが選ばれる理由です。

ただし、定義ファイルを共有するだけでは全員への強制にはなりません。公式ドキュメントも、Dev Containerをリポジトリに置く運用は「強制の境界ではなく慣習」であり、Claude Code自体はコンテナを必須としないと説明しています。コンテナの外でClaude Codeを使わせたくない場合は、組織のデバイス管理（MDM）やソフトウェアの許可リストで別途強制します（[公式: Enforce isolation across an organization](https://code.claude.com/docs/en/sandbox-environments#enforce-isolation-across-an-organization)、2026年10月時点）。特に以下のシナリオで検討する価値があります。

- **機密データのあるプロジェクト**: 個人情報や認証情報を含むコードベースを扱う場合
- **本番環境に近い構成でのテスト**: ステージング環境と同等の制約を適用したい場合
- **チーム開発での環境統一**: 全員の作業環境を同じ制約にそろえたい場合

ただし、Dockerによる隔離はOSサンドボックスと違ってコンテナ定義を自分で書く手動での構成が必要です。いきなり全プロジェクトに適用するのではなく、まずは機密性の高い1〜2プロジェクトを選び、`docker-compose.yml`でマウント範囲とネットワーク制限を組んで試すスモールスタートが現実的だと考えています。試行段階で確認しておきたいのは3点です。いずれも「設定ファイルの記述が正しいか」ではなく、「実際にコンテナの中から見たときにどう見えるか」を確かめる動作確認になります。コンテナ内から`.env`や`credentials/`などの機密ファイルが本当に見えないこと、ビルドやテストなど日常のコマンドが問題なく動くこと、そして公式ドキュメントの「Network access requirements」に挙がっている、APIと認証に必要な通信先だけが通り、それ以外の外部アクセスは遮断されていることです。3点が確認できたら、制約を緩める必要が出た項目だけを個別に見直す形で適用範囲を広げていくのが、過度に厳しい設定を回避する進め方です。この3点を先に1プロジェクトで確かめてから横展開すれば、「制限したつもりが抜けていた」「厳しすぎて日常作業が止まった」という失敗を小さい段階で潰せます。

### 基本的なDocker構成

Claude CodeをDockerコンテナ内で実行するための`Dockerfile`の構成例として、次のような記述が考えられます。

```
FROM debian:bookworm-slim

# インストーラに必要なパッケージ
RUN apt-get update && apt-get install -y --no-install-recommends curl ca-certificates bash git \
    && rm -rf /var/lib/apt/lists/*

# 作業ディレクトリの設定
WORKDIR /workspace

# 非rootユーザーで実行
RUN useradd -m developer
USER developer

# 設定・認証情報の保存先（compose側でボリュームをここにマウントする）
RUN mkdir -p /home/developer/.claude

# Claude Codeのインストール（ネイティブ版インストーラ）
RUN curl -fsSL https://claude.ai/install.sh | bash
ENV PATH="/home/developer/.local/bin:${PATH}"

# Claude Codeの起動
ENTRYPOINT ["claude"]
```

### docker-compose.ymlでの制限設定

`docker-compose.yml`でネットワークやファイルシステムの制限を設定する例です。Claude Codeのコンテナは外部に直接出られない内部ネットワークにだけつなぎ、外への通信は許可ドメインを絞ったプロキシ（ここではSquid）を経由させます。

```
services:
  claude-code:
    build: .
    environment:
      # 外への通信はすべてプロキシ経由にする
      HTTPS_PROXY: http://egress-proxy:3128
      HTTP_PROXY: http://egress-proxy:3128
      # 認証情報・設定・.claude.json をボリューム内に保存する
      CLAUDE_CONFIG_DIR: /home/developer/.claude
      # 読み取り専用のイメージ内で自動更新を試みないようにする
      DISABLE_AUTOUPDATER: "1"
    volumes:
      # プロジェクトのうち必要なディレクトリだけをマウント（読み書き可能）
      - ./src:/workspace/src
      - ./tests:/workspace/tests
      # 設定ファイルは読み取り専用
      - ./package.json:/workspace/package.json:ro
      - ./tsconfig.json:/workspace/tsconfig.json:ro
      # Claude Codeの設定・認証情報（名前付きボリュームで再作成後も残す）
      - claude-config:/home/developer/.claude
    networks:
      - restricted
    depends_on:
      - egress-proxy
    # メモリ・CPU制限
    deploy:
      resources:
        limits:
          memory: 4G
          cpus: '2.0'
    # セキュリティオプション
    security_opt:
      - no-new-privileges:true
    read_only: true
    tmpfs:
      - /tmp

  egress-proxy:
    image: ubuntu/squid:latest
    volumes:
      - ./squid.conf:/etc/squid/squid.conf:ro
    networks:
      - restricted
      - egress

networks:
  restricted:
    internal: true  # このネットワークからは外部に直接出られない
  egress: {}        # プロキシだけが外部へ出るためのネットワーク

volumes:
  claude-config: {}
```

同じディレクトリに置く`squid.conf`では、許可するドメインを列挙し、それ以外を拒否します。

```
http_port 3128

acl SSL_ports port 443
acl CONNECT method CONNECT
acl claude_code dstdomain api.anthropic.com claude.ai claude.com platform.claude.com

http_access deny CONNECT !SSL_ports
http_access allow claude_code
http_access deny all
```

起動は`docker compose run --rm claude-code`です。初回は表示されるURLをホスト側のブラウザで開いてサインインし、コンテナに戻らない場合はブラウザに表示されたコードを`Paste code here if prompted`の欄に貼り付けます。APIキーで使う場合は`ANTHROPIC_API_KEY`を環境変数で渡します。

ポイントは以下の通りです。

- **volumesの制限**: 必要なディレクトリのみをマウントし、機密ファイル（`.env`、`credentials/`等）はマウントしません。`src`と`tests`は読み書きできるため、Claude Codeが変更した内容はホスト側のファイルにそのまま反映されます。
- **設定・認証情報の保存**: Claude Codeは認証トークン・ユーザー設定・セッション履歴を`~/.claude`に、アカウント情報などを`~/.claude.json`に保存します。名前付きボリュームを`~/.claude`にマウントし、`CLAUDE_CONFIG_DIR`を同じパスにすると両方がボリューム内に保存され、コンテナを作り直しても再サインインが要りません（[公式: Persist authentication and settings across rebuilds](https://code.claude.com/docs/en/devcontainer#persist-authentication-and-settings-across-rebuilds)）。
- **read\_only**: イメージ由来のファイルシステムを読み取り専用にします。書き込めるのは、マウントした`src`・`tests`、設定用ボリューム、tmpfsの`/tmp`です。Claude Codeは実行時の一時ファイルを`/tmp`に書くため、`/tmp`は書き込み可能にしておきます。npmのキャッシュなど、ほかに書き込みが必要なツールがあれば、そのパスもtmpfsかボリュームで追加します。
- **ネットワークのinternal設定**: `internal: true`のネットワークにだけつないだコンテナは、外部へ直接通信できません。Dockerのネットワーク設定（`driver: bridge`など）だけでは通信先のドメインは選べないため、許可するドメインの制御はプロキシやファイアウォールで別に行います。
- **no-new-privileges**: コンテナ内でのプロセスの権限昇格を防止します。

### 必要な通信先だけを許可する

Claude CodeはAnthropicのAPIや認証サービスと通信する必要があるため、ネットワークを完全に遮断するとClaude Code自体が動作しなくなります。必要なのはAPI（`api.anthropic.com`）だけではありません。claude.aiアカウントでのサインインには`claude.ai`・`claude.com`・`platform.claude.com`が、SSOを使う組織では`sso.claude.com`も必要です。公式ドキュメントの「Network access requirements」には、このほかネイティブ版のインストール・自動更新（`downloads.claude.ai`）やプラグイン、MCPコネクタなど、使う機能ごとに必要な通信先が挙がっています（[公式: Network access requirements](https://code.claude.com/docs/en/network-config#network-access-requirements)、2026年10月時点）。上の`squid.conf`は、APIと対話的なサインインに必要な最小限の例です。使う機能に合わせてこの一覧から追加してください。

Claude Codeは`HTTPS_PROXY`などのプロキシ用の環境変数に従います（SOCKSプロキシには非対応です）。プロキシの代わりに、公式のリファレンスDev Containerに含まれる`init-firewall.sh`のように、iptablesで許可先以外への通信を遮断する方法もあります。この場合はコンテナに`NET_ADMIN`と`NET_RAW`の権限を追加する必要があります（[公式: Restrict network egress](https://code.claude.com/docs/en/devcontainer#restrict-network-egress)）。

「外部ネットワークを遮断したいが、Claude Code自体は動かし続けたい」という一見矛盾する要件を満たす部分であり、設定全体の中でもっとも構成が複雑になりやすいところです。プロキシやファイアウォールの設計は、コンテナ側の設定だけでなく社内のネットワーク構成全体の理解が必要になるため、社内にネットワーク設計の知見があるかどうかで、自社で構築するか外部の支援を受けるかを判断する必要があります。なお、通信先を絞っても、許可した通信先を通じてClaude Codeが読める情報が外に出る余地は残ります。公式ドキュメントも、外部通信を許す構成では読み取れるデータが漏れうると注意しています（[公式: Choose a sandbox environment](https://code.claude.com/docs/en/sandbox-environments)）。マウント範囲を絞ることと組み合わせて、機密データを扱うプロジェクトほど投資する価値のある工程だと考えています。

## permissions.allow / permissions.denyによるツール制限

### 概要

Claude Codeの設定ファイル（`.claude/settings.json`）で、使用可能なツールを明示的に制御できます。サンドボックスがOS・コンテナレベルの制限であるのに対し、`permissions.allow`と`permissions.deny`はClaude Codeのアプリケーションレベルの制限です。Bash以外の組み込みツール（Read・Edit・Writeなど）は、サンドボックスではなくこの権限ルールで制御します（2026年10月時点）。設定の考え方としては、まず業務で必要な操作を洗い出し、確認なしで実行してよいものを`allow`に、実行させないものを`deny`に分けます。なお`allow`は「確認なしで実行してよい」操作の指定であり、それ以外を拒否する排他的な許可リストではありません。実行を止めたい操作は`deny`に書き、評価の順序は`deny`、`ask`、`allow`の順で、最初に一致したルールが適用されます。読み取り系（Read・Glob・Grep）は広く許可しつつ、ファイル削除や外部通信を伴うコマンドは`deny`か`ask`で個別に制御する、という順序で設計すると抜け漏れを減らしやすくなります。OSサンドボックスやコンテナ隔離と重ねて設定することで、「そもそもアクセスできない領域」と「アクセスできても実行を許可しない操作」の両面から制御できるようになります。

### 設定方法

```
{
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Write",
      "Glob",
      "Grep",
      "Bash(npm test)",
      "Bash(npm run lint)"
    ],
    "deny": [
      "Bash(rm -rf *)",
      "Bash(curl *)",
      "Bash(wget *)"
    ]
  }
}
```

### ツール制限のパターン

| パターン | permissions設定例 | 用途 |
| --- | --- | --- |
| 読み取り中心 | `allow`に`Read`, `Glob`, `Grep`。書き込みを止めるなら`deny`に`Edit`, `Write`, `Bash`を追加 | コードレビュー・分析 |
| 編集限定 | `Read`, `Edit`, `Write`, `Glob`, `Grep` | コード編集はOK。Bashは`allow`に入れず、完全に止めるなら`deny`に`Bash`を追加。確認を挟みたいコマンドは`ask`に`Bash(git push *)`のようにコマンドを指定して書く（サンドボックスの自動許可が有効だと、`ask`に`Bash`だけを書いたルールはサンドボックス内のコマンドには効かない） |
| テスト実行可 | 上記 + `Bash(npm test)`, `Bash(npm run lint)` | テスト・lint実行はOK |
| フルアクセス | 制限なし | 信頼されたプロジェクト |

読み取り中心からフルアクセスまでを一段ずつ並べているのは、プロジェクトの信頼度や機密性に応じてどのパターンを選ぶかを判断しやすくするためです。新しく参加したプロジェクトではまず読み取り中心や編集限定から始め、運用に慣れてきた段階でテスト実行可に広げていくという段階的な運用も可能です。

### ワイルドカードの活用

Bash実行は、コマンドパターンで許可範囲を細かく制御できます。

```
{
  "permissions": {
    "allow": [
      "Bash(npm *)",
      "Bash(git status)",
      "Bash(git diff *)",
      "Bash(git log *)"
    ]
  }
}
```

この設定では、npm系のコマンドとGitの読み取り系コマンドが確認なしで実行されます。`allow`に載っていないコマンドがどう扱われるかは、そのセッションの権限モードで決まります。2026年10月時点の公式ドキュメントでは、ターミナルやVS Codeで対話的に起動したセッションは、v2.1.283以降は組み込みの既定で`auto`モードから始まり、どのルールにも一致しない操作は確認を出さずに分類器が判定します。対話型のセッションでも、`--permission-mode default`や`permissions.defaultMode`でManual（設定値は`default`）から始めれば、`allow`に無いコマンドは実行前に確認が出ます。一方、`claude -p`やAgent SDKでモードを指定せずに実行した場合（v2.1.302以降）はManualで始まりますが、確認に答える人がいないため、承認が必要な操作は拒否されます。実行させるには`--allowedTools`などのallowルール、フック、SDKの`canUseTool`コールバック、`--permission-prompt-tool`のいずれかで承認するか、`--permission-mode auto`で始めます。また`ls`や`cat`などの読み取り専用コマンドは、どのモードでも確認なしで実行される組み込みの集合です。したがって、許可リストに無いコマンドがすべて確認に回るわけではありません。

サンドボックスを自動許可（auto-allow）モードで有効にしている場合は、さらに注意が要ります。このモードでは、サンドボックスの中で動くコマンドは権限モードにかかわらず確認なしで承認され、`permissions.ask`に`Bash`（または`Bash()`*）とだけ書いたルールも、サンドボックス内のコマンドには適用されません（Planモードを除く）。確認を挟みたいコマンドは`Bash(git push`*`)`のようにコマンドを指定して`ask`に書くか、サンドボックス内のコマンドも確認させたいなら、`sandbox.autoAllowBashIfSandboxed`を`false`にしたうえで、`permissions.ask`に`Bash`を書き、Manual（`default`）で始めてください。`false`にするだけでは通常の権限判定に戻るだけで、`allow`ルールや`auto`モードによる承認は残ります。止めたいコマンドは`permissions.deny`に書いてください。ただし`deny`も、Claudeが通常生成する書き方に一致するルールであり、別の形で呼び出されたコマンドを網羅する境界ではないため、OSサンドボックスやコンテナと重ねて使います。

以下の画面は、claude --versionの実行結果に続けて、git status・git diff・git log・claude -pといったコマンドを並べたターミナルの様子です。permissions.allowで許可したコマンドパターンが、実際の操作でどのように使われるかのイメージをつかんでいただけます。

![Claude Codeのターミナル画面。git status・git diff・git log・claude -pを実行している様子](https://start-link.jp/hubfs/blog/screenshots/library/cc_DD-21_1.png)

なお、こうしたコマンド単位の許可リストは、Claude Codeがどこまでを自律的に実行してよいかという線引きでもあります。ファイル読み書きやテスト実行のような可逆的な操作はAIに任せやすい一方、削除や外部送信を伴う操作は人間の確認を挟んだほうが安全だと考えています。権限プロンプトはまさにこの「人間が最終確認する」ステップを担っており、自律モードで送信や削除まで一気に任せる設定は避けたほうがよいと考えています。

## managed-settingsによる組織レベルの制御

### 企業導入での必要性

チーム・企業でClaude Codeを導入する場合、個々の開発者が設定を変更できてしまうとセキュリティポリシーが形骸化します。managed-settingsを使うと、管理者が設定を一元管理し、個人の設定ファイルで上書きできないようにポリシーを強制適用できます。これも個人の注意力に頼らず仕組みで担保するという考え方の延長線上にある設定です。誰が担当になってもベースラインの安全性が保たれる状態を作ることが、チームでClaude Codeを長く運用するうえでのポイントになってきます。

なお、Claude Codeを活用した[経営データの可視化](https://start-link.jp/service/claude-code/business-intelligence)や[コンテンツマーケティングの支援](https://start-link.jp/service/claude-code/content-marketing)についても、具体的な取り組みをご紹介しています。詳しくは「[Claude Codeの企業導入セキュリティガイド](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-enterprise-security)」で解説しています。

### managed-settings.jsonの配置

```
# macOS
/Library/Application Support/ClaudeCode/managed-settings.json

# Linux
/etc/claude-code/managed-settings.json
```

### 設定例

```
{
  "permissions": {
    "deny": [
      "Bash(curl *)",
      "Bash(wget *)",
      "Bash(ssh *)",
      "Bash(scp *)"
    ],
    "disableBypassPermissionsMode": "disable"
  }
}
```

managed-settingsで定義された制限は、ユーザーの`.claude/settings.json`や`--dangerously-skip-permissions`フラグでは上書きできません。ただし、Dockerfile やリポジトリを編集できる人は managed-settings の配布そのものを外せます。組織として強制するには、Dockerfile・イメージの変更権限を管理者に限り、MDM などで端末側に配る方法とあわせて設計します。

## 実務での活用パターン

ここまでのレイヤーをどう組み合わせるかは、チームの規模や扱うデータの機密性によって変わってきます。ここでは3つのケースでBefore/Afterを整理します。いずれもいきなり全レイヤーを導入するのではなく、必要な範囲から段階的に広げていく前提で読んでいただければと思います。

### パターン1: スタートアップの少人数チーム

**Before**: Claude Codeを全開発者が制限なしで使用しており、誰かが誤って本番用の`.env`ファイルを読み取る可能性がありました。サンドボックスの概念は知っていても、具体的な設定手順がわからず放置していました。

**After**: プロジェクトの`.claude/settings.json`に`permissions.allow`と`permissions.deny`を設定し、`.env`や`credentials/`ディレクトリの読み取りを拒否します。あわせて`/sandbox`でmacOSのSeatbeltサンドボックスを有効にし、追加のDocker設定は行わないシンプルな構成にします。

```
{
  "permissions": {
    "allow": [
      "Read",
      "Edit",
      "Write",
      "Glob",
      "Grep",
      "Bash(npm *)",
      "Bash(git *)",
      "Bash(node *)"
    ],
    "deny": [
      "Read(./.env)",
      "Read(./credentials/**)"
    ]
  }
}
```

少人数チームでは、過度に厳格な設定は生産性を損なう可能性があるため、明らかに危険な操作だけをブロックするアプローチが適切です。まずはpermissions.allow/denyの調整だけから始め、扱うデータの機密性が上がってきた段階でDockerやmanaged-settingsを追加していく流れが現実的だと考えています。

### パターン2: 金融・医療系の厳格なセキュリティ要件

**Before**: AIツールの導入自体がセキュリティ部門に承認されず、開発者はClaude Codeを使えない状態でした。「AIが顧客データにアクセスするリスク」が懸念されていました。

**After**: Dockerコンテナで隔離した環境を構築し、ネットワークは公式ドキュメントの「Network access requirements」に挙がっているAPI・認証などの必要な通信先だけをプロキシで許可し、ファイルシステムはソースコードディレクトリのみマウントする構成を提案します。managed-settingsでツール制限を配り、個人の設定ファイルでは上書きできないこと、ただしDockerfileやイメージの変更権限を管理者に限らないと配布自体を外せることをセキュリティ部門に説明します。コンテナ外での利用を防ぐ必要があれば、デバイス管理やソフトウェアの許可リストとあわせて設計します。

多層防御の各レイヤーがどのリスクを軽減するかを一覧表で示し、セキュリティ監査の材料として提出できる形にします。

| リスク | 軽減手段 | 設定場所 |
| --- | --- | --- |
| 機密ファイルへのアクセス | Dockerのvolumeマウント制限 | docker-compose.yml |
| 外部への情報送信 | internalネットワーク＋許可ドメインを絞ったプロキシ | docker-compose.yml・squid.conf |
| 禁止コマンドの実行 | permissions.deny | managed-settings.json |
| 設定の無断変更 | managed-settingsの配布（Dockerfile・イメージの変更権限を管理者に限る） | OSレベルの配置・MDM |
| 権限昇格 | no-new-privileges | docker-compose.yml |

このパターンでは、大型の顧客データや個人情報を扱う操作ほど人間の確認プロセスを厚くし、AIには読み取り・分析・下書き作成といった可逆的な作業を任せる、という役割分担で運用することをおすすめします。承認自体が難しかった状態から一歩ずつ信頼を積み上げるという意味でも、最初から全社展開を目指すのではなく、リスクの低い一部の業務から適用範囲を広げていくスモールスタートの進め方が向いています。

### パターン3: CI/CDパイプラインでの自動実行

**Before**: CI/CDでClaude Codeを自動実行する際、ランナー環境のファイルシステム全体にアクセスできてしまい、他のジョブのアーティファクトや環境変数を読み取れる状態でした。

**After**: CI/CDのジョブをDockerコンテナ内で実行し、Claude Codeに渡すワークスペースを最小限に限定します。GitHub Actionsの場合、以下のような構成が推奨されます。

```
jobs:
  claude-review:
    runs-on: ubuntu-latest
    container:
      image: ghcr.io/your-org/claude-code-sandbox:latest
      options: --read-only --tmpfs /tmp
    steps:
      - uses: actions/checkout@v4
      - name: Run Claude Code
        run: claude -p "コードレビューを実行してください"
        env:
          ANTHROPIC_API_KEY: $
```

コンテナのネットワークを完全に遮断すると、Claude Codeは`api.anthropic.com`などの必要なエンドポイントへ通信できず動作しません。そのため、CI/CDでもネットワークは遮断せず、公式ドキュメントの「Network access requirements」に挙がっている必要なURLだけを、プロキシやファイアウォールで許可する構成にします（2026年10月時点）。ローカル開発でのサンドボックス設定と、CI/CDでの実行設定は別物として管理し、開発からレビュー・デプロイまでの一連の流れの中でそれぞれ適切な制限を割り当てる発想が重要です。詳しくは「[Claude Code × CI/CD自動化](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-cicd-automation)」で解説しています。

## 関連コマンドとの組み合わせ

サンドボックスは単体で完結する機能ではなく、Hooksやプロジェクト設定ファイルと組み合わせることで、より実践的な安全網になります。個々の機能を単独で見るのではなく、開発からレビューまでの流れの中でどう組み合わせるかを意識しておくと、設定の抜け漏れに気づきやすくなります。

### Hooks × サンドボックス: セキュリティゲートの自動化

Hooksのマッチャーで特定のコマンドパターンを検出し、サンドボックス外のリソースにアクセスしようとした場合にブロックする設定が可能です。permissions.allow/denyが「ルールに一致するかどうか」で静的に判断するのに対し、Hooksはコマンドの内容そのものをスクリプトで検査できるため、危険なパターンをより柔軟に検出できます。これは権限ルールの延長線上にある追加のチェックポイントであり、担当者ごとの判断に頼らず仕組みで検査するという考え方の一例です。詳しくは「[Claude Code Hooksで開発を自動化する方法](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-hooks-automation)」で解説しています。

```
{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Bash",
        "hooks": [
          {
            "type": "command",
            "command": "${CLAUDE_PROJECT_DIR}/.claude/hooks/block-dangerous.sh",
            "args": []
          }
        ]
      }
    ]
  }
}
```

`"args": []`を書いているのは、フックをシェルを通さない形式（exec形式）で動かすためです。`args`を省くとコマンド文字列がシェルに渡されるため、プロジェクトのパスに空白が含まれていると、引用符で囲んでいない`${CLAUDE_PROJECT_DIR}`の部分で分割されてスクリプトを起動できません。公式ドキュメントも、パスのプレースホルダーを使うフックではexec形式を推奨しています。

フックには、ツール呼び出しの内容がJSONとして標準入力で渡されます。次のシェルスクリプトを`.claude/hooks/block-dangerous.sh`として保存し、`chmod +x`で実行権限を付けます。前提として`jq`をインストールし、`which jq`でPATHが通っていることを確認しておきます。スクリプトは`jq`で`.tool_input.command`を取り出して検査し、危険なパターンに一致したら理由を標準エラーに出して`exit 2`で止めます。`jq`が見つからない場合や、入力のJSONからコマンドを取り出せない場合も、素通りさせずに`exit 2`で止めるようにしています。`exit 1`ではツール呼び出しはブロックされず、処理が続行される点に注意してください。

```
#!/bin/bash
# .claude/hooks/block-dangerous.sh
if ! command -v jq >/dev/null 2>&1; then
  echo "jqが見つからないため、安全側に倒してブロックしました" >&2
  exit 2
fi

if ! COMMAND=$(jq -er '.tool_input.command'); then
  echo "フックの入力を読み取れないため、安全側に倒してブロックしました" >&2
  exit 2
fi

if echo "$COMMAND" | grep -qE '(sudo|chmod 777|rm -rf /)'; then
  echo "危険なコマンドのため、フックでブロックしました" >&2
  exit 2
fi
exit 0
```

なお、スクリプトのパスが間違っている、実行権限が無いなどでフック自体が起動できなかった場合は、既定ではエラー扱いのまま処理が続行されます。起動できなかったときもブロックさせたい場合は、v2.1.295以降でフックの定義に`"onFailure": "block"`を追加します。

この例は最小限のパターン検査であり、書き方を変えた呼び出しまで網羅するものではありません。permissions.denyやOSサンドボックスの代わりではなく、それらに重ねる追加のチェックポイントとして使います。

### CLAUDE.md × サンドボックス: ルールの明文化

`CLAUDE.md`にサンドボックスのルールを明記しておくことで、Claude Codeがそのルールを理解した上で動作します。技術的な制限とAIへの指示の両面から安全性を確保するアプローチです。ただし、CLAUDE.mdの記述はあくまでAIへの指示であり、OSサンドボックスやpermissions.denyのような技術的な強制力は持ちません。コンテキストとして読み込まれた文書への準拠はモデルの解釈に委ねられるため、長いセッションで指示が薄まったり、個別の指示と矛盾した場合にルールが後回しにされたりする余地が残ります。一方、permissions.denyやHooksはコマンドの実行時点で機械的に止めるため、モデルの解釈に依存しません。このためCLAUDE.mdは第一線の防御ではなく、技術的な制限で防いだうえでの二重の安全網・運用ルールの明文化として位置づけるのが適切です。例えば`.env`を読ませたくないなら、CLAUDE.mdへの明記と同時にコンテナのマウント範囲から外すか`permissions.deny`の`Read(./.env)`でブロックしておく、という形です。詳しくは「[Claude Codeの.claude/ディレクトリ](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-claudemd-patterns)」で解説しています。

```
# セキュリティルール
- /workspace/ 以外のディレクトリにファイルを作成・編集しないでください
- curl, wget等の外部通信コマンドは使用しないでください
- .env ファイルの内容を表示・読み取りしないでください
```

### サンドボックス設定の検証

サンドボックス設定自体の妥当性を検証することも重要です。Claude Codeに「この設定ファイルの制限に抜け漏れがないか確認して」と指示することで、設定ファイルをレビュー対象に含め、制限の抜け漏れがないかをAIにチェックさせられます。技術的な制限を人間が設計し、その設計の妥当性チェックをAIに手伝わせる、という役割分担がここでも成り立ちます。とはいえ、最終的にどの制限を採用するかの判断は人間側に残しておくべきであり、AIによるチェックは定期的な見直しのきっかけとして活用するのが実務的だと考えています。

## よくある質問

### Q1. サンドボックスを有効にするとClaude Codeの性能は低下しますか？

macOSのSeatbeltサンドボックスによるパフォーマンスへの影響は、多くの場合それほど大きくないと考えられます。ファイルアクセス時にカーネルレベルでポリシーチェックが入りますが、通常の開発作業で体感できるほどの遅延にはなりにくいとされています。Dockerコンテナの場合は、コンテナの起動時間が追加されますが、起動後のパフォーマンスへの影響は限定的なケースが多いです。ネットワーク制限によりnpmパッケージのダウンロード等が遅くなる場合がありますが、事前にキャッシュを含めたイメージを作成しておくことで回避できます。

### Q2. サンドボックスの制限でClaude Codeがエラーになった場合はどう対処しますか？

サンドボックスの制限に引っかかると、Claude Codeは該当の操作が失敗した旨を報告します。対処方法は2つあります。一つは、`permissions.allow`に必要なコマンドパターンや、`sandbox.filesystem.allowWrite`・`sandbox.network.allowedDomains`に必要なパス・ドメインを追加する方法です。もう一つは、Claude Codeに対して「この操作はサンドボックスの制限で実行できないため、別のアプローチを提案してください」と指示する方法です。制限に対してClaude Codeが代替案を提案してくれる場合も多いため、まずは代替案を確認するのがおすすめです。

### Q3. 開発環境と本番環境でサンドボックスの設定を分けるべきですか？

はい、分けることをおすすめします。開発環境ではデバッグやテストのために比較的広い権限が必要ですが、CI/CD環境や本番に近い環境では厳格な制限を適用します。`.claude/settings.json`（プロジェクト共通）と`.claude/settings.local.json`（個人環境）を使い分けるか、Docker環境ごとに異なるmanaged-settingsを配置する構成が実用的です。チーム全体のベースラインは`.claude/settings.json`で統一し、個人の開発環境では`.claude/settings.local.json`で微調整を行うパターンが推奨されます。

### Q4. どのレイヤーから設定を始めればいいですか？

扱っているデータの機密性が低いプロジェクトであれば、まずはpermissions.allow/denyの設定から始めるのが取り組みやすい入り口です。macOSであればSeatbeltは追加のインストールなしで使えるため、`/sandbox`を実行して有効にするだけでBashコマンドに一定の保護がかかります。機密データを扱うプロジェクトや、複数人での運用ルールを技術的に強制したい場合は、Dockerコンテナとmanaged-settingsの導入を検討する段階だと考えています。企業様によって扱うデータの機密性や開発体制は異なるため、最適な組み合わせも変わってくる点は押さえておいてください。

## まとめ

Claude Codeのサンドボックス設定は、macOS Seatbelt（`/sandbox`で有効化）、Dockerコンテナ（手動構成）、permissions.allow/deny（アプリケーション制限）、managed-settings（組織ポリシー強制）という4つのレイヤーを、権限プロンプトという人間の確認ステップとあわせて組み合わせる、本記事で提案する多層防御で構成します。

- 小規模なチームではpermissions.allow/denyの設定だけでも一定の安全性を確保でき、厳格なセキュリティ要件がある企業ではDockerコンテナとmanaged-settingsを組み合わせた多層防御が推奨されます。
- OSサンドボックスやコンテナによる制限は「そもそもアクセスできない領域」を作り、permissions.allow/denyは「実行してよい操作」を絞り込むという、役割の異なる防御です。
- managed-settingsによって、個人の注意力に頼らずチーム全体のベースラインを技術的に担保できます。
- 重要なのはセキュリティと生産性のバランスであり、過度な制限はAI活用のメリットを損なうため、プロジェクトのリスクレベルに応じて適切なレイヤーを選択する必要があります。

まずは自社で扱っているプロジェクトの中から、機密性の高いものを1つ選び、permissions.allow/denyの見直しから始めるのが取り組みやすいでしょう。次の3ステップで進めると取り組みやすくなります。

1. 現状の`.claude/settings.json`を確認し、不要に広い権限が残っていないか洗い出します。
2. 機密ファイルへのアクセスを制限するpermissions.denyと、`/sandbox`でのサンドボックス有効化を設定します。
3. チームで運用が安定したら、Dockerコンテナやmanaged-settingsによる組織レベルの強制を検討します。

Claude Codeの全コマンド一覧は[Claude Codeチートシート](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-cheatsheet)をご覧ください。AI活用の全体像は[AI活用完全ガイド](https://start-link.jp/hubspot-ai/ai)で解説しています。

CRMを活用した業務効率化やAIとの連携に関するご相談は、CRM特化型コンサルティングのHubSpotゴールドパートナーのStartLinkまでお気軽にお問い合わせください。

## あわせて読みたい

- [Claude Codeの/diffコマンド｜変更差分をインタラクティブに確認してコードレビューを効率化する](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-diff-review)
- [Claude Codeでデータ分析を自動化する｜CSV・JSON・APIデータの一気通貫ワークフロー](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-data-analysis)
- [Claude Codeの/rewindコマンド｜失敗した変更を安全にロールバックする方法](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-rewind-rollback)

記事の内容を、そのまま実務に落とし込みたい方向け

HubSpotゴールドパートナーのStartLinkが、HubSpot導入・AI活用・CRM整備・業務効率化までをまとめて支援しています。記事で気になったテーマを、そのまま相談ベースで整理できます。

[サービス概要を見る](https://start-link.jp/service/hubspot-ai) [無料で相談する](https://start-link.jp/contact)

## 次に読む

### [![](https://start-link.jp/hubfs/blog/screenshots/generated/gen_DD-61_fast_mode_model_support.png) Claude Codeのfast mode（/fast）｜対応モデル・料金・使いどころの判断基準](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-fast-mode)

### [![](https://start-link.jp/hubfs/blog/screenshots/generated/gen_DD-60_agent_view_session_states.png) Claude Code agent viewの使い方｜全セッションを1画面で管理](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-agent-view)

### [![](https://start-link.jp/hubfs/blog/screenshots/generated/gen_DD-58_goal_evaluation_loop.png) Claude Codeの/goalコマンド｜完了条件でAIを自律実行させる方法](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-goal-command)

## あわせて読みたいAI実践ガイド

### [Setup Claude Coworkの使い方と初期設定 導入直後にやるべき設定、CLAUDE.md、スキル設計、運用の型をまとめています。](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-cowork-setup-guide)

### [Team Claude Codeでチーム開発を効率化する方法 レビュー、権限管理、共有ルールまで踏み込んだ実践的なチーム利用ガイドです。](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-team-development)

### [MCP Claude Code × MCP連携ガイド 社内システムとつなぎ、実業務でAIエージェントを動かす方法を整理しています。](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-mcp-integration)

### [Service HubSpot × AIの支援サービス 導入設計から内製化、ワークフロー自動化までの支援内容を確認できます。](https://start-link.jp/service/hubspot-ai)

## 記事の内容を、そのまま実務に落とし込みたい方向け

[無料で相談する](https://start-link.jp/contact) [資料をダウンロード](https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-sandbox-security#blog-download)

 株式会社StartLinkは、事業推進に関わる「販売促進」「DXによる業務効率化（ERP/CRM/SFA/MAの導入）」などのご相談を受け付けております。 サービスのプランについてのご相談/お見積もり依頼や、ノウハウのお問い合わせについては、[無料のお問い合わせページ](https://www.start-link.jp/contact)より、お気軽にご連絡くださいませ。

###### 関連キーワード:

[AI](https://start-link.jp/hubspot-ai/tag/ai) [生成AI](https://start-link.jp/hubspot-ai/tag/生成ai)

## サービス資料を無料DL

## 著者情報

![7-1](https://start-link.jp/hubfs/7-1.jpg)

### 今枝 / Imaeda

 株式会社StartLink 代表取締役。累計150社以上のHubSpotプロジェクト支援実績を持ち、Claude CodeやHubSpotを軸にしたAI活用支援・経営基盤AXのコンサルティング事業を展開。  
 HubSpotのトップパートナー企業や大手人材グループにて、エンタープライズCRM戦略策定・AI戦略ディレクションを経験した後、StartLinkを創業。現在はCRM×AIエージェントによる経営管理支援を専門とする。

[StartLink](https://start-link.jp/)

### Service

- [会社情報](https://start-link.jp/about)
- [サービス](https://start-link.jp/service)
- [プロダクト](https://start-link.jp/sync)
- [採用情報](https://start-link.jp/recruit)
- [コンサルタントの方へ](https://start-link.jp/consultant-platform)

### Contact

- [問い合わせ](https://start-link.jp/contact)
- [資料ダウンロード](https://start-link.jp/download/service)
- [Syncナレッジベース](https://start-link.jp/sync/knowledge-base)
- [個人情報保護方針](https://start-link.jp/privacy-policy)
- [個人情報取り扱い規定](https://start-link.jp/personal-information-processing-agreement)

(c) 2026 All Rights Reserved.

```json
{
  "@context" : "https://schema.org",
  "@type" : "BlogPosting",
  "author" : {
    "@type" : "Person",
    "name" : "今枝 拓海",
    "url" : "https://start-link.jp/hubspot-ai/author/imaeda"
  },
  "datePublished" : "2026-03-17T12:51:54.000Z",
  "headline" : "Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド",
  "image" : [ "https://start-link.jp/hubfs/blog/screenshots/generated/claude-code-sandbox-security.png" ],
  "mainEntityOfPage" : {
    "@id" : "https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-sandbox-security",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@type" : "Organization",
    "logo" : {
      "@type" : "ImageObject",
      "url" : "https://start-link.jp/hubfs/Start%20Link%20(1500%20x%20600%20px)%20(5)-1.png"
    },
    "name" : "株式会社StartLink"
  }
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "FAQPage",
  "mainEntity" : [ {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "macOSのSeatbeltサンドボックスによるパフォーマンスへの影響は、多くの場合それほど大きくないと考えられます。ファイルアクセス時にカーネルレベルでポリシーチェックが入りますが、通常の開発作業で体感できるほどの遅延にはなりにくいとされています。Dockerコンテナの場合は、コンテナの起動時間が追加されますが、起動後のパフォーマンスへの影響は限定的なケースが多いです。ネットワーク制限によりnpmパッケージのダウンロード等が遅くなる場合がありますが、事前にキャッシュを含めたイメージを作成しておくことで回避できます。"
    },
    "name" : "サンドボックスを有効にするとClaude Codeの性能は低下しますか？"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "サンドボックスの制限に引っかかると、Claude Codeは該当の操作が失敗した旨を報告します。対処方法は2つあります。一つは、permissions.allowに必要なコマンドパターンや、sandbox.filesystem.allowWrite・sandbox.network.allowedDomainsに必要なパス・ドメインを追加する方法です。もう一つは、Claude Codeに対して「この操作はサンドボックスの制限で実行できないため、別のアプローチを提案してください」と指示する方法です。制限に対してClaude Codeが代替案を提案してくれる場合も多いため、まずは代替案を確認するのがおすすめです。"
    },
    "name" : "サンドボックスの制限でClaude Codeがエラーになった場合はどう対処しますか？"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "はい、分けることをおすすめします。開発環境ではデバッグやテストのために比較的広い権限が必要ですが、CI/CD環境や本番に近い環境では厳格な制限を適用します。.claude/settings.json（プロジェクト共通）と.claude/settings.local.json（個人環境）を使い分けるか、Docker環境ごとに異なるmanaged-settingsを配置する構成が実用的です。チーム全体のベースラインは.claude/settings.jsonで統一し、個人の開発環境では.claude/settings.local.jsonで微調整を行うパターンが推奨されます。"
    },
    "name" : "開発環境と本番環境でサンドボックスの設定を分けるべきですか？"
  }, {
    "@type" : "Question",
    "acceptedAnswer" : {
      "@type" : "Answer",
      "text" : "扱っているデータの機密性が低いプロジェクトであれば、まずはpermissions.allow/denyの設定から始めるのが取り組みやすい入り口です。macOSであればSeatbeltは追加のインストールなしで使えるため、/sandboxを実行して有効にするだけでBashコマンドに一定の保護がかかります。機密データを扱うプロジェクトや、複数人での運用ルールを技術的に強制したい場合は、Dockerコンテナとmanaged-settingsの導入を検討する段階だと考えています。企業様によって扱うデータの機密性や開発体制は異なるため、最適な組み合わせも変わってくる点は押さえておいてください。"
    },
    "name" : "どのレイヤーから設定を始めればいいですか？"
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-sandbox-security#article",
  "@type" : "BlogPosting",
  "author" : {
    "@id" : "https://start-link.jp/#founder"
  },
  "dateModified" : "2026-10-24T07:32:09+09:00",
  "datePublished" : "2026-03-17T12:51:54+09:00",
  "headline" : "Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド",
  "image" : "https://start-link.jp/hubfs/blog/screenshots/generated/claude-code-sandbox-security.png",
  "isPartOf" : {
    "@id" : "https://start-link.jp/#website"
  },
  "mainEntityOfPage" : {
    "@id" : "https://start-link.jp/hubspot-ai/ai/claude-code-practice/claude-code-sandbox-security",
    "@type" : "WebPage"
  },
  "publisher" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "speakable" : {
    "@type" : "SpeakableSpecification",
    "cssSelector" : [ ".blog-section h2", ".blog-section p:first-of-type", ".blog-section blockquote" ]
  }
}
```

```json
{
  "@context" : "https://schema.org",
  "@type" : "BreadcrumbList",
  "itemListElement" : [ {
    "@type" : "ListItem",
    "item" : "https://start-link.jp",
    "name" : "ホーム",
    "position" : 1
  }, {
    "@type" : "ListItem",
    "item" : "https://start-link.jp/hubspot-ai",
    "name" : "ブログ",
    "position" : 2
  }, {
    "@type" : "ListItem",
    "item" : "https://start-link.jp/hubspot-ai/ai",
    "name" : "AI活用",
    "position" : 3
  }, {
    "@type" : "ListItem",
    "item" : "https://start-link.jp/hubspot-ai/ai/claude-code-practice",
    "name" : "Claude Code実践",
    "position" : 4
  }, {
    "@type" : "ListItem",
    "name" : "Claude Codeサンドボックス設定｜ファイル・ネットワーク制限の実践ガイド",
    "position" : 5
  } ]
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#organization",
  "@type" : "Organization",
  "address" : {
    "@type" : "PostalAddress",
    "addressCountry" : "JP",
    "addressLocality" : "中央区",
    "addressRegion" : "東京都",
    "postalCode" : "104-0061",
    "streetAddress" : "銀座1丁目12番4号 N&E BLD.6F"
  },
  "alternateName" : "StartLink Inc.",
  "award" : [ "HubSpot Gold Solutions Partner（HubSpotゴールドパートナー、2026年4月認定）" ],
  "contactPoint" : [ {
    "@type" : "ContactPoint",
    "availableLanguage" : [ "ja" ],
    "contactType" : "customer support",
    "url" : "https://start-link.jp/contact"
  }, {
    "@type" : "ContactPoint",
    "availableLanguage" : [ "ja", "en" ],
    "contactType" : "sales",
    "url" : "https://start-link.jp/contact"
  } ],
  "description" : "「AI × HubSpot」をコンセプトに掲げるHubSpotゴールドパートナー（Gold Solutions Partner、2026年4月認定）。HubSpotマーケットプレイスに自社アプリ（Sync for freee / Notion / Money Forward / Chatwork）を公開するアプリ開発企業であり、HubSpot/Salesforce知見とAI活用を組み合わせたCRM構築・移行・最適化・AIエージェント/PoC支援まで一貫して提供する。",
  "founder" : {
    "@id" : "https://start-link.jp/#founder",
    "@type" : "Person",
    "jobTitle" : "代表取締役",
    "name" : "今枝 拓海",
    "sameAs" : [ "https://x.com/ImaedaTakumii", "https://www.linkedin.com/in/takumi-imaeda/", "https://www.facebook.com/takumiIma" ]
  },
  "foundingDate" : "2024-09-04",
  "hasCredential" : {
    "@type" : "EducationalOccupationalCredential",
    "credentialCategory" : "certification",
    "name" : "HubSpot Gold Solutions Partner",
    "recognizedBy" : {
      "@type" : "Organization",
      "name" : "HubSpot, Inc.",
      "url" : "https://www.hubspot.com/"
    }
  },
  "image" : [ "https://start-link.jp/hubfs/startlink-ai-agent.jpg", "https://start-link.jp/hubfs/startlink-aiorg.jpg" ],
  "knowsAbout" : [ "HubSpot CRM", "HubSpot Implementation", "HubSpot導入支援", "CRM構築", "AI活用", "HubSpot連携アプリ開発", "Salesforce to HubSpot Migration", "Generative AI Integration", "AI Agent Development", "Revenue Operations", "Marketing Automation", "freee Integration", "Notion Integration", "Money Forward Integration" ],
  "legalName" : "株式会社StartLink",
  "logo" : "https://start-link.jp/hubfs/startlink-logo.png",
  "mainEntityOfPage" : "https://start-link.jp/",
  "memberOf" : {
    "@type" : "ProgramMembership",
    "hostingOrganization" : {
      "@type" : "Organization",
      "name" : "HubSpot, Inc.",
      "url" : "https://www.hubspot.com/"
    },
    "membershipNumber" : "Gold Tier",
    "programName" : "HubSpot Solutions Partner Program"
  },
  "name" : "株式会社StartLink",
  "sameAs" : [ "https://www.youtube.com/@startlink-hubspot", "https://x.com/ImaedaTakumii", "https://www.linkedin.com/in/takumi-imaeda/", "https://www.linkedin.com/company/108100307/", "https://www.facebook.com/takumiIma", "https://www.facebook.com/profile.php?id=61566874764985", "https://prtimes.jp/main/html/searchrlp/company_id/149669", "https://app.hubspot.com/ecosystem/46046172/marketplace/solutions/startlink" ],
  "taxID" : "8010001248134",
  "url" : "https://start-link.jp/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#website",
  "@type" : "WebSite",
  "inLanguage" : "ja",
  "name" : "株式会社StartLink",
  "publisher" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "url" : "https://start-link.jp/"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-hubspot",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "CRM導入", "HubSpot" ],
  "description" : "150社以上の実績を持つHubSpotゴールドパートナーが、業務フローに合わせた設計から構築・本番稼働まで一貫支援。",
  "name" : "HubSpot導入・構築支援",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "HubSpot導入・構築支援",
  "url" : "https://start-link.jp/service/hubspot"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-hubspot-ai",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "CRM最適化", "AI活用" ],
  "description" : "HubSpotを軸に業務要件に沿った設計改善とAI連携活用を包括支援。",
  "name" : "HubSpot AIコンサルティング",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "HubSpot AIコンサルティング",
  "url" : "https://start-link.jp/service/hubspot-ai"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-hubspot-training",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "研修", "HubSpot" ],
  "description" : "HubSpotの概念・基本操作からAI活用ノウハウまで、社内浸透のための研修を提供。",
  "name" : "HubSpot研修・レクチャー支援",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "HubSpot研修・内製化支援",
  "url" : "https://start-link.jp/service/hubspot-ai/training"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-sf2hs-replace",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "CRM移行", "データ移行" ],
  "description" : "Salesforce/HubSpot双方の思想とデータモデルを理解した移行設計とHubSpot側CRM開発を実行。",
  "name" : "SalesforceからHubSpotへのリプレイス支援",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "SalesforceからHubSpotへのリプレイス支援",
  "url" : "https://start-link.jp/service/salesforce-hubspot-replace"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-claude-code-bi",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "AI活用", "経営管理" ],
  "description" : "複数システムのデータを統合し、毎朝のAIブリーフィングなど経営の意思決定を加速する仕組みを構築。",
  "name" : "Claude Codeによる経営データ活用支援",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "AI経営管理支援",
  "url" : "https://start-link.jp/service/claude-code/business-intelligence"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#service-claude-code-content",
  "@type" : "Service",
  "areaServed" : "JP",
  "category" : [ "コンテンツマーケティング", "AI活用" ],
  "description" : "キーワード戦略からSEO記事制作、CMS公開まで、AIを活用したコンテンツマーケティングを自動化。",
  "name" : "Claude Codeによるコンテンツマーケティング支援",
  "provider" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "serviceType" : "AIコンテンツ制作支援",
  "url" : "https://start-link.jp/service/claude-code/content-marketing"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#product-sync-freee",
  "@type" : "SoftwareApplication",
  "applicationCategory" : "BusinessApplication",
  "author" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "description" : "HubSpotとfreee会計・freee請求書をシームレスに連携。取引先の同期から請求書作成まで、バックオフィスの業務を自動化するHubSpotマーケットプレイスアプリ。",
  "featureList" : [ "freee取引先をHubSpotに自動同期", "HubSpotからfreee見積書・請求書を作成", "取引データをfreee会計に自動登録", "月次請求・更新処理に対応", "商品項目・品目・部門・タグ情報の連携" ],
  "installUrl" : "https://ecosystem.hubspot.com/marketplace/apps/sync-for-freee-bystartlink",
  "name" : "Sync for freee",
  "offers" : [ {
    "@type" : "Offer",
    "description" : "請求月5件・見積月20件まで",
    "name" : "Free",
    "price" : "0",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "請求月50件・見積月100件まで",
    "name" : "Professional",
    "price" : "4000",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "無制限",
    "name" : "Enterprise",
    "price" : "10000",
    "priceCurrency" : "JPY"
  } ],
  "operatingSystem" : "Web",
  "softwareHelp" : {
    "@type" : "WebPage",
    "url" : "https://start-link.jp/sync/knowledge-base/freee/basic-steps"
  },
  "url" : "https://start-link.jp/sync/freee"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#product-sync-notion",
  "@type" : "SoftwareApplication",
  "applicationCategory" : "BusinessApplication",
  "author" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "description" : "HubSpotのCRMレコードとNotionのページ・データベースを接続。HubSpotの画面から離れずにNotionのすべてにアクセスできるHubSpotマーケットプレイスアプリ。",
  "featureList" : [ "CRMカードからNotionページの作成・閲覧・編集", "NotionデータベースをCRMタブにテーブル表示", "4つのワークフローアクションで自動化", "コンタクト・会社・取引・チケット・サービス・プロジェクト対応" ],
  "installUrl" : "https://ecosystem.hubspot.com/marketplace/listing/sync-for-notion-bystartlink",
  "name" : "Sync for Notion",
  "offers" : [ {
    "@type" : "Offer",
    "description" : "ページ・DB合計50件まで",
    "name" : "Free",
    "price" : "0",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "無制限",
    "name" : "Professional",
    "price" : "10000",
    "priceCurrency" : "JPY"
  } ],
  "operatingSystem" : "Web",
  "url" : "https://start-link.jp/sync/notion"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#product-sync-moneyforward",
  "@type" : "SoftwareApplication",
  "applicationCategory" : "BusinessApplication",
  "author" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "description" : "HubSpotとマネーフォワード クラウドを連携。取引情報から見積書・請求書を自動作成し、取引先・品目の同期や継続請求に対応するHubSpot連携アプリ。",
  "featureList" : [ "取引（Deal）から見積書・請求書を自動作成", "会社情報とマネーフォワード取引先の同期", "商品項目・品目マスタの連携", "月次・固定回数の継続請求に対応（Professionalプラン以上）", "合算請求（Enterpriseプラン限定）", "前受請求（一括請求・月次計上）（Enterpriseプラン限定）", "原価登録（MF会計への仕訳登録）で案件別の原価・粗利を可視化（Enterpriseプラン限定）", "取引レコードにCRMカードで連携ステータスを表示" ],
  "installUrl" : "https://ecosystem.hubspot.com/ja/marketplace/listing/sync-for-moneyforward-bystartlink",
  "name" : "Sync for Money Forward",
  "offers" : [ {
    "@type" : "Offer",
    "description" : "請求月5件・見積月20件まで",
    "name" : "Free",
    "price" : "0",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "請求月50件・見積月100件まで",
    "name" : "Professional",
    "price" : "4000",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "無制限",
    "name" : "Enterprise",
    "price" : "10000",
    "priceCurrency" : "JPY"
  } ],
  "operatingSystem" : "Web",
  "url" : "https://start-link.jp/sync/moneyforward"
}
```

```json
{
  "@context" : "https://schema.org",
  "@id" : "https://start-link.jp/#product-sync-chatwork",
  "@type" : "SoftwareApplication",
  "applicationCategory" : "BusinessApplication",
  "author" : {
    "@id" : "https://start-link.jp/#organization"
  },
  "description" : "HubSpotとChatworkを連携。ワークフローからChatworkのルームへ通知を送り、CRMカード上で最新のやり取りの確認と返信ができ、紐付けたルームの新着メッセージをHubSpotのノートとして自動で記録するHubSpot連携アプリ。",
  "featureList" : [ "ワークフローアクション「Chatworkに通知」（取引・会社・コンタクト・チケット対応）", "送信先ルームIDとメッセージ本文にHubSpotのプロパティを差し込み", "取引・会社・コンタクトとChatworkルームの紐付け（全プラン無制限）", "CRMカードにルームの最新100件のメッセージを表示（Professionalプラン以上）", "CRMカードからChatworkへメッセージを送信（Professionalプラン以上）", "紐付けたルームの新着メッセージをHubSpotのノートへ自動記録（Enterpriseプラン限定）", "引用や装飾を、HubSpotのノートでも読みやすい見た目のまま記録", "OAuth接続とAPIトークン接続（SAML/SSO環境向け）に対応" ],
  "installUrl" : "https://ecosystem.hubspot.com/marketplace/listing/sync-for-chatwork-bystartlink",
  "name" : "Sync for Chatwork",
  "offers" : [ {
    "@type" : "Offer",
    "description" : "通知 月10件まで・ルーム紐付け無制限",
    "name" : "Free",
    "price" : "0",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "通知無制限・CRMカードで最新100件の表示とメッセージ送信",
    "name" : "Professional",
    "price" : "3000",
    "priceCurrency" : "JPY"
  }, {
    "@type" : "Offer",
    "billingIncrement" : "P1M",
    "description" : "Professionalの全機能＋メッセージ同期（30分ごと）",
    "name" : "Enterprise",
    "price" : "10000",
    "priceCurrency" : "JPY"
  } ],
  "operatingSystem" : "Web",
  "url" : "https://start-link.jp/sync/chatwork"
}
```