【非エンジニア必見】Claude Codeを業務で使うなら、最低限やっておくべきセキュリティ設定5つ
Claude Code(Anthropic社が提供するAIコーディングツール)を業務に導入する企業が増えています。当社でもWeb制作の現場で日常的に活用していますが、導入時にセキュリティ設定をしている会社は驚くほど少ないというのが実感です。
誤解のないように先に書いておくと、Claude Codeにはもともと一定のセキュリティ機能が備わっています。ファイルの編集やコマンドの実行には都度ユーザーの許可が必要ですし、curlやwgetのような外部通信を伴うコマンドはデフォルトでブロックされます。Anthropic社はセキュリティを重視してこのツールを設計しています。
ただし、ファイルの「読み取り」に関しては制限が緩いのが現状です。Claude Codeはプロジェクトの外にあるファイルも読み取ることができます。つまり、.envファイル(APIキーやパスワードが書かれた設定ファイル)や秘密鍵にも、読み取りだけならアクセスできてしまいます。
たとえるなら、オフィスのすべての部屋を「見学」できる新入社員です。書類を持ち出すには許可がいるけれど、金庫の中身を見ることはできる——それが初期状態です。
この記事では、「最低限これだけはやっておこう」というセキュリティ設定を5つ紹介します。1〜3はJSONの設定ファイルを編集するだけなので比較的簡単です。4のhook設定はシェルスクリプトの作成が必要なため、エンジニアに依頼するのがよいでしょう。
なぜ業務利用では追加設定が必要なのか
開発や運用で使うPCには、プロジェクトごとのパスワードやサーバーへの接続情報が保存されています。.envと呼ばれる設定ファイルには、データベースのパスワードや決済システムの秘密鍵など——つまり漏れたら事故になる情報が集約されています。
前述の通り、Claude Codeはファイルの読み取りに関しては制限が緩く、.envファイルの中身も読めてしまいます。悪意がなくても、文脈の中で「設定ファイルを確認して」と言っただけで.envの中身が読まれる可能性があります。
さらに、外部のWebページやドキュメントに悪意あるテキストが埋め込まれている場合(プロンプトインジェクションと呼ばれる攻撃手法)、AIが意図せず秘密情報を読み出そうとするリスクもあります。Claude Codeにはプロンプトインジェクションを検出する機能、外部通信コマンドのブロック、さらにWeb取得時にコンテキストを分離する設計など、複数の防御が組み込まれています。しかし、ファイルの読み取りそのものまでは防げないため、追加の対策が必要です。
「うちは大丈夫」と思う方もいるかもしれません。しかし、この攻撃の厄介なところは、開発者本人が悪意ある操作をしなくても起きうるという点です。普通にWebサイトを調査させただけで、そのページに仕込まれた隠しテキストにAIが反応する——そういうシナリオが現実的に想定されています。
1. 「触ってはいけないファイル」を明示する(Denyルール)
Claude Codeには「このファイルには絶対にアクセスするな」と強制できるDenyルールがあります。設定ファイル ~/.claude/settings.json に記述します。
最低限ブロックすべきものは以下です。
{
"permissions": {
"deny": [
"Read(**/.env)",
"Read(**/.env.*)",
"Write(**/.env)",
"Read(**/.ssh/**)",
"Read(**/.aws/**)",
"Bash(cat *.env*)",
"Bash(head *.env*)",
"Bash(tail *.env*)"
]
}
}
.envファイル — APIキーやパスワードの保管場所.ssh/— サーバーにログインするための秘密鍵.aws/— AWSの認証情報
ポイントが2つあります。
1つ目は、CLAUDE.md(AIへの指示書)に「.envを読むな」と書くだけでは不十分だということ。CLAUDE.mdは「お願い」であり、強制力がありません。Denyルールは「お願い」ではなく「壁」です。
2つ目は、Readツールだけでなく、Bash経由の読み取りもブロックする必要があること。Read(**/.env)はClaude Codeの組み込み読み取り機能をブロックしますが、cat .envのようなコマンド経由のアクセスは別途Bash(...)パターンで塞ぐ必要があります。
2. 「全権モード」を無効化する
Claude Codeには、すべての許可確認をスキップするbypassPermissionsModeというモードがあります。「毎回の確認が面倒だから全部許可」という使い方ですが、業務利用では即座に無効化すべきです。
{
"permissions": {
"disableBypassPermissionsMode": "disable"
}
}
1行の設定ですが、効果は大きい。前述のプロンプトインジェクション攻撃で権限昇格を試みられた場合、このモードが有効だとすべて素通りしてしまいます。鍵をかけていても、「全部開けっ放しモード」がONなら意味がありません。
3. サンドボックスを有効にする
サンドボックスは、主にBashコマンドのファイルアクセスとネットワーク通信をOSレベルで制限する仕組みです。仮に秘密情報が読まれたとしても、攻撃者が管理する外部サーバーへの送信を抑えることができます。
{
"sandbox": {
"enabled": true
}
}
「読まれない」対策(Denyルール)と「送れない」対策(サンドボックス)を両方かけることで、リスクを大幅に下げられます。ただし、Claude Code自体はAnthropic社のAPIと通信しているため、すべての外部通信を遮断するものではない点は理解しておいてください。
なお、Claude Codeの /sandbox コマンドでも有効化できますが、恒常的に有効にするにはsettings.jsonに記述するのが確実です。
4. hookで「二重ロック」をかける
Denyルールだけに頼るのは、玄関の鍵1つで家を守るようなものです。セキュリティの世界では多層防御(Defense in Depth)が鉄則。1つの防御にバグがあっても、別の層で止める構成にします。
Claude Codeにはhookという仕組みがあり、コマンド実行前に自動でチェックスクリプトを走らせることができます。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{
"type": "command",
"command": "bash ~/.claude/hooks/security-guard.sh"
}]
}
]
}
}
チェックスクリプトには、以下のようなパターンを仕込んでおきます。
.envファイルを読もうとしていないか- SSH鍵やクラウド認証情報にアクセスしていないか
rm -rf /のような破壊的コマンドではないか- ローカルファイルを外部サーバーに送信しようとしていないか
curlやwgetはデフォルトでブロックされていますが、業務上の必要で許可している場合もあるでしょう。hookはそのような「許可した上でのリスク」にも対応できる防御層です。
Denyルール(設定の壁)+ hook(実行時の番人)。片方が抜けても、もう片方で止まる。この二重構造が重要です。
5. 「許可の蓄積」を月1で棚卸しする
Claude Codeを使っていると、「○○を実行してもいいですか?」→「今後も許可する」という操作を日常的に行います。この許可は ~/.claude/settings.local.json に自動で蓄積され続けます。
問題は、一度許可したことを忘れることです。
「あのとき一時的に許可したcurlコマンド」「テスト用に開放した特定ディレクトリへのアクセス権」が残ったまま、気づかないうちにアクセス範囲が広がっていきます。いわば許可の肥大化です。
月に一度、このファイルを開いて「この許可はまだ必要か?」と見直してください。不要なものは削除する。地味ですが、最も見落とされやすいポイントです。
番外編:ローカル履歴の存在を知っておく
環境によっては、Claude Codeがローカルにファイルの編集履歴やセッションログを保存していることがあります。もし過去に.envファイルをうっかり開いたことがあれば、その内容が平文で残っている可能性があります。
~/.claude/ ディレクトリの中身を定期的に確認し、不要な履歴ファイルは削除しましょう。
まとめ:30分の初期設定で、安心して使える環境に
| 対策 | 所要時間 | 何を防ぐか |
|---|---|---|
| Denyルール | 10分 | 秘密情報への直接アクセス |
| 全権モード無効化 | 1分 | 権限昇格攻撃 |
| サンドボックス | 1分 | 情報の外部流出 |
| hookによる二重防御 | 15分 | Denyルールの突破 |
| 許可の棚卸し | 10分/月 | 許可の肥大化 |
Claude Codeは間違いなく生産性を変えるツールです。だからこそ、「優秀なアシスタントに渡す鍵の範囲」を自分で決めることが大事です。
AIツールの導入は「使い始めること」がゴールになりがちですが、業務利用のスタートラインはセキュリティ設定を終えた瞬間です。30分の初期設定で、安心して業務に集中できる環境が手に入ります。まだやっていない方は、今日のうちにぜひ。
当社では、この5つの設定をチーム全体に適用するためのセットアップ手順書を整備して運用しています。なお、チーム共通のルールを強制したい場合は、個人設定(~/.claude/settings.json)とは別に、プロジェクトルートの .claude/settings.json やmanaged settingsを使う方法もあります。新しいメンバーがClaude Codeを使い始めるときも、最初の30分でセキュリティの土台が整った状態からスタートできるようにしています。
弊社へのご依頼や、求人のお問い合わせはこちらまでお願いいたします。
OTHERS
その他の人気記事
agent-browser vs Playwright CLI ── AI時代のブラウザ自動化CLIを比較してみた
Claude CodeやCodexのようなAIコーディングエージェントが、コードを書くだけでなくブラ...


