🔐

メルカリの Claude Code セキュリティ設定を参考に、金融業界向けの方針を考えた

に公開

TL;DR

  • メルカリの発表(Claude Codeセキュリティ設定の組織配布戦略)は「端末・設定層」として十分使える。金融業界はその上にインフラ・監査・ガバナンスの3層を積み上げる
  • Anthropicと直接契約しなくていい。Bedrock経由にすればAWS既存契約に乗れて、FISC・データ越境・監査ログの問題がまとめて解決する
  • みずほFGはすでにこの構成でやってる

https://speakerdeck.com/hi120ki/claude-code-organization-settings

背景

金融業界で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 -rfcurlbash -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 cloneclaude の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等)は例外申請が必要だ。フローは以下の通り。

  1. 情報セキュリティ部門に利用目的・期間を事前相談
  2. リスクアセスメントシートを提出(隔離環境の構成・使用するデータの内訳)
  3. 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