Claude CodeなどAIエージェント導入時のセキュリティ対策(2026/3/6時点)
まず結論(最優先の3手)
-
秘密情報を“置かない”:
.envやローカル平文をやめ、Secrets Manager等へ移す。 -
触れる範囲を“物理的に狭める”:隔離環境+ネットワーク制限+最小権限。
-
重要操作は“人間が止める”:deny/ask設定+承認ワークフロー+支出監視。
Claude Codeとは何か(初心者向け)
Claude Codeは、コードを読み、複数ファイルを編集し、コマンドを実行し、開発ツールと連携してタスクを進める「エージェント型のコーディング支援」です。公式は、端末CLI・IDE・デスクトップ・Webなどで提供すると説明しています。便利な反面、許可した範囲がそのまま攻撃面になります。
1. なぜ危ないのか(事故パターン)
1-1. “ツール”は実質「任意コード実行」
MCPなどのツール呼び出しは「任意コード実行に相当するので慎重に扱う」「実行前に明示同意を取る」と整理されています。
1-2. プロンプトインジェクション(指示の乗っ取り)
信用できないWeb/PDF/メールの文章に“隠し命令”を混ぜ、AIの行動を乗っ取る攻撃です。Anthropicもブラウザ利用で課題が増幅すると述べています。
1-3. 実例:設定ファイル経由でRCE/キー流出が報告
2026年2月のCheck Point Researchは、.claude/settings.jsonや.mcp.json等を悪用してRCEやAPIキー露出が起こり得ることを解説しています。
2. ①〜⑮:具体策・有効性・根拠
① シークレットマネージャー完全移行(.env廃止)
有効性:AIが読める場所から秘密が消えるほど、漏洩確率は下がる。
根拠:AWSはSecrets Managerでの保管・最小権限・監視・ローテ等を推奨。GoogleもSecret Managerのベストプラクティスを提示。
手順:登録→実行時に取得(ファイル保存しない)→取得権限を最小化。
② AI実行環境の完全隔離(Docker/VM/専用)
有効性:開発PCの鍵・Cookie・他案件データへの横展開を遮断。
根拠:安全にはファイル隔離とネット隔離の両方が重要。
手順:専用VM/クラウドで実行、共有は作業ディレクトリのみ、認証情報を持ち込まない。
③ settings.jsonの多層deny設定
有効性:「読まれたら終わり」領域に到達させない。
根拠:Claude Codeはdeny→ask→allowで評価し、Read(./.env)等で指定できる。
手順:Read(*.env) deny、.ssh/** deny、Edit(/prod/**) deny、Bash(curl *) deny等。
④ MCC/Google Ads API:最小権限+予算上限
有効性:乗っ取られても“焼け野原”を防ぐ(被害の上限を作る)。
根拠:Google Adsはアクセスレベルで影響範囲が変わる。 Account Budgetで上限/期間を管理できる。
手順:子アカ単位で権限付与、請求分離、日額+アカウント予算の両方でキャップ。
⑤ リアルタイム支出監視アラート強化
有効性:「目覚めたら遅い」を“通知で早起き”に変える。
手順:予算/課金の通知をON→費用データを集約→深夜急増・上限接近でSMS/電話通知。
⑥ 人間承認必須ワークフロー(重要操作は手動承認)
有効性:プロンプト注入や誤解釈でも、最後に止められる。
根拠:フックは決定論的制御として紹介され、承認用途も示される。
手順:書き込み/課金/デプロイは承認トークン必須、承認は短時間で失効。
⑦ プロンプトインジェクション対策(運用+Guardrails)
有効性:外部文章を読ませても“即実行”させない。
根拠:プロンプト注入は主要課題で継続改善領域。
手順:外部入力は要約のみ→人間確認→実行の二段階。分類器としてLlama Guard系も選択肢。
⑧ ログ自動サニタイズ(機密マスキング)
有効性:ログ共有/監視経由の二次漏洩を防ぐ。
手順:Authorizationやキー形式を***置換、サニタイズ前ログは保存しない。
⑨ APIキー定期ローテーション(30日ごと)
有効性:漏洩しても“使える時間”を短縮。
根拠:Secrets Managerはローテ推奨、スケジュール設定が可能。
手順:自動ローテ→旧キー段階無効化→切替失敗を監視。
⑩ MCP(ツール呼び出し)の厳格審査・最小化
有効性:ツールが増えるほど増える抜け道を減らす。
根拠:MCPはツール安全性と明示同意を強調。
手順:不要ツール削除、必要でもRead-only中心、.mcp.jsonはPRレビュー必須。
⑪ ネットワーク制限サンドボックス(VPC/egress)
有効性:外部送信(持ち出し)と不審通信を遮断。
根拠:隔離はネットとファイルの両輪。
手順:egressを必要先だけ許可、curl/wgetはdenyしWebFetchで許可先を限定。
⑫ MFA + IP制限 + Cookie盗難対策
有効性:広告・請求アカの奪取を難化。
手順:強いMFA(ハードウェア推奨)、管理画面はIP制限(可能なら)、ブラウザはAI環境と分離。
⑬ インシデント対応計画(事前に紙1枚)
有効性:初動遅れ=被害拡大、を止める。
手順:緊急停止(予算/支払い停止・鍵無効化)→証拠保全→権限作り直し→再発防止。
⑭ 全社AIセキュリティポリシー策定
有効性:人や外注で運用がブレる事故を抑える。
手順:渡して良い/ダメなデータ例、ツール追加手順(⑩)、承認/監視(⑤⑥)を文書化。
⑮ 定期監査&ペネトレーションテスト(月1)
有効性:新機能・設定変更で守りが崩れるのを早期発見。
根拠:設定起点のRCE/キー露出が研究報告されている。
手順:悪意ある設定を置いた“再現環境”で、deny/askで止まるか、通知が何分で鳴るかを点検。
3. “この順でやれば事故りにくい”導入手順(初心者向け)
-
まず棚卸し:あなたの環境にある「盗まれたら困るもの」を列挙(広告/決済、クラウド、SSH、顧客データ、社内チャット)。
-
AIの役割を限定:「調査だけ」「コード修正だけ」「本番反映はしない」など、最初は“できないこと”を決める。
-
秘密→隔離→権限→監視の順で実装(逆にすると、途中で必ず抜けが出ます)。
-
最後に“悪い例を再現”して止まるか確認(⑮)。
4. すぐ使える考え方:権限は「禁止→確認→許可」
Claude Codeの権限は、ざっくり言うと
-
deny:絶対にやらせない(秘密・本番・外部送信)
-
ask:毎回人間に聞く(課金・削除・デプロイ)
-
allow:自動でOK(安全な読み取りやテスト)
の3層で作ります(評価順はdenyが最優先)。
権限ルール例(イメージ)
# まず秘密と本番は“絶対禁止”
deny: Read(*.env)
deny: Read(~/.ssh/**)
deny: Edit(/prod/**)
# 課金/外部通信/削除は“必ず確認”
ask: Bash(rm *)
ask: Bash(curl *)
ask: mcp__*__*
# テストやビルドは“許可”
allow: Bash(npm test*)
allow: Bash(npm run build*)
※実際の書式はClaude Codeのドキュメントに合わせて調整してください。
5. 典型事故シナリオ(広告費が溶ける例)と、どの対策で止まるか
-
AIがWebの「広告運用の改善手順」を読み、そこに混ざった“隠し命令”でAPI操作へ誘導(⑦で分離・検知)。
-
ツール呼び出しでGoogle Ads APIへ大量の変更(⑥で承認が必要、⑩でツール最小化)。
-
予算が急増(④で上限、⑤で即アラート)。
-
それでも不審通信で外部にログ送信(⑪でegress遮断、⑧で機密マスク)。
-
侵害後に原因調査が遅れる(⑬の紙1枚で初動短縮)。
6. “やってはいけない”危険設定(最重要)
-
権限確認を丸ごとスキップする運用(例:承認を自動化し過ぎる)
-
リポジトリに入った設定ファイルを無審査で信用(③⑩⑮で防ぐ)
-
APIキーをログやチャットに貼る(⑧で無害化、そもそも①)
7. もう一段だけ強くする小技(余裕があれば)
-
サンドボックス実装を“自前”で固める:AnthropicはOSレベルでファイル/ネット制限をかける軽量ツール「sandbox runtime (srt)」も公開しています。Dockerが重い環境では、こうした仕組みで“外に出ない”を作ると運用が安定します。
-
設定ファイルを署名/ハッシュで固定:
settings.jsonや.mcp.jsonをCIで検査し、想定外の変更があればマージ不可に。 -
緊急停止の“ワンボタン化”:広告停止・鍵無効化・ネット遮断を自動化し、深夜でも人が迷わないようにする(⑬を具体化)。
まとめ
迷ったら、①秘密の撤去→②隔離→③deny/ask→④予算上限→⑤監視→⑬⑮で訓練、の順で固めれば大事故をかなり減らせます。今日から実行!。
補足:導入後は「更新担当」を決め、Claude CodeとMCPサーバーを最新版へ保ち、不要権限が増えていないか毎月見直すと安心です。CIでsecretスキャンも併用すると更に強い。小さく始めて段階的に拡張です。

