プロジェクトを用意する
前回の動画で脆弱性ポイントが分かったので、実際にプロジェクトを作りながらClaude Codeの設定をしていきます。お使いのClaude Codeが使える環境を開いてください。
今回は新しいフォルダを作ります。mkdir claude-code-security のようにコマンドで作成できますが、Linuxコマンドが分かりづらい場合は、エクスプローラーから普通にフォルダを作って開いても問題ありません。作成したフォルダをエディターで開き直し、claude コマンドでClaude Codeを立ち上げます。
パーミッション設定とは
今回はサンプルとしてToDoアプリを作っていきますが、その前にパーミッション設定を行います。パーミッション設定とは、Claude Codeに実行してほしくないコマンドを指定する設計のことです。たとえば次のようなものです。
- 環境変数用のファイルを読み込ませない
- 削除コマンドを実行しない
- 勝手にGitへプッシュしない
Claude Codeに設定してもらう
設定方法はClaude Codeに直接お願いするのが簡単です。たとえば「これからToDoアプリを作りたいのですが、環境変数などを読み込んでほしくないのでパーミッション設定をお願いします」と頼めば、自動で設計してくれます。
もちろん手動で /permissions コマンドから追加することもできますが、具体的にどのコマンドを制限すればよいか分かりづらいため、Claude Codeに任せるのがおすすめです。
settings.json で権限を管理する
設定すると、.claude ディレクトリの settings.json というファイルが作られ、ここで権限設計ができます。たとえば次のような指定がされます。
.envと.env.*ー アスタリスク(*)は「すべて」を意味し、.env.localなど.envから始まるすべてのファイルを deny(拒否)して読み込ませないcatコマンド ー ファイルの中身を表示するコマンドなので、これも実行させない
環境変数の読み込み以外にも、勝手にファイルを削除しない、勝手にGitHubへプッシュしないといった権限設定も追加できます。
3種類の権限
公式ドキュメントで「Claude Code permissions」と検索すると、権限設計について確認できます。設定できるのは次の3つです。
- allow ー 許可するコマンド
- ask ー 毎回承認を尋ねるコマンド
- deny ー 絶対に実行してはいけないコマンド
具体的に何を設計すればよいかは、ドキュメントのAIアシスタントに質問することもできます。機密ファイルの deny、破壊的コマンド、安全コマンドなどをまとめて設定してもらうとよいでしょう。
なお、オートモードで実行している場合、allow(許可)の設定は Claude Code側ではできず、deny だけが設定されます。基本的には deny の権限設計だけでも問題ありません。許可コマンドを判断なしに全部実行してよいというものがあれば、手動で設定してください(例:npm install はすべて許可、など)。
絶対に deny すべきコマンド例
rm -rf *ー 実行されるとプロジェクト全体、技術的にはパソコン全体のファイルを削除できてしまう。普通に使う分には--dangerously-skip-permissionsでも実行されないほどClaude Codeは賢いですが、可能性がゼロではないため deny に含めておくと安全ですgit pushー 勝手に実行されると、これまで作ってきたリポジトリが上書きされ、バグを含んだものに置き換わったり、バックアップごと消えて元に戻せなくなる危険があります
パーミッション設定が完了したらアプリ作成に進めますが、次の動画ではモード切り替えについて解説します。.claudeignore のようなファイルについても紹介していきます。