AIエージェントに「全部許可」していませんか?便利な反面、知らないうちにファイルが操作されるリスクも生まれます。denyリストやサンドボックスの仕組みを、非エンジニアにもわかりやすく解説します。
Claude CodeなどのAIエージェントを使っていると、ファイルを編集しようとしたときや、コマンドを実行しようとしたときに、「許可しますか?」という確認がたびたび表示されます。「なぜこんなに確認が多いのか」と感じた方も多いのではないでしょうか。
この確認は、「知らないうちにファイルが変更・削除される」ことを防ぐための安全装置です。本記事では、AIエージェントの許可の仕組み、守りたいフォルダを確実に守る「denyリスト」、さらに強い守りの「サンドボックス」までを、非エンジニアの方にも分かるように整理します。
1. AIエージェントが「許可を求めてくる」理由
Claude Codeは、ファイルの「読み取り」「編集」、コマンドの「実行」などを、それぞれ別の操作として扱っています。作業フォルダの中のファイルを読むだけなら確認なしで進みますが、ファイルの編集や、多くのコマンドの実行は、初めて使うときに確認を求める設計です。
確認は面倒に感じるかもしれませんが、裏を返せば、AIが勝手に大事なファイルを書き換えたり、消したりするのを、人の目で止められる最後の機会です。確認の回数を減らす設定もありますが、それは「玄関の鍵を開けたまま外出する」のに近い面があります。便利になる分、新しいリスクが生まれることを理解しておきましょう。
2. 許可を広げると何が起きるのか
ここで押さえておきたいのが、「CLAUDE.mdなどに書いたルール」と「許可の設定」の違いです。CLAUDE.mdに「このフォルダの外は触らないでください」と書いても、それはAIへの「お願い」であり、システムが強制するルールではありません。公式の説明でも、許可のルールはAIではなくClaude Code(ツールの側)が強制するもので、指示やCLAUDE.mdは「AIが何をしようとするか」に影響するだけだとされています。
AIは基本的に指示に従いますが、外部から紛れ込んだ悪意ある指示(後述のプロンプトインジェクション)に引きずられると、「お願い」ベースのルールは破られることがあります。だからこそ、本当に守りたいものは、許可の設定で仕組みとして守る必要があります。
3. 許可のモード:確認の多さは選べる
Claude Codeには、確認の出し方を切り替える「許可のモード」があります。
モード | 動き | 向いている場面 |
|---|---|---|
通常(Manual) | ツールを初めて使うときに確認する | 基本の設定。重要なファイルを扱うとき |
編集を自動承認(acceptEdits) | 作業フォルダ内のファイル編集は確認なしで進める | 変更をGitで管理していて、あとから確認できるとき |
計画(Plan) | 調べるだけで、ファイルは編集しない | まず方針だけ相談したいとき |
自動(auto) | 依頼の内容に沿っているかを別の仕組みが確認しながら、自動で承認する | 確認の手間を減らしつつ、一定の安全確認は残したいとき |
確認を省略(bypassPermissions) | 一部の例外を除き、確認をすべて省略する | 隔離された環境の中だけ。普段使いには向かない |
会社で使う場合、管理者が「確認をすべて省略するモード」を使えないようにする設定もあります。確認を減らしたいときも、いきなり全部を許可するのではなく、段階的に広げていきましょう。
4. denyリストとは何か
守りたいファイルを確実に守る方法が「denyリスト」です。設定ファイル(settings.json)に守りたいフォルダの場所を登録すると、Claude Codeがそのフォルダへの読み取りや編集をブロックします。「deny」は「拒否する」という意味で、ファイアウォールなどセキュリティの分野で広く使われる言葉です。
設定例は次のとおりです。
"permissions": { "deny": [ "Read(//Users/username/Desktop/重要書類/**)", "Edit(//Users/username/Desktop/重要書類/**)" ] }
- パスの先頭は「//」:パソコン全体の中での場所(絶対パス)を指すときは、「/」を2つ重ねる。「/」が1つだと、パソコン全体の中での場所ではなく、その設定ファイルを基準にした場所として扱われ(プロジェクトの設定ならプロジェクトのフォルダ、ユーザー全体の設定なら「~/.claude/」が基準)、意図したフォルダを守れない。ホームフォルダからの場所なら「~/」で書ける
- 書き込みも「Edit」で止める:Editのルールは、ファイルを書き換えるすべての内蔵の機能に効く
- denyは最優先:ルールは「deny→確認→許可」の順に判定され、どこかでdenyに当たれば、他の設定で許可していてもブロックされる
重要な注意点として、denyリストはフォルダの名前や場所が変わると効かなくなります。守りたいフォルダの名前は固定しておきましょう。「重要書類_名前変更禁止」のように、フォルダ名そのものに注意書きを入れておくのも有効です。
5. denyリストの限界と、サンドボックスとの違い
denyリストは、Claude Codeの内蔵の読み書き機能に加えて、Claude Codeが中身を理解できるコマンド(cat、head、sedなど)や、ファイルへの書き出しにも効きます。一方で、PythonやNodeのプログラムが自分でファイルを開くような、間接的な操作までは止められません。
そこで、より強い守りとして「サンドボックス」があります。
比較項目 | denyリスト | サンドボックス |
|---|---|---|
イメージ | 特定の部屋に入れない | 箱の外に出られない |
守る仕組み | Claude Codeが判定してブロック | パソコンの基本ソフト(OS)のレベルで制限 |
間接的な操作 | 止められないことがある | AIが実行したコマンドと、そこから起動したプログラム全体に効く |
始め方 | 設定ファイルに数行 | 「/sandbox」で有効にする(Macは追加のソフト不要) |
サンドボックスは、AIが実行するコマンドとそこから起動したプログラムについて、触れてよいフォルダや通信先をOSのレベルで制限します。denyリストで「入ってはいけない部屋」を決め、サンドボックスで「出てはいけない箱」を作る。両方を組み合わせると、守りが大きく強くなります。
6. プロンプトインジェクションという脅威
AIエージェントの安全で特に警戒されているのが、「プロンプトインジェクション」です。ウェブページや文書、メールの中に悪意ある指示を埋め込んでおき、AIがそれを読み込んだときに、利用者の意図しない操作をさせる攻撃です。
ソフトウェアの安全に取り組む国際的な非営利団体OWASPは、AIアプリの主なリスクをまとめた「LLMアプリケーション向けトップ10(2025年版)」で、プロンプトインジェクションを1位に位置づけています。OWASPは、AIに直接悪意ある指示を入力する「直接型」と、AIが読み込むウェブサイトやファイルに指示を仕込む「間接型」を分けて説明しています。AIエージェントのように自分で外部の情報を調べる使い方では、間接型にさらされやすくなります。
だからこそ、外部のサイトを調べさせる作業ほど、denyリストやサンドボックスで「万一だまされても被害が広がらない」状態を作っておくことが大切です。
7. 会社として使うときの考え方
セキュリティの基本に、「最小権限の原則」という考え方があります。必要な操作にだけ許可を与え、それ以外はブロックする、という発想です。「全員に全部の権限を渡さない」という原則は、AIにも人にも共通して当てはまります。
国のルールでも、AIエージェントへの向き合い方が整理され始めています。2026年3月に公表された総務省と経済産業省の「AI事業者ガイドライン」第1.2版では、本編にAIエージェントの定義が加わりました。あわせて、自律的に動くAIについて、人の判断を介在させる仕組みの構築や、意図しない操作を防ぐための適切な権限設定が重要だという考え方が示されています。
複数の社員でClaude Codeを使う会社では、管理者が「組織として配布する設定(managed settings)」を使うと、社員の個人の設定では上書きできないdenyリストや、使えるモードの制限を一括でかけられます。社員一人ひとりの注意に頼らず、会社として守りの最低ラインを決めておけます。
8. 今日からできる対策と設定の手順
- 守りたいフォルダを1つ決める:契約書、会計データ、顧客リストなど、最も触られたくないフォルダから始める
- フォルダ名を固定する:名前に「変更禁止」などと入れておく
- denyリストに登録する:AIエージェントに「このフォルダをdenyリストに追加して」と頼めば、設定の追記を手伝ってもらえる
- 効いているか確かめる:そのフォルダのファイルを読ませようとして、ブロックされることを確認する
- 外部サイトを調べさせるならサンドボックスを使う:プロンプトインジェクションのリスクが最も高い場面だから
- 「全部許可」は安易に使わない:確認を減らすなら、編集の自動承認やautoモードなど、段階的な方法から試す
設定をAIに手伝ってもらった場合も、反映された内容は必ず自分の目で一度確認しましょう。
9. よくある誤解
- 「denyリストを設定すれば、もう安全」:間接的な操作や、ファイルの外部への送信そのものまでは防げない。有効だが部分的な対策と理解する
- 「CLAUDE.mdに書けば守られる」:CLAUDE.mdは「お願い」。強制したいことは許可の設定で行う
- 「セキュリティ設定は開発者だけの話」:AIに機密情報を扱わせる以上、使う人がエンジニアでなくてもリスクは同じ
- 「毎回確認画面が出るなら安全」:内容を読まずに「許可」を押し続ければ、確認がないのと同じ。確認の中身を読んでから判断する習慣が、最も基本的で効果の高い対策
10. まとめ
- 許可の確認は、AIが勝手に大事なファイルを書き換えるのを止める安全装置。CLAUDE.mdの「お願い」と違い、ツールの側が強制する
- 確認の多さはモードで選べる。全部を省略するモードは隔離された環境の中だけにする
- denyリストは「//」から始まる絶対パスで登録し、Editで書き込みも止める。denyはどの設定より優先される
- denyリストはプログラム経由の間接的な操作は止められない。強い守りにはサンドボックスを組み合わせる
- 外部の情報を読ませる作業ほど、プロンプトインジェクションに備える。会社では組織の設定で最低ラインを決める
