はじめに
あ、どうも.平素平素.
みなさん、ClaudeCode
は使ってますかね.なんちゃってエンジニアとしてはノリで考えた思い付きをすぐに形にしてくれるので大変助かっています.そのうち、私自身が廃業しそうなのが玉に瑕です.
趣味で使う分には大変便利なのですが、普段の仕事、業務で使うとなると機密情報の取り扱い等やLLMの暴走、利用するMCPサーバの安全性などいくつかの問題があるので、導入に至らないケースも多いかと思います.
これらの問題を解決するアプローチとして、セキュリティ対策の定石通り入口、出口それぞれで対策するのであれば、
- 必要な情報以外にアクセスできず、AIコーディングエージェントが暴走等して破壊しても問題のないサンドボックス環境を用意する
- AIコーディングエージェントを監視し、問題のある振る舞いをしていないことを確認する
という感じになるかと思います.
ClaudeCode
のドキュメントを眺めていると、ClaudeCode
の利用状況をOpenTelemetryで監視できるようだったので、今回は2点目に記載した出口対策について、OpenTelemetry
で出力される内容から適当なものが作れるかを試してみました.
なお、ドキュメントに
OpenTelemetryサポートは現在ベータ版であり、詳細は変更される可能性があります。
との記載があるので、本内容は将来的に動作しなくなる可能性があります.
つくったもの
つくったものはgithub
にあげておいたので、以下のリポジトリ参照です.
構成
構成は最低限な以下の構成です.metricsをprometheus
に入れた方が良くねとか、Elasticsearch
なら可視化はKibana
じゃねとか色々ありますが、ノリでつくったのでこんな感じです.
動作例
とりあえずざっくりとした利用状況とどういったToolが呼び出されているかをダッシュボードに可視化してみました.
所感
ダッシュボードからはClaudeCodeが標準で利用するTool以外にMCPサーバのToolの利用状況なども確認できました.(例ではPlaywright MCP
を入れてみました)
ツールの使用状況から安全性が保証されていて、問題ないとされているMCPサーバ、Toolだけが利用されていることが確認できていれば、運用上ある程度は問題ないのかなと思います.
チーム単位などでログを収集するようにしておけば、どのくらいClaudeCodeが利用されているかの可視化にも使えそうです.
また、同一のログからToolの利用に対してのユーザ許可についても取得可能なので、 yoloで動かしてないよなこいつ? とかも一応監視できそうです.
ただし、MCPサーバがTool名の偽装をしていたりする場合や、Bashの中でとんでもなく危険なコマンドを実行していたみたいなのはこの方法だと気がつくことが難しいので、予め利用するMCPサーバを精査しておいたり、セキュアかつ破壊しても問題ない環境で動作させる等の対策を併用した方が良さそうに思えます.
危険なコマンドの例:
ん?え?は?何してるの? pic.twitter.com/QaDkToek4P
— /mugisus/g (@mugisus) July 1, 2025
なんですけど...
ANTHROPIC_BASE_URL
を指定してゲートウェイをかますことで生ログを取れるようなので、普通にこのログを監視するようにして危険な振る舞いをしてないか監視する方が確実な気がしますね...まぁ、でもそれはそれで監視の設計がめんどくさそう...
Super simple - make a @Cloudflare gateway at https://t.co/doMihOCwCW
— Hrishi (@hrishioa) June 29, 2025
Get the account id and gateway id
ANTHROPIC_BASE_URL=https://t.co/NsyJkwIBZO<account-id>/<gateway-id>/anthropic claude
Look at charts and drink wine https://t.co/tCjQhmmvdF
もっと早く知りたかったけどダッシュボードはダッシュボードで利用状況の可視化と言うことでこれはこれでいいや...🫠
はやく業務でもClaudeCode
気楽に使えるようになるといいなぁ...と思う今日この頃でした.