Blog
ブログ
AI開発環境のセキュリティ

🔐 AI開発環境のセキュリティ整理メモ
最近のAI開発ツールは、単なる補助ツールではなく、
- コードを読む
- ファイル編集
- ターミナル実行
- Git操作
- Browser操作
- MCP接続
までできる。かなり権限の強い「作業員」に近い。
なので、
- どこまで読める?
- どこまで実行できる?
- 漏れたらどこまで被害が広がる?
を考える必要がある。
🗂 やったこと
- APIキーを
.envに集約 .zshrcから読み込み- Claude Code の deny / allow 設定追加
.envや SSH鍵の読み取り制限- 危険コマンド禁止
- サンドボックス有効化
APIキーを1箇所にまとめる
APIキーを:
~/.claude/.env
にまとめる構成にした。
.zshrc には直接キーを書かず、
source ~/.claude/.env
だけを書く。
メリット
- 管理場所が固定される
.zshrcが汚れない- 消し忘れ防止
- キー差し替えが楽

🚫 deny とは
「AIにやらせないことリスト」
例えば:”Read(*.env)”なら、
.envを読むな という意味。
他にも:
"Bash(git push *)"
なら、
git push するな
さらに:
"Bash(rm -rf *)"
なら、
危険な削除コマンド禁止
という感じ。
SSH鍵もブロック
例えば:
"Read(~/.ssh/**)"
SSH鍵はかなり危険。
もし読めると、
- サーバーログイン
- deploy
- Git接続
まで繋がる可能性がある。
防ぎたいもの
deny で主に防ぎたいのは:
- 勝手な削除
- sudo実行
- 勝手なpush
- force push
- 外部送信
- 秘密情報読み取り
など。
✅ allow とは
「やってOKなことリスト」
例えば:
"Bash(git status)"
なら、
git status はOK
という意味。
つまり:
- deny = 禁止事項
- allow = 許可事項
という整理。
allow の考え方
重要なのは、
「必要なことだけ許可する」
こと。
例えば:
- status確認
- テスト実行
- prettier
- eslint
など、最低限の操作だけ通す。
📦 サンドボックスとは
「AIを檻の中で動かす」
イメージ。
deny との違い
deny は「これはやるな!」というルール。
サンドボックスは「そもそも危ない場所へ行けない」状態を作る。
例えば
普通にAIを動かすと:
- どのファイルでも触れる
- 色んなコマンド実行可能
- 外部アクセス可能
みたいになりがち。
でもサンドボックスを使うと:
- このフォルダだけ
- このコマンドだけ
- 外部通信禁止
みたいに、行動範囲そのものを制限できる。
イメージすると
- deny = 禁止ルール
- allow = 許可リスト
- サンドボックス = 檻
という感じ。
🛡 なぜ両方必要?
例えば:
"Bash(rm -rf *)"
を deny しても、
別ルートで危険操作できる可能性がある。
だから:
- deny で危険操作を禁止
- サンドボックスで触れる範囲を制限
という二段構えになる。
⚠️ わかったこと
.env を完全には防げない場合がある
例えば:
"Read(*.env)"
は、
./.env.env.local
などには効く。
でも:
~/.claude/.env
みたいなグローバル側には効かないことがある。
「全部禁止」は逆に危険
試しに強めの deny を追加したら、
- Pythonスクリプト
- Bash経由処理
- 自動化
まで壊れた。
つまり、
セキュリティを強くしすぎると実務が止まる
問題がある。
🧠 結局大事なのは
重要なのは、
「完全防御」ではなく「被害範囲を小さくする」
こと。
例えば
- AI共通領域に強い鍵を置かない
- 本番tokenを置かない
- API権限を最小化
- deploy権限を分離
- AI用tokenを分ける
みたいな考え方。
🔗 最近怖いのは「連携」
単体AIというより:
- MCP
- npm
- GitHub Actions
- Browser操作
- 自動deploy
みたいな、
AI + 自動化 + 外部権限
の組み合わせが危険。
例えば:
.env読める- Git pushできる
- deployできる
まで繋がると、被害範囲が一気に広がる。
✨ 今の考え方
「AIを使うな」ではなく、
- どこまで読めるか
- どこまで実行できるか
- 漏れた時どこまで被害が広がるか
を整理しておくのが大事そう。
最近のAI時代のセキュリティって、
「AIが危険」
というより、
「強い権限を持った存在が増えた」
に近い感覚。