Claude Codeのセキュリティ対策の基本:最初にやる7つの設定【設定ファイル付き】


SETODEZA合同会社 代表 / せとうちAI 編集長
赤木 孝臣BBT大学卒業。システム開発・スタートアップ支援・マーケティングを経て生成AI事業を開始。SETODEZA合同会社代表として岡山・香川の中小企業へのAI導入を支援するほか、岡山市ももスタ「NoCodeBootCamp」を運営。せとうちAIの企画・編集を担当。
Claude Codeを安全に使うためのセキュリティ対策の基本を7ステップで整理。機密情報の読み取り・外部送信・破壊的コマンドを防ぐ許可/拒否設定を、そのまま貼れるsettings.json付きで解説します。
この記事の要点
- Claude Codeは、AIにファイル編集やコマンド実行を任せる道具。だからこそ「どこまで触らせるか」を最初に決めておくのが安全の基本です
- 気をつけるリスクは大きく3つ。①機密情報の読み取り ②意図しない外部送信 ③破壊的なコマンドの実行
- 対策は難しくありません。
~/.claude/settings.jsonに許可(allow)と拒否(deny)を書き、サンドボックスを有効にするだけで大半を防げます - この記事では、最初にやっておきたい7つの設定を、そのまま貼れる設定ファイル付きで紹介します
- 設定のキー名やUIはバージョンで変わることがあります。あわせて公式ドキュメントも確認してください
Claude Codeは、日本語で指示するだけでコードの作成・修正・コマンド実行までAIが進めてくれる便利な道具です。一方で、AIに実行の権限を渡す道具でもあります。何も設定しないまま使うと、うっかり機密ファイルを読まれたり、意図しない操作をされたりするリスクがあります。
とはいえ、身構える必要はありません。最初に少しだけ設定しておけば、危険な操作だけを止めつつ、安全な作業は快適に任せられます。この記事では、Claude Codeを仕事で使う人向けに、セキュリティ対策の基本を7ステップで整理します。
Claude Codeで気をつけるべき3つのリスク
まず、何から守るのかを整理します。
| リスク | 具体例 |
|---|---|
| 機密情報の読み取り | SSH鍵・クラウドの認証情報・.envのAPIキーをAIが読んでしまう |
| 意図しない外部送信 | curlなどで、データが知らないうちに外部へ送られる |
| 破壊的なコマンド | rm -rfのような、取り返しのつかない削除が実行される |
この3つを塞ぐのが、対策の中心です。逆にここさえ押さえれば、日常の作業は安心して任せられます。
設定ファイルの場所
Claude Codeの設定は ~/.claude/settings.json にあります。開き方は2通りです。
- Claude Codeの画面で
/configと打つ - ターミナルで
open ~/.claude/settings.jsonを実行する
中身が {} だけ、または空なら未設定の状態です。ここに、これから紹介する設定を書いていきます。
基本の7ステップ
STEP 1:サンドボックスを有効にする
AIが触れる範囲を「いま開いているフォルダの中だけ」に制限します。Claude Codeの画面で次を実行し、表示されたメニューで「Auto-allow mode」を選びます。
/sandbox
(Linuxの場合は先に sudo apt-get install bubblewrap socat が必要です)
STEP 2:機密ファイル・フォルダをブロックする
SSH鍵やクラウドの認証情報など、そもそもAIに読ませたくないものを deny で指定します。
{
"permissions": {
"deny": [
"Read(~/.ssh/**)",
"Read(~/.gnupg/**)",
"Read(~/.aws/**)",
"Read(~/.azure/**)",
"Read(~/.kube/**)",
"Read(~/.npmrc)",
"Read(~/.git-credentials)",
"Read(~/.config/gh/**)",
"Edit(~/.bashrc)",
"Edit(~/.zshrc)"
]
}
}
| 設定 | 何を守るか |
|---|---|
~/.ssh/** | サーバーへの接続鍵 |
~/.gnupg/** | 暗号化鍵 |
~/.aws ・ ~/.azure ・ ~/.kube | クラウドサービスのログイン情報 |
~/.npmrc ・ ~/.git-credentials ・ ~/.config/gh | 開発ツールのログイン情報 |
~/.bashrc ・ ~/.zshrc | 起動時に自動実行される設定ファイル |
STEP 3:外部通信・破壊的コマンドをブロックする
データの外部送信や、取り返しのつかない削除を止めます。STEP 2の deny に追加します。
"Bash(curl *)",
"Bash(wget *)",
"Bash(nc *)",
"Bash(ssh *)",
"Bash(git push *)",
"Bash(rm -rf *)",
"Bash(git push --force)",
"Bash(curl * | bash)",
"Bash(env)",
"Bash(printenv)"
git push * を止めると、自分がpushしたいときも影響します。その場合はAIを介さず、ターミナルから手動で実行すれば問題ありません。
STEP 4:よく使う安全な操作を自動許可にする
安全とわかっている操作は、確認なしで進むようにします。毎回「OK」を押す“確認疲れ”を防ぎ、本当に危ない操作だけ確認が出るようにするのが狙いです。
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npm test *)",
"Bash(npx prettier *)",
"Bash(npx eslint *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git commit *)",
"Bash(ls *)",
"Bash(cat *)",
"Bash(grep *)"
]
}
}
STEP 5:.envファイルをブロックする
APIキーやパスワードを書く .env を読めないようにします。deny に追加します。
"Read(*.env)",
"Read(.env.*)"
サンドボックス側にも指定すると、より強固になります(キー名はバージョンで異なる場合あり)。
{
"sandbox": {
"filesystem": {
"denyRead": ["./.env", "./.env.*"]
}
}
}
STEP 6:外部連携(MCP)の自動読み込みをオフにする
プロジェクトのMCP設定が、知らないうちに有効にならないようにします。
{
"enableAllProjectMcpServers": false
}
使いたい連携がある場合だけ、手動で個別に有効化します。
STEP 7:バージョンを最新にする
既知の脆弱性が直ったバージョンを使うため、定期的に更新します。月1回を目安に、次を実行してください。
claude update
まとめ:そのまま貼れる設定ファイル
STEP 2〜6を一括で適用するなら、以下を ~/.claude/settings.json に丸ごと貼り付けます。
{
"permissions": {
"allow": [
"Bash(npm run *)",
"Bash(npm test *)",
"Bash(npx prettier *)",
"Bash(npx eslint *)",
"Bash(git status)",
"Bash(git diff *)",
"Bash(git log *)",
"Bash(git commit *)",
"Bash(ls *)",
"Bash(cat *)",
"Bash(grep *)"
],
"deny": [
"Read(~/.ssh/**)",
"Read(~/.gnupg/**)",
"Read(~/.aws/**)",
"Read(~/.azure/**)",
"Read(~/.kube/**)",
"Read(~/.npmrc)",
"Read(~/.git-credentials)",
"Read(~/.config/gh/**)",
"Edit(~/.bashrc)",
"Edit(~/.zshrc)",
"Bash(curl *)",
"Bash(wget *)",
"Bash(nc *)",
"Bash(ssh *)",
"Bash(git push *)",
"Bash(rm -rf *)",
"Bash(git push --force)",
"Bash(curl * | bash)",
"Bash(env)",
"Bash(printenv)",
"Read(*.env)",
"Read(.env.*)"
]
},
"enableAllProjectMcpServers": false,
"sandbox": {
"filesystem": {
"denyRead": ["./.env", "./.env.*"]
}
}
}
貼り付けたあと、/sandbox で「Auto-allow mode」を選び、claude update で最新版にすれば完了です。自分のプロジェクトでよく使う安全なコマンドは、allow に足していってください。
やってはいけないこと
設定と同じくらい大事なのが、次の3つを避けることです。
--dangerously-skip-permissionsを安易に常用しない — すべての確認を飛ばすオプションです。速い代わりに歯止めが無くなるので、内容を理解した信頼できる環境でだけ使います- 機密情報をプロンプトに直接貼らない — パスワードや個人情報をチャット欄に貼るのは避け、必要なら環境変数や参照で渡します
- AIの操作を見ずに任せきりにしない — とくに削除・上書き・外部送信は、実行前の確認をちゃんと読む習慣をつけます
チーム・企業で使う場合
複数人で使うなら、managed-settings.json を使うと、全メンバーに同じ設定を強制適用できます。設定は次の優先順位で、上ほど強く効きます。
| 優先 | ファイル | 位置づけ |
|---|---|---|
| 1 | managed-settings.json | IT管理・変更不可 |
| 2 | .claude/settings.local.json | 個人のローカル上書き |
| 3 | .claude/settings.json | プロジェクト共有 |
| 4 | ~/.claude/settings.json | 個人グローバル |
CI/CDなど自動実行で使う場合は、--allowedTools "Read,Grep,Glob" のように、使えるツールをホワイトリストで絞るのが安全です。
よくある質問
Q. 設定しないと危険ですか。
初期状態でも、危険な操作には確認が入ります。ただ、確認を見落とすこともあるため、機密ファイルや破壊的コマンドは deny で最初から塞いでおくのが安心です。
Q. 設定すると使いにくくなりませんか。
むしろ逆です。安全な操作を allow に入れておくと確認が減り、危ない操作だけ止まるので、快適さと安全性を両立できます。
Q. どこまで自分でやればいいか不安です。 まずはこの記事の「そのまま貼れる設定ファイル」を入れるだけで十分な土台になります。チーム導入や、自社の業務に合わせた設計は、専門家に相談すると安全に進められます。
岡山でClaude Codeの導入を考えているなら
せとうちAI(運営:SETODEZA合同会社)は、岡山市の拠点「ももスタ」を軸に、Claude Codeのセットアップからセキュリティ設定、業務への定着までを伴走しています。「設定が難しそう」で止まっているなら、最初の環境づくりだけでも一緒にやると早いです。気になる方は、下のフォームからお気軽にご相談ください。
関連記事
BUSINESS & PRESS
事業提携・取材のご依頼
メディアへの取材・寄稿のご相談、共同企画・事業提携のご提案、AI研修・導入コンサルティングのお問い合わせを承っています。
お問い合わせはこちら →関連記事

