Claudeのセキュリティで確認すべきこと
「Claudeを業務で使って大丈夫か」という相談を受けたとき、確認するポイントは大きく2つです。
前者はプランを選んで設定すれば決まります。後者は使う人・使う会社が自分で設計する部分で、ここを曖昧にしたまま使い始めると事故が起きます。この記事は、Swaaabが実案件でClaude Codeを使うときの設定をベースに、2026年11月時点の公式ドキュメント(code.claude.com、Anthropicのプライバシーセンター)で内容を確認してまとめたものです。
Claudeそのものの使い方は「Claudeの使い方」、Claude Codeの全体像は「Claude Codeとは?完全ガイド」をご覧ください。
---
プラン別:Claudeに入力したデータの扱い
個人向けと法人向けで規約が分かれる
Anthropicは、Free・Pro・Max・Ultraを「個人向け(Consumer Terms)」、Team・Enterprise・APIを「法人向け(Commercial Terms)」として別の規約で扱っています。データの扱いはこの区分で大きく変わります。
| 区分 | 対象プラン | 学習への利用 | 保存期間の目安(2026年11月時点) | |---|---|---|---| | 個人向け | Free / Pro / Max / Ultra | 本人が設定で選ぶ。オンにすると学習に使われる(Claude Code経由の利用も含む) | 学習を許可:最長5年/許可しない:30日 | | 法人向け | Team / Enterprise / API | 既定では学習に使わない | 標準30日。Enterpriseは保存期間のカスタム設定あり | | 法人向け(特約) | 条件を満たすEnterprise等 | 使わない | ゼロデータリテンション(ZDR)を個別に有効化。標準のEnterpriseプランには含まれない |
補足として、公式のプライバシーセンターには次の記載もあります。
- 削除した会話は履歴からすぐ消え、バックエンドからも30日以内に削除される
- シークレット(インコグニト)チャットは設定に関係なく学習に使われない
- 利用ポリシー違反と判定された入出力は最長2年保存される
- フィードバック(
/feedbackなどで送った会話)は5年保存される
会社の業務で使うなら、個人プランの使い回しではなくTeam以上にするのが基本です。個人プランでも学習をオフにはできますが、社員一人ひとりの設定に頼ることになり、会社として管理できません。
Team と Enterprise の管理機能
料金ページで確認できる管理・セキュリティ機能は次のとおりです(2026年11月時点)。
| 機能 | Team | Enterprise | |---|---|---| | 既定で学習に使わない | ○ | ○ | | シングルサインオン(SSO) | ○ | ○ | | コネクタ(外部連携)の管理者制御 | ○ | ○ | | ロールベースのアクセス制御 | – | ○ | | SCIM(ユーザーの自動プロビジョニング) | – | ○ | | 監査ログ・Compliance API | – | ○ | | データ保存期間のカスタム設定 | – | ○ | | IP許可リストなどネットワーク制御 | – | ○ |
ChatGPTの法人向けの設定と比べたい場合は「ChatGPTに学習させない設定と情報漏洩対策」も参考になります。
---
Claude Codeのセキュリティ:権限モード
Claude Codeは、ファイルの編集やシェルコマンドの実行を「権限モード」で制御しています。セッション中は Shift+Tab で切り替えられます。
| モード | 確認なしで動くもの | 向いている場面 | |---|---|---| | default(Manual) | ファイルの読み取りと、ls・git statusなど組み込みの読み取り専用コマンドのみ | 機密性の高いリポジトリ、慣れないうち | | acceptEdits | 作業フォルダ内のファイル編集と、mkdir・mvなど一部のファイル操作 | 変更を後でまとめてレビューする作業 | | plan | 読み取りと調査のみ(ソースは編集しない) | 着手前に計画を立てさせる | | auto | 原則すべて。実行前に別の分類モデルが危険な操作をチェックしてブロック | 長い作業で確認の手間を減らしたいとき | | dontAsk | 事前に許可したツールだけ。それ以外は自動で拒否 | CIなど無人で動かす処理 | | bypassPermissions | ほぼすべて(チェックなし) | 隔離したコンテナ・VMの中だけ |
最近のバージョンでは、ターミナルとVS Codeの対話セッションは標準でautoモードから始まります。autoモードの分類モデルは、curl | bash のような「ダウンロードして即実行」、外部への機密データ送信、本番デプロイ、git push --force などを既定でブロックします。
ただし、分類モデルも完璧ではありません。公式ドキュメントも「提案されたコードやコマンドを承認前に確認するのは利用者の責任」と明記しています。bypassPermissions(--dangerously-skip-permissions)は、公式も「コンテナやVMなど、壊れても困らない環境でだけ使う」としているので、普段のPCでは使わないでください。
---
permissions設定:許可・確認・拒否のルール
モードとは別に、settings.json の permissions で個別のルールを決められます。ルールは deny → ask → allow の順に評価され、どこかの設定で拒否されたものは、他の設定で許可しても使えません。
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Bash(curl *)"
],
"ask": ["Bash(git push *)"],
"allow": ["Bash(npm run test *)"],
"disableBypassPermissionsMode": "disable"
}
}
この例では、.env やsecretsフォルダの読み取りとcurlを禁止し、git pushは毎回確認、テスト実行は確認なしにしています。
注意点が1つあります。公式ドキュメントによると、Bashのルールは「Claudeが書いたコマンドの文字列」に対してマッチするもので、同じことを別の書き方で実行されると防げない場合があります(たとえば Read を拒否しても、シェル経由でファイルを読む手段は残ります)。確実に止めたいなら、次のサンドボックスと組み合わせます。
---
サンドボックスでファイルとネットワークを制限する
サンドボックスは、Claude Codeが実行するシェルコマンドをOSのレベルで閉じ込める機能です。macOSでは標準のSeatbelt、LinuxとWSL2ではbubblewrapを使います(Windowsのネイティブ環境は非対応でWSL2が必要)。/sandbox コマンドで有効にできます。
既定の動きは次のとおりです。
- 書き込み:作業フォルダと一時フォルダだけ。
.claude/の設定、.git/hooks、.zshrcなどのシェル設定は常に書き込み禁止
- 読み取り:PCのほぼ全体が読める。既定では
~/.sshや~/.aws/credentialsも読めるので、denyReadで塞いでおく
- ネットワーク:直接は出られず、プロキシ経由で許可リストのドメインだけに接続できる。許可リストは最初は空
{
"sandbox": {
"enabled": true,
"allowUnsandboxedCommands": false,
"filesystem": {
"denyRead": ["~/.ssh", "~/.aws"]
},
"network": {
"allowedDomains": ["github.com", "registry.npmjs.org"]
}
}
}
公式は、権限ルールとサンドボックスを「多層防御として両方使う」よう勧めています。プロンプトインジェクションでClaudeの判断が乗っ取られても、サンドボックスの制限はOS側で効き続けるからです。
なお、Read・Editなどのファイル操作ツール、MCPサーバー、フックはサンドボックスの外で動きます。MCPサーバーの安全な選び方は「AIエージェントのセキュリティ」で詳しく書いています。
---
フックでガードレールを作る
フック(Hooks)は、Claude Codeの動作の決まったタイミングで自分のスクリプトを実行する仕組みです。ツール実行前の PreToolUse フックで終了コード2を返すか、JSONで "permissionDecision": "deny" を返すと、その操作をブロックできます。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{ "type": "command", "command": ".claude/hooks/block-dangerous.sh" }
]
}
]
}
}
#!/bin/bash
# .claude/hooks/block-dangerous.sh
COMMAND=$(jq -r '.tool_input.command')
if echo "$COMMAND" | grep -qE 'rm -rf|terraform destroy'; then
echo "このコマンドはフックでブロックされています" >&2
exit 2
fi
exit 0
CLAUDE.mdに「rm -rfは使わないで」と書いても、それはお願いにすぎません。フックは毎回必ず実行されるので、絶対に守らせたいルールはフックに書くのが使い分けの基本です。手順やチェックリストをまとめたい場合は「Claude Code Skills」を使い、副作用のあるスキルは手動実行に限定しておきましょう。
ほかにも、Claude Codeには次のような安全機能があります。
- ワークスペースの信頼確認:初めて開くフォルダでは確認ダイアログが出る。リポジトリの
.claude/settings.jsonの許可ルールは、信頼を承認するまで適用されない
.mcp.jsonの承認:プロジェクトに含まれるMCPサーバーは、別途承認してから読み込まれる
/security-reviewコマンド:現在のブランチの変更をセキュリティの観点でレビューさせる
---
会社で使うときの管理(managed settings)
チームでClaude Codeを使うなら、管理者が配布する「managed settings」で会社のルールを固定できます。managed settingsは、ユーザーやプロジェクトの設定、コマンドライン引数より優先されます。
| 設定 | 何ができるか |
|---|---|
| permissions.disableBypassPermissionsMode | bypassPermissionsモードを使えなくする |
| permissions.disableAutoMode | autoモードを使えなくする |
| allowManagedPermissionRulesOnly | 権限ルールをmanaged settingsのものだけに限定する |
| allowManagedHooksOnly | 個人・プロジェクトのフックを無効にし、管理者が配ったフックだけ動かす |
| sandbox.enabled + failIfUnavailable | サンドボックスを必須にする |
| OpenTelemetryの監視 | 利用状況をメトリクスとして収集する |
このほか、セッション中の設定変更を記録・ブロックする ConfigChange フックも用意されています。
---
Cursorのセキュリティ設定
同じAIコーディングツールのCursorも、考え方は近いです。Cursorの公式ドキュメント(2026年11月時点)では次のように説明されています。
- Run Modes:「Auto-review」(許可リストは即実行、それ以外はサンドボックスや分類モデルでチェック)、「Allowlist」(許可リストのものだけ自動実行)、「Run Everything」(すべて自動実行、安全チェックなし)の3つ
- 許可リストは「ベストエフォートのガードレールで、強固なセキュリティ境界ではない」と公式が明記している
- サンドボックス:macOSはSeatbelt、LinuxはLandlockを利用
.cursorignore:エージェントに読ませたくないファイルを指定できる
- Privacy Mode:有効にするとデータを学習に使わない。チームの管理者が一括で設定できる
- MCPの接続は最初に承認が必要
Claude Codeと同じく、「Run Everything」は普段使いには向きません。
---
バイブコーディングのセキュリティ
バイブコーディング(AIに自然言語で指示してアプリを作る手法)は、エンジニアでない人でも動くものを作れる反面、作った本人がコードの中身を読めないことがリスクになります。Swaaabがレビューを頼まれたコードでよく見かけるのは次のような問題です。
- APIキーやパスワードがコードに直書きされ、そのまま公開リポジトリやフロントエンドに出ている
- ログイン画面はあるが、APIやデータベース側でアクセス制御がされていない
- AIが提案した、聞いたことのないパッケージをそのまま入れている
- 入力値のチェックがなく、SQLインジェクションなど古典的な脆弱性が残っている
最低限、次の手順は入れておきましょう。
.env はGitに入れない(Claude Code側でも読み取りを拒否)/security-review などでAIにセキュリティレビューをさせる---
まとめ
- 業務で使うならTeam以上。法人向けは既定で学習に使われず、Enterpriseなら監査ログや保存期間の設定もできる
- Claude Codeは権限モード、permissionsのdeny/ask/allow、サンドボックス、フックの4つを組み合わせて守る
bypassPermissionsは隔離環境でだけ。会社ではmanaged settingsで無効化しておく
- 「お願い」はCLAUDE.md、「絶対に守らせる」はフックとサンドボックス
- Cursorやバイブコーディングでも、許可リストは境界ではないと理解し、秘密情報と公開前レビューを押さえる
---
Claude・AIツールの安全な導入はSwaaabへ
Swaaabは、Claude Codeを日常的に実案件で使っている立場から、AIセキュリティ対策として、Claude・ChatGPT・Cursorなどの導入時のプラン選定と設定、managed settingsやフックを使った社内ルールの設計、社員向けの研修を行っています。脆弱性診断が必要な場合は、提携先の専門会社と連携してご案内します。
「Claude Codeを社内に展開したいが、どこまで許可してよいかわからない」という段階でも、お問い合わせからお気軽にご相談ください。
Written by
Swaaab編集部
広島を拠点に、AI開発・DX支援・Web制作を手がける株式会社Swaaabの編集チーム。現場で得た知見をもとに、実践的な情報を発信しています。