「Claude Codeが深夜に何をしていたか、本当に把握できていますか?」AIエージェントが自律的にファイルを読み書きし、シェルコマンドを実行し、外部APIを呼び出す時代に、監査ログの取得は単なる「あれば便利」な機能ではなく、企業統制の根幹をなす必須要件になっています。リモート環境で動作するClaude Codeの操作履歴を確実に記録・取得できないと、コンプライアンス監査で致命的な穴が生まれます。この記事では、2026年3月時点の最新情報をもとに、Claude Codeのリモート監査ログを確実に取得・活用するための方法を徹底解説します。
- Claude CodeのリモートセッションにおけるEnterpriseプラン専用の監査ログ取得方法と、Compliance APIの具体的な活用手順
- ローカル・リモートを問わず全操作を記録するフック仕組みと、暗号化署名による改ざん防止の最新アーキテクチャ
- 2026年3月時点で活用できるサードパーティ製監査ツール(Ceros、cc-audit-log、WeilChain等)の比較と導入ポイント
- Claude Codeの監査ログとは何か?リモート環境での特殊な課題
- Anthropic公式の監査ログ機能Enterpriseプランで何ができるか?
- Hooks機能を使ったリモート環境でのセルフホスト型監査ログ構築
- Bedrock経由のリモート運用での監査ログAWS環境での統合戦略
- Nefia・Cerosなど新世代のAI-to-PCゲートウェイの監査機能
- HTTPフックでチーム全体の監査ログをリアルタイム集約する方法
- 現実でよく起きるあのトラブル、実は監査ログで全部わかる
- Claude Codeだからこそできる監査ログ活用プロンプト集
- 監査ログ運用の「実際のところ」現場で気づいたこと
- 2026年3月時点での監査ログ対応状況プラン別の現実的な選択肢
- ぶっちゃけこうした方がいい!
- Claude Codeのリモート監査ログ取得に関する疑問解決
- まとめ
Claude Codeの監査ログとは何か?リモート環境での特殊な課題

AIのイメージ
Claude Codeは、ターミナルやIDEから自然言語で指示するだけで、ファイルの読み書き、Bashコマンドの実行、外部API呼び出し、MCPサーバーとの連携まで幅広い操作を自律的に行うAIエージェントです。このとき「誰が・いつ・何をしたか」を追跡するのが監査ログ(Audit Log)の役割です。
特にリモート環境での問題が深刻です。AWS EC2上やチームメンバーのPCにSSH経由でClaude Codeを常時稼働させている場合、そのエージェントが実行したすべての操作はローカルマシンのネットワーク層より内側で発生します。つまり、既存のファイアウォールやSIEMツールはClaude Codeの操作を捕捉できないのです。
たとえば、Ceros(Beyond Identity社が提供するAIトラストレイヤー)の調査によると、Claude Codeは開発者のフルパーミッションで動作しながら、既存のセキュリティインフラが捕捉できる前に操作を完了してしまいます。「見えないものは管理できない」という原則から考えると、Claude Codeのリモート監査ログ取得は今すぐ対策すべき最優先課題です。
また、git履歴やIDEの変更履歴は管理者が編集・改ざんできるため、コンプライアンス監査における「改ざん不可能な証跡」としては不十分です。SOC 2のCC8.1、FedRAMPのAU-9、HIPAAの監査管理要件、PCI-DSS v4.0の要件10などは、暗号学的に改ざん検知が可能な監査記録を明示的に要求しています。
Anthropic公式の監査ログ機能Enterpriseプランで何ができるか?
まず押さえておきたいのが、Anthropicが公式に提供する監査ログ機能の全体像です。結論から言うと、監査ログの取得はEnterpriseプラン専用の機能であり、Pro・Max・Teamの各プランでは利用できません。
Enterpriseプランの監査ログ取得手順
Anthropicの公式サポートドキュメントによれば、監査ログの取得は以下の手順で行います。まず、組織のオーナーまたはプライマリオーナーがOrganization設定画面の「Data and Privacy」セクションにアクセスし、「Export logs」ボタンをクリックします。操作を開始すると、過去180日間の組織全体の監査ログが集約されます。処理が完了すると、リクエストしたオーナーのメールアドレスに24時間有効なダウンロードリンクが送付されます。
注意点として、チャットやプロジェクトのタイトルや内容そのものは監査ログに含まれず、エクスポートされるのは固有の識別子のみです。チャットの入出力内容については、プライマリオーナーがデータエクスポート機能から別途取得できます。
Compliance APIによるプログラマティックな監査ログ取得
より高度な監査要件には、Compliance APIが対応します。このAPIはEnterprise専用で、AnthropicのTrust Center経由でNDAへの署名が必要です。Compliance APIで取得できる情報は、アクティビティログ、チャット履歴、ファイルコンテンツで、ユーザーや時間範囲によるフィルタリングも可能です。
2026年3月時点の最新情報として、Compliance APIに監査ログイベントが追加され、すべてのClaude展開を横断したフルビューが提供されるようになりました。これにより、既存のSIEMやDLPツールにClaude Codeの利用ログをリアルタイムで連携する本格的な監視体制が構築できます。
ただし重要な盲点があります。Claude Cowork(デスクトップアプリのGUI操作機能)の活動は、現時点で監査ログ・Compliance API・データエクスポートのいずれにも含まれません。Claude CoworkをEnterpriseで利用している組織は、OpenTelemetry経由での可視化を別途検討する必要があります。
EnterpriseとTeamプランの監査機能比較
| 機能 | Enterpriseプラン | Teamプラン | Pro/Maxプラン |
|---|---|---|---|
| 監査ログのエクスポート | 利用可(過去180日分) | 利用不可 | 利用不可 |
| Compliance API | 利用可(NDA要) | 利用不可 | 利用不可 |
| managed-settings.json | 利用可 | 利用可(一部) | 利用不可 |
| ZDR(ゼロデータリテンション) | 契約に含む | 利用不可 | 利用不可 |
| SSO(SAML/OIDC) | 利用可 | 利用不可 | 利用不可 |
| 管理者コントロール | フル機能 | 一部利用可 | 利用不可 |
Hooks機能を使ったリモート環境でのセルフホスト型監査ログ構築
EnterpriseプランなしでもClaude Codeのリモート操作ログを取得する方法があります。それがClaude CodeのHooks機能を活用したセルフホスト型の監査ログ構築です。
PostToolUseフックによるJSONL形式ログの自動記録
Claude Codeには、ツール実行前後に任意のスクリプトを実行できるフック機構が備わっています。PostToolUseフックを設定することで、Claude Codeが実行したすべてのツール呼び出しを自動的にログファイルに記録できます。
DEV Communityで公開されているBoucleフレームワークの「session-log」フックは、わずか37行のPythonコードで実装されており、以下のような情報を1行のJSON形式で日次ログファイルに記録します。UTCタイムスタンプ、セッション識別子、ツール名(Read/Write/Edit/Bash等)、操作の詳細(ファイルパスやコマンド内容)、カレントディレクトリの5フィールドが記録されます。
このJSONL形式(1行1レコード)の利点は非常に大きく、Claude Codeがセッション途中でクラッシュしてもログが破損しないこと、grepやcatなどあらゆるUnixテキストツールでそのまま処理できること、複数日分のログを結合しても形式が崩れないことが挙げられます。
GitHubで公開されているcc-audit-logツールは、`~/.claude/projects/`ディレクトリ以下のセッショントランスクリプトを解析し、人間が読みやすい監査トレイルを生成します。ツール呼び出し回数、作成・変更・読み取りしたファイル数、実行したBashコマンド数、Gitコミット数などを集計し、リスクフラグ(`.env`、`.pem`、`.key`ファイルへのアクセス等)も自動検出します。このツールは完全ローカルで動作し、外部へのデータ送信は一切ありません。
PreToolUseフックによる改ざん防止監査の実装
さらに高度な要件には、PreToolUseフック(ツール実行前に実行されるフック)を使った暗号化署名付き監査ログが有効です。Weilliptic社が開発したWeilChain Receiptsシステムでは、RustベースのフックバイナリをPreToolUseに設定し、Claude CodeがWrite/Edit操作を行う前に以下の処理を実行します。ツール名とファイルパス、変更内容またはdiff、呼び出しメタデータをAgent Trace仕様に沿って正規化し、コンテンツのハッシュ値を計算してウォレットで署名し、WeilChainにイミュータブルに記録します。
PostToolUseではなくPreToolUseでの監査が重要な理由は、操作後ではなく操作前に意図した変更を記録することで、監査をバイパスできなくなるからです。もし監査フックが失敗した場合、実行自体をブロックするよう設定することで、監査の強制が技術的に保証されます。
Bedrock経由のリモート運用での監査ログAWS環境での統合戦略
AWS EC2上やAmazon Bedrockを経由してClaude Codeをリモート運用している組織には、AWSネイティブの監査機能との統合が重要です。
「Guidance for Claude Code with Amazon Bedrock」ソリューションでは、Cognito/Okta/Azure AD等のIdPを活用したフェデレーション認証を通じて、誰がいつClaude Codeを利用したかを完全に追跡できます。Direct IAM OIDC フェデレーション方式(推奨)では、IdPのIDトークンをSTS AssumeRoleWithWebIdentity APIに直接渡すことで、IAMロールに紐付いた一時認証情報を取得します。この方式ではユーザーの帰属が監査証跡に完全に記録されるため、「誰がClaude Codeを使ったか」の追跡が確実に行えます。
Bedrock経由の場合、AWS CloudTrailと組み合わせることで、どのIAMロールがどのモデルにどれだけの推論リクエストを送ったかをAWS側のログとして記録できます。これにより、Anthropic側の監査ログとAWS側のCloudTrailの2層構造で、より堅牢なコンプライアンス証跡が構築できます。
Nefia・Cerosなど新世代のAI-to-PCゲートウェイの監査機能
2026年に入って、Claude Codeのリモート操作に特化した新たなセキュリティレイヤー製品が登場しています。
コーレ株式会社が発表したNefia(ネフィア)は、AIエージェントと複数のリモートPC群をWireGuard VPNで接続するゲートウェイ製品です。Claude Code等のAIエージェントからMCPサーバー経由で80種類以上のツールを利用できる一方、全操作にHMAC-SHA256署名付きの監査ログが自動的に適用されます。「誰が・いつ・何をしたか」がJSONL形式で完全に記録され、SOC 2、ISO 27001、HIPAAの準拠レポートの自動生成にも対応しています。
一方、Beyond Identity社のCerosは、開発者のマシン上にClaude Codeと並行してインストールするAIトラストレイヤーです。Cerosが注目される理由は、ネットワーク層ではなくマシン上でClaude Codeと同居して動作する点にあります。各ログエントリには、デバイスの完全なセキュリティ状態、Claude Codeを起動したすべてのプロセスの系譜、実行ファイルのバイナリ署名、OSレベルのユーザーID、そしてセッション中にClaude Codeが実行したすべての操作が含まれます。さらに、ハードウェアバインドの暗号鍵でマシンを離れる前に各エントリを署名するため、後から改ざんすることが不可能です。
HTTPフックでチーム全体の監査ログをリアルタイム集約する方法

AIのイメージ
ここまで読んで「よし、PostToolUseフックを設定しよう」と思った方に、もう一段上の構成を紹介します。個人の`~/.claude/settings.json`にフックを書くだけでは、チームの複数メンバーが別々のマシンでClaude Codeを使っている場合、ログがバラバラに各自のローカルに散らばります。これでは「誰がいつ何を変更したか」の横断検索ができません。
この問題を根本から解決するのが、HTTPフック(type: “http”)を使った集中ログ収集アーキテクチャです。Anthropicの公式ドキュメントによると、フックのタイプに`”http”`を指定することで、ツール実行イベントをコマンドではなくHTTPエンドポイントにPOSTできます。チームで共有する監査サービス(たとえばAWS Lambda+DynamoDB、または社内のFluentd受信サーバー)にエンドポイントを立て、各メンバーのClaude Codeが全員そこにログを送る構成にすれば、チーム全員の操作ログが一箇所にリアルタイムで集まります。
設定のイメージは次のとおりです。managed-settings.jsonにHTTPフックを記述すれば、Enterpriseプランでは管理者がチーム全員に一括適用でき、個々の開発者がこの設定を上書きすることは技術的に不可能です。エンドポイント側では受け取ったJSONをそのままElasticsearchやOpenSearchに格納するだけで、KibanaやOpenSearch Dashboardsから「昨日の15時から16時にAPIキーファイルに触ったセッションは?」という検索が数秒で実行できるようになります。
さらに、ConfigChangeフックを組み合わせることも重要です。このフックは、`.claude/settings.json`や`managed-settings.json`などの設定ファイルが変更されたときに発火します。設定ファイルの変更をブロックしたり、変更履歴を監査ログに追記したりすることで、「誰かが勝手にdenyルールを削除した」というインシデントを即座に検知できます。これはセキュリティ監査で特に重要な観点で、ポリシーそのものの改ざんを記録する「メタ監査」とも呼べる仕組みです。
現実でよく起きるあのトラブル、実は監査ログで全部わかる
「Claude Codeを使っていたら、気づいたらファイルが変わっていた。でも何がどう変わったかよくわからない」という体験、おそらく多くの開発者が経験しています。正直に言って、これがClaude Codeで一番困る場面です。gitで差分を見ればわかるじゃないか、と思うかもしれませんが、Claude Codeはgit addもgit commitもしない状態でファイルを変更することがあります。しかもセッションが終わった後だと、セッション中に何が起きたか追うのがものすごく大変です。
「4時間のセッションが消えた」問題の本当の原因と対策
これは2026年3月時点でも頻繁に報告されているトラブルです。Claude Codeのコンパクション(/compact)は、コンテキストウィンドウを節約するために会話履歴を要約・圧縮しますが、このタイミングでセッション情報が失われることがあります。DEV Communityに投稿されたある開発者の体験談によると、4時間分の作業セッションがコンパクション処理によって無音で消失したとのことです。
実用的な対策として、PreCompactフックを設定し、コンパクション実行前に自動でトランスクリプトをバックアップする仕組みが有効です。`~/.claude/backups/`以下にタイムスタンプ付きのJSONLファイルとして保存しておけば、万が一セッションが失われても復元できます。tmuxを使ったリモート常時稼働環境では、このバックアップフックは特に重要です。MacがスリープしてもセッションはEC2上で生き続けますが、コンパクション問題はサーバー側でも起きるからです。
リモートセッションがDesktopやモバイルから見えなくなる問題
2026年2月後半から3月初頭にかけて、`claude –remote`で作成したクラウドセッションがClaude DesktopやiOSアプリに表示されなくなるというバグが複数報告されています。GitHubのIssueには「12本のパラレルセッションを起動したが全部がアカウントから孤立した状態になった」という報告も上がっています。
この問題の現実的な回避策は2つあります。ひとつはtmux経由のSSH接続を主要な操作手段とし、リモートコントロール機能への依存を最小化すること。もうひとつは、セッション開始時にSessionStartフックで自動的に現在のセッションIDとURLをSlackやDiscordに通知する仕組みを作ることです。セッションが孤立しても「さっきのセッションURL」がSlackに残っているので、ブラウザから直接開けます。
SSH認証トークンが頻繁に切れる問題
リモート環境でClaude Codeを長時間使っていると、`/login`を求めるプロンプトが突然現れることがあります。Anthropicの公式トラブルシューティングドキュメントによると、OAuthトークンの有効期限切れが原因であり、システムクロックのずれがトークン検証を失敗させることもあります。EC2上で`timedatectl status`を実行してNTPが有効になっているか確認し、もし時刻がずれていれば`chronyc makestep`で即時同期するのが最初の対処です。また、`ANTHROPIC_API_KEY`環境変数が`.bashrc`や`.zshrc`に古い値で残っていると、サブスクリプション認証より優先されてしまい、想定外の403エラーを引き起こすことがあります。
Claude Codeだからこそできる監査ログ活用プロンプト集
ここでは、監査ログの取得・分析・運用に直接役立つ、Claude Code特有のプロンプトを紹介します。これらはターミナルでそのまま使えるものばかりです。
セッショントランスクリプトから操作サマリーを自動生成するプロンプト
Claude Codeには`~/.claude/projects/`以下にセッションのJSONLトランスクリプトが蓄積されます。このファイルをClaude Code自身に読ませて分析させるのが最も効率的です。以下のプロンプトをそのまま使えます。
「~/.claude/projects/ 以下の最新のJSONLトランスクリプトファイルを読んで、このセッションで実行されたすべてのファイル変更(作成・編集・削除)、Bashコマンド、MCPツール呼び出しを時系列で整理してください。特に~/.ssh/、~/.aws/、.envファイルへのアクセスがあれば冒頭にリスクフラグとして明記してください。」
このプロンプトを使うと、数百件のツール呼び出しが含まれるJSONLファイルでも、数十秒で人間が読めるサマリーに変換されます。毎朝これをcronで実行して結果をSlackに投稿する運用にしているチームもあります。
managed-settings.jsonの設定内容を監査するプロンプト
「現在の~/.claude/settings.jsonとプロジェクトの.claude/settings.jsonを読んで、セキュリティ観点から問題がある設定を指摘してください。特に以下を確認してください。①denyルールが設定されているか、②~/.ssh/や~/.aws/へのアクセスがブロックされているか、③MCPサーバーの許可リストが適切に絞られているか、④信頼されていない外部URLへのネットワークアクセスが制限されているか。問題があれば修正案のJSONも出力してください。」
これを月次で実行するだけで、設定ファイルのドリフト(誰かが一時的に緩めた設定が戻っていない状態)を定期的に検出できます。
監査ログのJSONLファイルから異常操作を検出するプロンプト
「~/.claude/session-logs/ 以下の今週分のJSONLログファイルを全て読んで、以下の異常パターンを検出してください。①1セッション内でのBashコマンド実行が50回を超えているもの、②.envや.pem、秘密鍵ファイルへのReadアクセス、③プロジェクトディレクトリ外へのWrite/Editアクセス、④深夜0時から6時の間に実行されたセッション。検出結果はセッションIDと実行時刻とともに一覧表示してください。」
このプロンプトは特に、CI/CDや夜間バッチで自律動作させているClaude Codeの操作確認に使えます。「昨夜のバッチで何が起きたか」を朝一番に確認する用途に最適です。
HTTPフック用の監査サーバーのコードを自動生成させるプロンプト
「Claude CodeのPostToolUseフックからHTTPで送られてくるJSONを受け取り、以下の処理を行うNode.js(Express)の監査ログサーバーのコードを書いてください。①受け取ったJSONをそのままDynamoDBに保存、②tool_nameがBashで、かつcommandに”rm -rf”または”.env”が含まれる場合はSlackのWebhookに即時アラート送信、③1日1回午前9時に前日の操作サマリーをSlackに自動投稿、④データは90日間保持してそれ以降は自動削除。Dockerで動かせるようDockerfileも含めてください。」
これを実行するだけで、そのままチームで使えるレベルの監査サーバーのボイラープレートが数分で出来上がります。Claude Codeだからこそ、「コードを書いてもらう」と「監査ログを取る」が同じツールで完結するわけです。
監査ログ運用の「実際のところ」現場で気づいたこと
理論はわかった、でも実際に運用してみてどうなの?という視点で、現実的な話をします。
まず正直に言うと、監査ログの「取得」と「活用」は別物です。多くのチームが最初の段階、つまりJSONLを吐き出すPostToolUseフックを設定するところまでは比較的簡単に到達します。しかし「取得したログをどう活用するか」のワークフローを設計しないまま運用を始めると、ものすごい量のログが溜まっていくのに誰も見ないという状況が数週間で発生します。
現実的に機能しているチームのパターンは決まっていて、ログを定期的に「概要形式」に変換してSlackやNotionに流す仕組みを作り、「誰かが毎日ちゃんと見る」状態を作っていることです。生のJSONLを「人間が毎日チェックする」運用は続きません。自動でサマリーを生成し、異常があれば通知する仕組みがなければ、監査ログは単なるストレージを食いつぶすファイルになります。
また、リモート環境特有の落とし穴として、EC2上でtmuxセッションが生き続けている間にセッショントランスクリプトが肥大化し、数GB単位になることがあります。1セッション7MBというのはcc-audit-logのサンプルにも登場していますが、数週間放置すると数十GB規模になることがあります。定期的なローテーションかS3へのアーカイブ転送をcronで設定しておくことを強くおすすめします。
さらに見落とされがちなのが、OAuthトークンの有効期限とログの連続性の問題です。トークンが切れてセッションが中断すると、その間の操作がログに残りません。特にcronで自律実行しているClaude Codeがトークン切れで静かに止まっていた、という状況はかなり頻繁に起きます。セッション開始と終了をSlackに通知するSessionStart/Stopフックを設定しておくと、「実は昨夜のバッチが全く動いていなかった」という見落としを防げます。
2026年3月時点での監査ログ対応状況プラン別の現実的な選択肢
ここまでの内容を整理した上で、「自分の組織にはどれが合うか」を判断するための材料をまとめます。
| 状況・組織タイプ | 推奨アプローチ | コスト感 |
|---|---|---|
| 個人開発者・小規模チーム(Pro/Max) | cc-audit-log+PostToolUseフックのJSONL記録。Claude Codeに毎朝サマリーを作らせる | 無料 |
| 中規模チーム(Team) | HTTPフック+集中ログサーバー(AWS Lambda+DynamoDB等)。Slackへの異常通知自動化 | 月数千円程度のAWS料金 |
| 金融・医療等の規制業種(Enterprise) | Compliance API+SIEM連携。CerosによるSOC2/HIPAA対応の暗号署名付き監査証跡 | Enterprise契約費+Ceros利用料 |
| AWS Bedrock経由で運用(全プラン) | CloudTrail+Guidance for Claude Code with Bedrock。IAM帰属追跡でユーザー特定 | AWS利用料に準拠 |
| 改ざん防止が絶対要件(Enterprise) | PreToolUseフック+WeilChain Receipts。ハードウェアバインド暗号署名で証跡保全 | カスタム価格 |
ぶっちゃけこうした方がいい!
ここまで丁寧に解説してきましたが、個人的な本音を言います。
監査ログの話をすると、多くの方が「Enterpriseプランに入らなきゃ無理だ」か「難しそうだから後回し」という2択に陥りがちなんですよね。でも、実際にいくつかの現場を見てきて思うのは、一番コスパが高くて実態に合った方法は「PostToolUseフックでJSONLを吐き、Claude Code自身に毎日サマリーを作らせる」だけです。これだけで、現場で困る問題の8割は解決します。
「誰かが何かをした後にファイルが壊れた」「深夜バッチが本当に動いたか確認したい」「.envファイルに触ってないか確認したい」という実際の現場の悩みに対して、HMAC署名やWeilChainが必要な場面は金融庁に監査を受ける金融機関くらいで、ほとんどの開発現場ではそこまで必要ありません。
そして「ログを取ること」より「ログを見る習慣を作ること」の方がはるかに難しく、はるかに大事です。どんなに高度なCerosやCompliance APIを導入しても、誰も見なければゼロと同じです。Claude Code自身に「昨日のセッションで何があったか教えて」と毎朝聞くだけのシンプルな習慣の方が、高価なSIEM連携より実効性が高いというのが正直な感想です。
ただ一点だけ、絶対にやっておいた方がいいことがあります。それはPreCompactフックによるセッションバックアップです。これはコンパクション前にトランスクリプトを別ディレクトリに退避するだけの一行のフックです。4時間の作業が消えた経験をした人は全員「なぜこれをやっておかなかったのか」と後悔するので、監査ログを整備する前に、まずここだけはやっておいてください。コストはゼロ、設定は5分で終わります。
監査ログ全体の戦略としては「まずローカルのJSONLで始めて、チームが10人を超えたらHTTPフックで集約し、コンプライアンス要件が出たらそこでEnterpriseかCerosを検討する」という段階的アプローチが一番現実的でストレスがありません。最初から100点の体制を構築しようとすると、設定が複雑になりすぎて誰もメンテしなくなります。シンプルに始めて、必要に応じて重厚にしていく。これが、Claude Codeの監査ログ運用で個人的に一番うまくいくと感じているやり方です。
Claude Codeのリモート監査ログ取得に関する疑問解決
EnterpriseプランなしでClaude Codeの操作ログを取る方法はありますか?
はい、あります。Anthropic公式の監査ログ機能はEnterpriseプラン専用ですが、Claude CodeのHooks機能を使えば、Pro/Max/Teamプランでも操作ログを自前で構築できます。PostToolUseフックにPythonスクリプトを設定することで、すべてのツール呼び出しをJSONL形式で記録できます。GitHubで公開されているcc-audit-logやBoucleフレームワークのsession-logは、無料かつ外部送信なしで利用できるおすすめのツールです。ただし、暗号化署名や改ざん検知が必要なコンプライアンス用途には、WeilChain ReceiptsやCerosなどのサードパーティ製ソリューションが別途必要になります。
リモートのEC2上で動くClaude Codeの操作ログはどこに保存されますか?
Claude Codeはデフォルトで、セッションのトランスクリプトを`~/.claude/projects/`以下のJSONLファイルとして記録しています。このファイルにはすべてのツール呼び出しの詳細が含まれており、cc-audit-logツールで解析・集計できます。ただし、このトランスクリプトはローカルファイルであるため、管理者が閲覧・削除・改ざんできることに注意が必要です。チーム環境での改ざん防止には、PreToolUseフックによる暗号化署名ログか、Cerosのようなハードウェアバインド署名ソリューションが必要です。AWS環境であれば、S3へのリアルタイムログ転送とCloudTrailの組み合わせも有効です。
Compliance APIとAnthropicの監査ログの違いは何ですか?
監査ログは組織設定画面からCSV/JSONでエクスポートする一括取得方式です。過去180日分が対象で、ユーザーの操作イベント(ログイン、設定変更等)が記録されます。一方、Compliance APIはプログラマティックなリアルタイムアクセスが可能で、アクティビティログ、チャット履歴、ファイルコンテンツをユーザーや時間範囲でフィルタリングしながら継続的に取得できます。2026年3月時点でCompliance APIに監査ログイベントが統合され、全Claude展開を横断した一元的な監視が可能になりました。ただし、Compliance APIの利用にはEnterpriseプランへの加入とAnthropicのTrust CenterでのNDA署名が必要です。
Claude CodeをBedrock経由で使っている場合、監査ログはどうなりますか?
Amazon Bedrock経由でClaude Codeを利用している場合、Anthropicの監査ログ機能は直接利用できません。代わりに、AWS CloudTrailによるAPI呼び出し記録と、「Guidance for Claude Code with Amazon Bedrock」ソリューションの認証フローによるユーザー帰属追跡を組み合わせることになります。Direct IAM OIDCフェデレーション方式では、誰がどのIAMロールでアクセスしたかが完全に記録されます。さらにClaude Code側のHooksフックを組み合わせることで、AWS側のログとローカル操作ログの二層構造による監査体制が構築できます。
まとめ
Claude Codeのリモート監査ログ取得は、AIエージェントが組織のコアなインフラに触れるようになった2026年において、もはや後回しにできない必須課題です。Anthropic公式の監査ログ機能とCompliance APIはEnterpriseプラン専用ですが、Hooksフック機能を活用したセルフホスト型ログ収集、cc-audit-logなどのOSSツール、そしてCerosやNefiaのような新世代AIトラストレイヤーを活用することで、あらゆるプランとインフラ構成に対応した監査体制を構築できます。
重要なポイントを整理すると、EnterpriseプランではCompliance APIとmanaged-settings.jsonの組み合わせが最強の統制手段となります。Team/Pro/Max環境ではPostToolUseフックによるJSONL形式の自動記録が現実的な第一歩です。AWS Bedrock環境ではCloudTrail+Direct IAM OIDCフェデレーションによる二層構造の監査が有効です。SOC 2やHIPAAなどの厳格なコンプライアンスが必要な場合は、ハードウェアバインド暗号署名を提供するCerosまたはWeilChain Receiptsが要件を満たす唯一の選択肢となります。
「見えないものは管理できない」、そして「管理できないものはコンプライアンスを満たせない」。Claude Codeが組織の開発インフラの中核を担うこれからの時代に、監査ログの整備は開発生産性と組織の信頼性を両立させるための最重要基盤です。今日から使えるHooksフックの設定から始めて、組織の成熟度に合わせて段階的に監査体制を強化していきましょう。


コメント