メルカリの Claude Code セキュリティ設定を参考に、金融業界向けの方針を考えた
TL;DR
- メルカリの発表(Claude Codeセキュリティ設定の組織配布戦略)は「端末・設定層」として十分使える。金融業界はその上にインフラ・監査・ガバナンスの3層を積み上げる
- Anthropicと直接契約しなくていい。Bedrock経由にすればAWS既存契約に乗れて、FISC・データ越境・監査ログの問題がまとめて解決する
- みずほFGはすでにこの構成でやってる
背景
金融業界でAI推進をやっている。Claude Code、正直めちゃくちゃ使いたい。
でも「導入したい」と言うたびに論点が増えていく。データの越境は?FISCは?監査ログどう保存する?Anthropicと直接契約できるの?……気づくと誰も判断できないまま議論が止まる、あの感じ。
そんなときに読んだのが、Claude Code Meetup Japan #4 のメルカリAI Security Teamの発表「メルカリのClaude Codeセキュリティ設定の組織配布戦略」だった。
MDMで managed-settings.json を全端末に強制配布して、エンジニア/非エンジニアで設定を分離する——端末レベルの統制としてよく整理されていて、「ここまでやれば動かせるんだ」という手応えがあった。
ただ読みながらずっと気になっていたのが、「これ、金融機関だと何を足せばいい?」 という点だった。
この記事は、その問いを個人で調査・整理したもの。組織の公式見解ではなく完全に個人の考察なので、その前提で読んでほしい。同じ壁にぶつかってる人の参考になれば。
用語の整理
この記事で頻出する用語を先に定義しておく。
| 用語 | 意味 |
|---|---|
| MCP | Model Context Protocol。AIがローカルのファイルやDBなどに安全にアクセスするための標準プロトコル |
| FISC | 金融情報システムセンター。金融機関のシステム安全対策基準を策定する機関 |
| MDM | モバイルデバイス管理。端末設定をIT部門が一元管理・強制適用する仕組み |
| SAST | 静的アプリケーションセキュリティテスト。コードを実行せずに脆弱性を検出する手法 |
| WORM | Write Once Read Many。一度書き込んだデータを変更・削除できないストレージの性質 |
Claude Code のリスクをおさらい
まず前提として、Claude Codeが「通常のSaaS」と異なる理由を確認しておく。
Claude Codeはターミナル上でユーザーと同等の権限で動作する。具体的には以下が可能だ。
-
.env・SSHキー・AWSクレデンシャルなどのファイル読み取り -
rm -rf・curl・bash -cなどの任意コマンド実行 - MCPサーバー経由での外部API接続
- リポジトリの
.claude/settings.jsonを通じた設定上書き
2025〜2026年にかけて実際に以下のCVEが発覚している。
| CVE | CVSS | 概要 |
|---|---|---|
| CVE-2025-54794/54795 | 8.7 | コマンドインジェクション・パス制限バイパス |
| CVE-2025-59536 | 8.7 | リポジトリの設定ファイル経由で任意コード実行 |
| CVE-2026-21852 | 5.3 |
ANTHROPIC_BASE_URL 書き換えによるAPIキー外部送信 |
| CVE-2025-52882 | 高 | WebSocket認証バイパスによるMCPコマンド注入 |
CVE-2025-59536 と CVE-2026-21852 のポイントは「リポジトリをcloneして開くだけで発動する」点だ。git clone → claude の2ステップで認証情報が外部に送信されうる。
メルカリの対策(端末・設定層)
メルカリの発表でカバーされているのは主に「端末・設定層」だ。
MDM配布の構成
MDM(Jamf / Kandji / Intune)
└─ managed-settings.json ← 最高優先度・ユーザー変更不可
└─ managed-mcp.json ← MCPサーバーのホワイトリスト
└─ CLAUDE.md ← AIへのポリシー注入(ホームディレクトリ)
Managed設定はCLI引数を含むあらゆる方法でユーザーが上書きできない。これがポイント。
設定内容の要点
{
"permissions": {
"allow": ["Bash(git:*)", "Bash(npm:*)", "Bash(ls:*)", "Read(**)"],
"deny": [
"Bash(rm -rf*)", "Bash(curl*)", "Bash(wget*)", "Bash(sudo*)",
"Bash(bash -c*)", "Read(**/.env)", "Read(**/.env.*)",
"Read(**/id_rsa*)", "Read(**/id_ed25519*)"
]
},
"defaultMode": "ask",
"bypassPermissionsDisabled": true,
"dangerouslySkipPermissionsDisabled": true
}
-
bypassPermissionsDisabled: trueで--dangerously-skip-permissionsを封じる -
denyに.envと秘密鍵のパターンを明示することでCVE-2025-59536 相当の攻撃パスを潰す
エンジニア / 非エンジニアの分離
MDMのプロファイルをTier別に分離し、非エンジニアには disableUserConfig: true を追加する。
// 非エンジニア向け追加設定
{
"permissions": {
"allow": ["Read(**)", "Bash(git status)", "Bash(ls*)"],
"deny": ["Bash(*)", "Write(**)", "Edit(**)"]
},
"disableUserConfig": true,
"disableProjectConfig": true
}
Tier昇格フローと例外申請
権限昇格(Tier B → Tier A)の手順はこうなる。
利用開始: デフォルト Tier B
└─ Tier A 希望 → 所属長へ申請
└─ 承認 → 情シスポータルで申請
└─ MDMプロファイル更新(通常1営業日)
└─ Tier A 権限付与完了
なお、やむを得ず Anthropic直接APIを使いたい場合(研究用途・特定PoC等)は例外申請が必要だ。フローは以下の通り。
- 情報セキュリティ部門に利用目的・期間を事前相談
- リスクアセスメントシートを提出(隔離環境の構成・使用するデータの内訳)
- AIガバナンス委員会(委員長:CISO)が期限付きで承認
「なんとなくAnthropicのAPIキー使ってPoC回してた」は規則違反になる。事前に通す。
メルカリの対策は端末・設定層として十分だが、金融機関ではさらに以下の層が必要になる。
┌──────────────────────────────────────────┐
│ ガバナンス層 │
│ AIガバナンス委員会 / 取締役会承認 │
│ 金融庁AIディスカッションペーパー対応 │
├──────────────────────────────────────────┤
│ 監査・コンプライアンス層 │
│ CloudTrail 7年保存 / S3 Object Lock(WORM)│
│ SIEM リアルタイム連携 / FISC評価文書 │
├──────────────────────────────────────────┤
│ インフラ・契約層 │
│ Bedrock 東京リージョン / PrivateLink │
│ IAM 最小権限 / AWS 既存契約に準拠 │
├──────────────────────────────────────────┤
│ 端末・設定層(メルカリの発表がカバー済み) │
│ MDM 配布 managed-settings.json │
│ bypassPermissions 禁止 / curl 禁止 │
│ .env 読み込み禁止 / MCP ホワイトリスト │
│ エンジニア / 非エンジニア設定分離 │
└──────────────────────────────────────────┘
不足①:データ越境問題
Claude Codeのデフォルト接続先はAnthropicの米国サーバーだ。コードに顧客情報・与信ロジック・未公開の市場関連処理が含まれる場合、個人情報保護法の「第三国提供」に該当しうる。
メルカリの発表ではこの点に触れていない(IT企業として必ずしも問題にならないため当然だ)。
不足②:FISC安全対策基準
日本の金融機関はFISC(金融情報システムセンター)安全対策基準への準拠が求められる。外部のSaaSを利用する際、そのサービスのセキュリティ体制を外部委託先管理として評価・文書化する義務がある。
Anthropicを直接の外部委託先として評価するのは、SOC 2 Type II報告書のNDA取得から始まり、実務的なハードルが高い。
不足③:監査証跡の深度と保存年数
金融機関では「誰が・いつ・何をClaudeに入力し・何が出力されたか」を当局検査で証明できる必要がある。ログの保存期間は最低7年が目安で、改ざん防止措置(WORMストレージ等)も求められる。
不足④:AIガバナンスの経営レベル化
金融庁の「AIディスカッションペーパー(2025年3月)」は、透明性・説明可能性・ガバナンス体制の整備を求めている。情報システム部門レベルのルールとして運用するだけでは、当局対応として不十分になりうる。
解決策:Amazon Bedrock 東京リージョン経由
上記の不足①〜③をまとめて解決する構成が Amazon Bedrock(ap-northeast-1)経由の接続 だ。
みずほフィナンシャルグループは AWS Summit Japan 2025 でこの構成の採用理由を公表している。
「Amazon BedrockはPrivate Linkによる閉域接続や既存のAWS環境とセキュアに連携できる。我々が求める極めて高いセキュリティ水準をクリアできる」
Bedrock採用で何が解決するか
| 課題 | 解決内容 |
|---|---|
| データ越境 | ap-northeast-1 内で処理が完結。米国への送信なし |
| FISC対応 | 外部委託先の評価対象がAWS(FISC対応済み)になる |
| 監査ログ | CloudTrailが自動記録。S3 Object Lockで改ざん防止・7年保存が容易 |
| 契約 | AWS Japanとの既存契約に乗る。Anthropicとの直接交渉が不要 |
| 暗号化 | 保存時AES-256・転送時TLS 1.3がデフォルト。KMS連携可 |
| ネットワーク | PrivateLinkでパブリックインターネットを経由しない構成にできる |
MDMで配布するBedrock向け設定
Managed設定の env セクションでエンドポイントを上書きする。これにより Anthropic直接APIへの接続がManaged設定レベルで禁止 される。
{
"permissions": {
"allow": ["Bash(git:*)", "Bash(npm:*)", "Bash(ls:*)", "Read(**)"],
"deny": [
"Bash(rm -rf*)", "Bash(curl*)", "Bash(wget*)", "Bash(sudo*)",
"Bash(bash -c*)",
"Read(**/.env)", "Read(**/.env.*)",
"Read(**/id_rsa*)", "Read(**/id_ed25519*)",
"Read(**/*.pem)", "Read(**/*.key)"
]
},
"defaultMode": "ask",
"bypassPermissionsDisabled": true,
"dangerouslySkipPermissionsDisabled": true,
"env": {
"ANTHROPIC_BASE_URL": "https://bedrock-runtime.ap-northeast-1.amazonaws.com",
"AWS_REGION": "ap-northeast-1",
"CLAUDE_CODE_USE_BEDROCK": "1"
}
}
IAM権限設定
開発端末のAWS認証はInstance ProfileまたはAssumeRole経由の一時認証を使う。権限は最小限にする。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"bedrock:InvokeModel",
"bedrock:InvokeModelWithResponseStream"
],
"Resource": "arn:aws:bedrock:ap-northeast-1::foundation-model/anthropic.claude-*"
}
]
}
bedrock:InvokeModel 以外は付与しない。S3・RDS・SecretsManagerへのアクセス権限をClaudeの実行コンテキストに持ち込まないことが重要だ。
CloudTrailによる監査ログ
Bedrockへの全API呼び出しはCloudTrailで自動記録される。以下の設定でWORMストレージへの保存と7年保持を実現する。
// S3バケットポリシー(Object Lock: Compliance Mode)
{
"ObjectLockEnabled": "Enabled",
"Rule": {
"DefaultRetention": {
"Mode": "COMPLIANCE",
"Years": 7
}
}
}
GOVERNANCE モードでは管理者が削除できてしまうため、金融機関では COMPLIANCE モードを使う。
MCPサーバーのホワイトリスト化
// managed-mcp.json
{
"strictKnownMarketplaces": [
{ "source": "github", "repo": "your-org/approved-mcp-servers" }
],
"enableAllProjectMcpServers": false,
"enabledMcpjsonServers": []
}
enableAllProjectMcpServers: false を明示することで、CVE-2025-59536 の攻撃パス(リポジトリの .mcp.json による自動接続)を封じる。
CLAUDE.md へのセキュリティポリシー注入
AIそのものにポリシーを認識させる層も重要だ。MDMでホームディレクトリに配布する。
# 【必須遵守】セキュリティポリシー
## 絶対に行ってはいけないこと
- .envファイル・SSHキー・APIキー・証明書ファイルの読み取り
- sudoを使用したシステム変更・権限昇格
- curl / wget / nc による外部へのデータ送信
- 破壊的コマンド(rm -rf 等)の実行
- 顧客情報・個人情報・未公開財務情報の処理
- ANTHROPIC_BASE_URL を含む環境変数の変更
## 確認が必要なこと
- ファイル削除・上書きを伴う操作はユーザーに確認を取ること
- 業務システム(勘定系・CRM等)への変更は上長承認後のみ
技術的な制御と合わせて二重の防線にする。
監査・ガバナンス層の整備
SIEMへのリアルタイム連携
CloudTrailログはS3保存だけでなく、SplunkやMicrosoft Sentinel等のSIEMにリアルタイムで転送する必要がある。事後的にしか参照できないログは、金融規制の監査証跡要件を満たさないケースがある。
CloudTrail → CloudWatch Logs → Kinesis Data Firehose → SIEM
AIガバナンス委員会
金融庁AIディスカッションペーパーへの対応として、Claude Codeの利用方針を経営レベルの統制に引き上げる。
| 役割 | 担当 |
|---|---|
| 委員長 | CISO(執行役員) |
| 委員 | CTO・コンプライアンス部長・法務部長 |
| 事務局 | 情報セキュリティ部門 |
年次方針レビューと、重大インシデント発生時の緊急報告ラインを規定する。
CI/CDパイプラインへの組み込み
CI/CDにClaude Codeを組み込む場合、-p フラグ(トラストダイアログスキップ)が使われることが多い。このコンテキストでの脆弱性はCVSSが上がる(一部の研究者はCriticalと評価)。
追加で注意すべき点を挙げる。
- CI/CD用IAMロールは開発端末用と 完全分離 する
-
.claude/settings.jsonのPR変更は 2名以上のApproval必須 にし、情報セキュリティ部門をRequired Reviewerに追加 - 外部コントリビューターのPRをトリガーとするジョブでは Claude Codeを実行しない
- パイプラインログはCloudWatch Logsに最低90日保存
対応優先度のまとめ
今すぐやる
-
ANTHROPIC_BASE_URLをBedrock東京リージョンに固定(MDMでManaged設定として配布) - Bedrock API呼び出しのCloudTrailログをS3 Object Lock(Compliance Mode・7年)で保存
-
IAM権限を
bedrock:InvokeModelのみに絞る
次のフェーズ
- CloudTrailログのSIEMリアルタイム連携
- PrivateLinkでパブリックインターネット経由を遮断
- AIガバナンス委員会の設置・方針の取締役会承認
- FISC安全対策基準の観点でBedrock(AWS)の外部委託先評価文書を作成
中長期
- Compliance APIを使った監査レポートの自動生成
- 外部セキュリティ専門家による年次第三者レビューの制度化
利用開始前セルフチェックリスト
実際に手を動かす前に、以下がすべて揃っているか確認したい。
- MDM(構成プロファイル)が最新化されていて、Bedrock経由になるよう設定されているか
-
claude /statusで Managed設定が有効になっていることを確認したか -
業務リポジトリのルートに
CLAUDE.mdが配置されているか - CI/CD用IAMロールが開発端末用と分離されているか
- 顧客個人情報・非公開財務情報を入力してはいけないことを自分のチームに周知したか
- インシデント発生時のSOC連絡先を把握しているか
おわりに
メルカリの発表は端末・設定層として実用的な内容で、そのまま参考にできる。金融機関として必要な追加は「その上の層を積み上げること」であり、メルカリの対策の代替ではない。
Bedrock東京リージョン経由の採用は「Anthropicと直接契約できない」という金融機関特有の壁を迂回しつつ、FISC・データ国内化・監査ログの問題を一度に解決する現実的な手段だ。みずほFGの実績がその実現可能性を示している。
「金融機関はAIを使えない」ではなく「適切な層を設計すれば使える」が正しい認識だと思っている。
Discussion