6-3 事故を仕組みで防ぐ|権限設定と Hooks
確認を減らしつつ安全を保つ方法。何を自動承認し何を必ず止めるかを権限設定で決め、Hooks で危険な操作を機械的にブロックします。非エンジニア向けに、注意力に頼らない安全設計を解説します。
先に読む2-3 Claude Code 初回起動|最初の動作確認チェックリスト/6-1 よく使う指示を保存する|スラッシュコマンド入門
このレッスンでわかること
2-3 で「許可プロンプトは安全装置」と学びました。ただ、使い込むほど確認の回数が増えて面倒になり、内容を読まずに承認するようになります。これがいちばん危ない状態です。
- 確認を減らしながら、安全性はむしろ上げる方法がわかる
- 何を自動承認し、何を必ず止めるかを自分で決められる
- Hooks で「絶対にやってほしくないこと」を機械的に止められる
**この章の中で、いちばん実害を防ぐレッスンです。**次章から扱う内容(Web公開・外部ツール連携)は、事故が起きたときの影響が大きくなります。その前にここを済ませます。
問題:「毎回確認」は安全ではない
初期設定では、ファイルを変更するたびに確認を求められます。安全に見えますが、実際にはこうなります。
- 確認が多すぎる
- 内容を読まずに Enter を押す癖がつく
- 本当に危険な操作も、同じ勢いで承認してしまう
これは注意力の問題ではなく、設計の問題です。人間は同じ判断を何十回も繰り返すと精度が落ちます。
解決の方向は「確認を増やす」ではありません。安全なものは自動で通し、危険なものだけを確実に止めることです。そうすれば、確認画面が出たとき「これは本当に確認すべきものだ」と分かります。
対策1:権限設定で「通すもの」と「止めるもの」を決める
Claude Code には、操作ごとに「許可」「拒否」「毎回確認」を設定する仕組みがあります。
設定の考え方
| 区分 | 例 | 設定 |
|---|---|---|
| 元に戻せる/読むだけ | ファイルを読む、フォルダ一覧を見る | 許可(自動で通す) |
| 作業に必要で、結果を確認できる | 作業フォルダ内でのファイル作成・編集 | 許可 |
| 元に戻せない/影響が外に出る | ファイル削除、外部への送信、公開 | 毎回確認 |
| やってほしくない | 認証情報ファイルの読み取り、作業フォルダの外を触る | 拒否 |
判断基準はひとつ、「間違えたとき、元に戻せるか」です。
設定してみる
.claude/settings.json というファイルで設定します。対話画面に入力して作ってもらいましょう。
.claude/settings.json を作って、権限設定を書いてください。
- ファイルの読み取りと、このフォルダ内でのファイル作成・編集は自動で許可
- ファイルの削除は必ず確認する
- 認証情報を含む設定ファイルの読み取りは拒否する
書いたあとに、どういう意味の設定か1項目ずつ説明してください。
**「説明してください」を付けるのが大事です。**設定ファイルの中身が読めなくても、意味を確認してから使えます。
書き終わったら、権限モードを Accept edits(デスクトップアプリなら同名のモード)に上げてみてください。編集は自動で通り、削除では止まるようになります。
認証情報ファイルについて。 システム開発では、パスワードや API キーを専用の設定ファイルにまとめて置く慣習があります。中身を見せると認証情報が漏れるため、**業務で扱うなら拒否設定に入れておいてください。**どのファイルが該当するか分からない場合は、対話画面で「このフォルダに認証情報を含むファイルはありますか」と聞けば教えてもらえます。
対策2:Hooks で機械的に止める
権限設定は「操作の種類」で判断します。しかし現実には「操作は同じだが、対象によって危険度が違う」ケースがあります。
- ファイル編集は許可したい。でも
請求書_確定版.xlsxだけは触ってほしくない - コマンド実行は許可したい。でも削除コマンドだけは絶対に止めたい
こういうときに使うのが Hooks です。
Hooks とは
決められたタイミングで、自動的に走るチェックです。人が見ていなくても働きます。
イメージとしては、工場のラインに付いている安全装置に近いものです。作業者が注意していなくても、危険な状態になったら機械が止まる。Hooks はそれを Claude Code の操作に対して行います。
主なタイミングは次の2つです。
| タイミング | 使いどころ |
|---|---|
| 操作の前 | 危険な操作を検知して止める |
| 操作の後 | 変更内容を記録する、通知する |
作ってみる:削除を止める
対話画面に入力します。
Hooks を設定したいです。
やりたいこと:
- Claude Code がコマンドを実行する前にチェックを入れる
- ファイルを削除するコマンドが含まれていたら実行を止める
- 止めたときは「削除コマンドはブロックしました」と表示する
設定ファイルを作って、書いた内容の意味を1行ずつ説明してください。
そのあと、実際に動くかテストする方法も教えてください。
設定ファイルの中身を自分で書ける必要はありません。「何をしたいか」を日本語で伝えて、意味を説明してもらうのが、このレッスンでの進め方です。
動作を確認する
**必ずテストしてください。**設定しただけで安心するのが、いちばん危ない状態です。
練習用フォルダで、消えても困らないファイルを作ってから試します。
練習用に delete-test.txt というファイルを作ってください。
そのあと、そのファイルを削除コマンドで消してみてください。
**ブロックされれば成功です。**もし削除されてしまったら、Hooks が効いていません。設定を見直してください。
**これは 4-3 で学んだ「わざと失敗させて確認する」と同じ考え方です。**安全装置は、動くことを確かめて初めて安全装置になります。
何を Hooks で止めるべきか
非エンジニアの業務で優先度が高いものを挙げます。
- ファイルの削除 — 元に戻せない。最優先
- 確定版・提出済みファイルの編集 — ファイル名に「確定」「提出」「final」が含まれるものを保護
- 作業フォルダの外への書き込み — 想定外の場所を触らせない
- 認証情報の読み取り — パスワードや API キーを含むファイル
権限設定と Hooks の使い分け
| 権限設定 | Hooks | |
|---|---|---|
| 判断のしかた | 操作の種類で決める | 中身を見て決める |
| 例 | 「削除は毎回確認」 | 「ファイル名に『確定』が入っていたら止める」 |
| 設定の手間 | 軽い | やや重い |
まず権限設定で大枠を決め、それでは表現できない条件だけ Hooks で補う、という順序がおすすめです。
よくあるつまずきと対処法
設定したのに効いていない
- Claude Code を再起動したか — 設定は起動時に読み込まれます
- ファイルの場所は合っているか — 対話画面で「.claude フォルダの中身を見せて」で確認できます
- 書式が壊れていないか — 対話画面に「.claude/settings.json の書式が正しいか確認して」と頼めば見てもらえます
止まりすぎて作業が進まない
条件が広すぎます。「すべてのコマンドを止める」ではなく「削除コマンドだけ止める」のように、**対象を絞ってください。**設定を書き直すときも、日本語で「〜だけ止めたい」と伝えれば直してもらえます。
会社のパソコンで設定が変えられない
組織側で管理設定が適用されている場合があります。自己判断で回避しようとせず、情報システム部門に相談してください。
**※ Hooks の設定方法は変化が早い分野です。**うまくいかないときは公式ドキュメント(code.claude.com/docs)で最新の書き方を確認してください。
この章のまとめ:3つの仕組みが揃った
第5章と第6章で、Claude Code を「その場の指示」から「仕組み」へ移す道具が揃いました。
| 仕組み | 役割 |
|---|---|
| CLAUDE.md(5-1) | 前提を常に効かせる |
| スラッシュコマンド(6-1) | 決まった手順を呼び出す |
| Skills(6-2) | 判断基準を自動で適用する |
| 権限設定・Hooks(6-3) | 事故を機械的に防ぐ |
次章からは Web ページの公開や外部ツール連携に進みます。扱う範囲が広がるほど、ここで作った安全装置が効いてきます。
やってみよう
- 棚卸し:自分の作業フォルダで「絶対に消えたら困るファイル」を3つ挙げましょう
- 権限設定:
.claude/settings.jsonを作り、読み取りと編集は許可、削除は毎回確認、認証情報ファイルは拒否に設定してください。意味の説明も受けてください - Hooks:削除コマンドを止める Hooks を設定しましょう
- テスト:練習用フォルダで、消えても困らないファイルを作ってから削除を試し、実際にブロックされることを確認してください
- モードを上げる:安全装置が効いていることを確認できたら、権限モードを Accept edits に上げ、日常の確認回数が減ることを体感しましょう
まとめ
- **「毎回確認」は安全ではない。**確認が多いほど、読まずに承認する癖がつく
- 安全なものは自動で通し、危険なものだけ確実に止めるのが正しい方向
- 判断基準は「間違えたとき、元に戻せるか」
- 権限設定は操作の種類で、Hooks は中身を見て判断する
- 優先して止めるべきは、削除・確定版の編集・作業フォルダ外・認証情報
- **設定したら必ずテストする。**動くことを確かめて初めて安全装置になる
- 設定ファイルを自分で書ける必要はない。日本語で頼み、意味を説明してもらう
理解度チェック
Q1. 「すべての操作で毎回確認する」設定が、かえって危険になりうる理由はどれでしょう?
- 確認のたびに料金が発生するから
- 確認が多すぎると内容を読まずに承認する癖がつき、本当に危険な操作も通してしまうから
- 確認するとファイルが壊れる可能性があるから
- 確認回数には上限があり、超えると自動承認になるから
答えを見る
正解:2
人は同じ判断を繰り返すと精度が落ちます。確認が日常になると内容を読まなくなり、安全装置として機能しなくなります。だからこそ「安全なものは自動で通し、危険なものだけ止める」設計にして、確認画面が出たときに「これは本当に確認すべきものだ」と分かる状態を作ります。
Q2. 「ファイル名に『確定』が含まれるファイルは編集させたくない」という要件は、どちらで実現するのが適切でしょう?
- 権限設定。操作の種類で判断できるから
- Hooks。操作の中身(対象ファイル名)を見て判断する必要があるから
- CLAUDE.md に「確定版は編集しないで」と書く
- スラッシュコマンドとして登録する
答えを見る
正解:2
権限設定は「編集」「削除」といった操作の種類で判断するため、「特定の名前のファイルだけ」という条件は表現できません。中身を見て判断するのが Hooks の役割です。なお 3 の CLAUDE.md に書く方法も効果はありますが、これは「お願い」であって強制ではありません。絶対に防ぎたいことは、お願いではなく仕組みで止めます。