2026-06-28
2026年版 チーム向け Claude Code セキュリティベストプラクティス
Claude Codeを実行するチームのための実践的なセキュリティガイドです。権限モード、allowlists、MCPの検証(vetting)、シークレット管理、最小特権CI実行など、包括的なセキュリティ対策を解説します。

最終更新日: June 28, 2026
リポジトリを読み取り、シェルコマンドを実行し、外部サービスを呼び出すことができる AI コーディングエージェントは、「到達範囲」があるからこそ有用です。しかし、その「到達範囲」がリスクでもあります。誤ったプロンプトの解釈、不十分な allowlist の設定、または信頼できない MCP サーバー一つで、トークンが漏洩したりブランチが消去されたりする可能性があります。本ガイドは、Claude Code を日常業務や CI で活用したいものの、プロダクション環境への鍵を渡したくない開発者やプラットフォームリードのためのものです。
クイックアンサー:チームはどのように Claude Code のセキュリティを維持するか?
エージェントを最小特権(least privilege)で実行し、その動作をレビューすることが重要です。実際には、以下の5点に集約されます。
- 制限的なパーミッションモードから開始し、「常に許可」という包括的な設定ではなく、狭い allowlist を通じてツールを付与する。
- シークレットをモデルのコンテキストから排除する:キーを貼り付けないこと、そして
.envやシークレットパスに対してdenyルールを設定すること。 - 接続する前にすべての MCP サーバーを検証する。信頼できないサーバーはデータにアクセスし、あなたの代わりにアクションを実行できるためです。
- フェッチされた web コンテンツを、プロンプトインジェクションの指示を含む「未検証の入力」として扱う。
- CI では、短命で read-scoped のトークンを与え、プロダクション認証情報を決して露出させない。
この記事の残りの部分は、これら各項目を具体的な設定、リスク表、パーミッション参照、そしてコピー可能な CI シナリオに落とし込んで解説します。
パーミッションモードと allowlist は実際にどのように機能するのか?
Claude Code はツールを初めて実行する前に尋ねます。その決定が記憶されるか、スコープ化されるか、スキップされるかをあなたが決定します。パーミッションモードはベースラインを設定します:
default:各ツールやコマンドの初回使用時にプロンプトが表示されます。plan:読み取り専用です。エージェントはファイルを読み取り計画を提案できますが、編集したりコマンドを実行することはできません。レビューに使用してください。acceptEdits:ファイル編集は自動的に承認しますが、シェルコマンドについては引き続きプロンプトが表示されます。bypassPermissions:すべてのプロンプトをスキップします。サンドボックス専用として扱ってください。
永続的な制御は、.claude/settings.json の permissions 内にあり、allow、ask、および deny ルールで構成されています。ルールはツールとパターンによってスコープ化されるため、タスクが必要とするものだけを正確に付与できます:
{
"permissions": {
"allow": ["Read", "Edit", "Bash(npm test:*)", "Bash(git diff:*)"],
"ask": ["Bash(git push:*)", "WebFetch"],
"deny": ["Read(./.env)", "Read(./secrets/**)", "Bash(curl:*)", "Bash(rm -rf:*)"]
}
}
deny ルールは常に allow ルールに優先するため、上記のようにブロードな Read ルールが存在してもシークレットパスは読み取り不能なままになります。Anthropic は、Claude Code の identity and access management docs で完全なルール構文と優先順位を文書化しています。

使い捨てコンテナの外で --dangerously-skip-permissions を使用することは避けてください。これは、悪い rm や予期せぬネットワーク呼び出しをキャッチする唯一の人的チェックポイントを排除してしまいます。リスクなしにスピードが欲しい場合は、タイトな allowlist を好むべきです。そうすれば、定型的なコマンドは人手を介さずに実行され、新しいものはあなたのために一時停止されます。
リスクと軽減策の参照
ほとんどのインシデントは、いくつかのパターンに起因します。エージェントをチーム全体にスケールさせる前に、それぞれに対応する制御策をマッピングしてください。
| リスク | 発生理由 | 軽減策 |
|---|---|---|
| シークレット漏洩 | チャットに貼り付けられたキーや .env から読み取られる |
シークレットパスに deny を設定;認証情報は環境変数経由で渡し、プロンプトには絶対に入れない |
| 破壊的コマンド | rm/git reset に対する広すぎる allow または bypassPermissions の使用 |
rm -rf や force-push は ask または deny に含める;diff をレビューする |
| プロンプトインジェクション | フェッチされたページや issue テキストに隠された指示が含まれる | web/issue コンテンツを未検証として扱い、WebFetch のスコープを既知のドメインに限定する |
| 信頼できない MCP サーバー | 書き込み/ネットワークのスコープを持つサーバーがあなたの代わりにアクションを実行する | 作成者とパーミッションを検証する;バージョンを固定する;最小限のスコープにする |
| 広すぎるファイルアクセス | エージェントがプロジェクト外のファイルを読み取ったり編集したりする | リポジトリにスコープを限定する;additionalDirectories の追加は避ける |
| 履歴の上書き | force-push や hard reset で作業内容が失われる | ブランチ保護を設定する;git push --force に ask を設定する |
| CI クレデンシャル漏洩 | プロダクショントークンをランナー環境に配置してしまう | 短命で read-scoped のトークンを使用する;レビュージョブにプロダクション認証情報を絶対に入れない |
このフレームワークは、プロンプトインジェクション、安全でない出力処理、過剰なエージェンシーを主要なリスクとして指摘している OWASP Top 10 for LLM Applications に基づいています。
パーミッションとスコープの参照
この表は、私が新しいチームメンバーに渡すチートシートです。単一の実行による「爆発半径」を変更する設定を網羅しています。
| 設定 / flag | 制御するもの | 推奨されるデフォルト |
|---|---|---|
permissions.allow |
プロンプトなしで実行されるツール呼び出し | 例: Read, Bash(npm test:*) のような狭いリスト |
permissions.ask |
必ず最初にプロンプトが表示される呼び出し | 書き込み、ネットワーク、パッケージインストール |
permissions.deny |
完全にブロックされる呼び出し | Read(./.env), Bash(curl:*), シークレットパス |
--permission-mode plan |
読み取り専用の計画。編集やコマンドは不可 | コードレビューと監査 |
acceptEdits mode |
編集を自動承認するが、シェルについてはプロンプトが表示される | 信頼できるローカルリファクタリング |
--dangerously-skip-permissions |
すべてのプロンプトをスキップする | 使い捨てのサンドボックスのみ |
additionalDirectories |
エージェントが読み取る可能性のある追加フォルダ | 未設定のままにする;リポジトリにスコープを限定する |
MCP サーバーを接続する前の検証
MCP サーバーは、エージェントに新しいツール(データベースクライアント、チケット連携、ブラウザなど)を追加します。追加する一つ一つが、コンテキストを読み取りアクションを実行できるコードです。信頼できないサーバーは、便利なエージェントをデータ漏洩の経路に変えてしまう最も早い方法であるため、接続するための基準は、ネットワークアクセスを持つあらゆる依存関係に適用する基準と同じでなければなりません。
サーバーを追加する前に、以下の5つの質問に答えてください。
- 誰が公開しているか?ソースはパブリックであり、メンテナンスされているか?
- どのようなスコープを要求するか:読み取り専用か、書き込みとネットワークか?
- 接続された後、どのデータが見えるか:このリポジトリのみか、それともマシン全体か?
- クレデンシャルはスコープ化され短命か、それとも長期間の管理者トークンか?
- バージョンを固定し、自動アップデートがアクセス範囲を静かに広げることができないようにできるか?
作業に必要な最小限のスコープを持つサーバーを接続し、書き込み可能な、またはプロダクション向けのサーバーは共有設定や CI の設定から外してください。セットアップの仕組みとより深い手順については、Claude Code MCP integration guide を参照してください。Claude Code productivity tips は、スピードを落とさずにフットプリントを小さく保つ方法について解説しています。
シークレットをモデルの届かない場所に保つ
最もクリーンなシークレットとは、モデルが一度も目撃しないものです。API キーをプロンプトに貼り付けたり、「設定からキーを読み取って使用して」とエージェントに依頼したりしないでください。認証情報は環境変数内に存在させ、名前で参照することで、値がトランスクリプトに残るのを防ぎます。

ほとんどのリスクをカバーするのは、以下の3つの習慣です:
.env、*.pem、および任意のsecrets/ディレクトリに対してdenyルールを追加し、エージェントが誤って読み取れないようにする。- pre-commit secret scanner(gitleaks や
git secretsなど)を使用して、漏れたキーが監査ではなくコミットで失敗するようにする。 - 露出してしまったものはすべて直ちにローテーションし、その後ログと履歴を確認する。ローテーションは窓を閉じる唯一の修正策です。
もしキーがすでにトランスクリプトやコミットに到達してしまった場合は、侵害されたものとして扱い、ローテーションを行ってください。git log -S で git 履歴を検索すると、どこに落ちたかを見つけるのに役立ちます。
シナリオ:プロダクション認証情報なしで CI に Claude Code を有効化する
あるチームは、GitHub Actions でプルリクエストのレビューに Claude Code を使いたいと考えています。目標は、デプロイ能力や main ブランチへの書き込み、またはプロダクションデータベースへのアクセスを一切持たない自動レビューコメントです。

ここでは、ジョブを有用に保ちつつも隔離された状態にするための設定を紹介します:
planモードでclaude -pをヘッドレス実行し、エージェントが diff を読み取りコメントを書き込むようにするが、ファイルを編集したりビルドコマンドを実行したりはしない。- ワークフローには
contents: readとpull-requests: writeのみを与える。デプロイジョブやインフラストラクチャのスコープは与えない。 - 個人のトークンではなく、ジョブの短命な
GITHUB_TOKENを使用し、データベースやクラウドのプロダクションキーをそのジョブの環境に絶対に入れない。 - シークレットパスとアウトバウンドの
curlに対してdenyリストを追加し、PR diff 内でのプロンプトインジェクション試行が何も漏洩させないようにする。 - アクションと Claude Code のバージョンを固定し、デプロイステップは別の人間承認された環境の背後にゲートをかける。
permissions:
contents: read
pull-requests: write
steps:
- run: claude -p "Review the diff for security issues" --permission-mode plan
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
このレビュージョブはコードを見てフィードバックを投稿します。プロダクション認証情報がスコープ内に存在しないため、本番環境には到達できません。Anthropic の Claude Code security overview は、自動およびヘッドレス実行のためのこの最小特権の姿勢を説明しています。
AI コーディングエージェントに決して貼り付けてはいけないものは?
コンテキストウィンドウ内のすべてがエコーバックされたり、ログに記録されたり、アクションの対象となったりする可能性があるため、いくつかの入力はどこにも属してはいけません:
- ライブ API キー、パスワード付きデータベース URL、またはクラウドルート認証情報。
- サポートチケットに入れるべきではない顧客 PII や規制データ。
- プライベートな署名キー、証明書、または
.pemファイル。 - リードレプリカやローカルフィクスチャで十分な場合でも、完全なプロダクション接続文字列。
エージェントが必要とするアクセスがある場合は、シークレット自体ではなく、環境変数を通じてスコープ化された認証情報へのパスを与えるようにしてください。結果は同じですが、爆発半径は遥かに小さくなります。
監査、フック、継続的なレビュー
最小特権が土台を築き、レビューがそれを維持します。リスクのあるステップを承認する前にエージェントの計画を読み、コミットする前に diff を読むようにしてください。より大きな変更の場合、「AI-assisted refactoring」のように、同じ規律が適用されます。一つ巨大な手動なしでの実行よりも、小さくレビュー可能なステップの方が優れています。
フックを使って決定論的なガードレールを追加します。PreToolUse フックはコマンドを検査し、実行される前にブロックすることができます。これは、保護されたパスへの書き込みを拒否するなど、モデルが絶対上書きして
続けて読む

Tue Mar 03 2026 19:00:00 GMT-0500 (Eastern Standard Time)
ソーシャルメディアのワークフローに最適な画像リサイザー
適切な比率でのソーシャルメディア画像のサイズ変更はもちろん、安全領域のクロッピング、最適なエクスポートサイズや圧縮設定を適用し、各プラットフォームに対応した再現性の高いワークフローを実現します。

Thu Mar 19 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
画像フォーマット解説:JPEG、PNG、WebP、GIF、SVG、AVIF
各画像フォーマットの用途を徹底解説。JPEGとPNG、WebP、AVIF、SVG、GIFなど、どの形式を使うべきかを比較し、実際の測定ファイルサイズやウェブ画像のための実用的な決定ルールを提供します。

Thu Jul 23 2026 20:00:00 GMT-0400 (Eastern Daylight Time)
品質を損なうことなく、画像を100KB未満に圧縮する方法
表示されないピクセルをリサイズで除去し、必要な範囲でのみエンコーダー品質を下げる方法。5つの実ファイルから得られた再現可能な結果も含まれています。