Cursor Teams で監査ログを実現する方法 - Hooks を軸にした代替アーキテクチャ
機密情報を AI に投入する際、「誰が、いつ、何を投入したか」を追跡できる監査ログは不可欠です。しかし、Cursor の Teams プランでは監査ログが提供されていません。Cursor の公式ドキュメントには、監査ログは Enterprise サブスクリプションが必要と明記されています。
さらに重要な点として、Enterprise プランの監査ログも管理イベント(ログイン、設定変更等)の記録に限定されており、AI に送信されたプロンプトや生成されたコードの内容は記録されません。つまり、「機密情報を AI に投入した記録を残したい」という要件に対しては、Enterprise プランの監査ログ単体でも不十分です。
本記事では、Teams プランのまま監査証跡を確保する方法をまとめます。
Enterprise プランの監査ログで記録される情報
代替手段を検討する前に、Enterprise プランの監査ログが何を記録するかを整理します。
Enterprise プランの監査ログは、19 種類の管理イベントを改ざん耐性のある形で記録する機能です。Web ダッシュボードで閲覧でき、CSV エクスポートも可能です。SIEM / Webhook / S3 へのストリーミングにも対応していますが、利用にはメールでの問い合わせが必要です。
記録されるイベントは以下のカテゴリに分類されます。
| カテゴリ | イベント例 |
|---|---|
| 認証 | ログイン、ログアウト |
| ユーザー管理 | メンバー追加・削除、ロール変更 |
| API キー管理 | キーの作成・削除 |
| 設定変更 | Privacy Mode の変更、チームルール更新 |
| リポジトリ管理 | ブロックリストの変更 |
Enterprise プランの監査ログは「誰がいつどの管理操作をしたか」を記録するイベントログであり、AI に送信されたプロンプトや生成されたコードの内容は含まれません。Cursor の公式ドキュメントにも「エージェントの応答や生成コード内容はログしない」と明記されており、代替として Hooks によるログ取得が推奨されています。
Teams プランと Enterprise プランの機能差分
Cursor の料金ページを基に、監査ログ周辺の機能差分を整理します。
| 機能 | Teams | Enterprise |
|---|---|---|
| 監査ログ(19 種の管理イベント) | ❌ | ✅(ダッシュボード閲覧、CSV エクスポート) |
| SIEM / Webhook / S3 ストリーミング | ❌ | ✅(要問い合わせ) |
| SSO(SAML / OIDC) | ✅ | ✅ |
| SCIM プロビジョニング | ❌ | ✅ |
| Privacy Mode の組織強制 | ✅ | ✅ |
| 利用分析ダッシュボード | ✅ | ✅ |
| AI Code Tracking API | ❌ | ✅ |
| Hooks(ローカル設定) | ✅ | ✅ |
| Hooks(クラウド配布) | ❌ | ✅ |
| リポジトリブロックリスト | ✅ | ✅ |
Teams プランでも SSO、Privacy Mode、利用分析ダッシュボード、Hooks(ローカル設定)は利用できます。
Cursor Hooks が監査ログの中核になる
Cursor Hooks は、エージェント実行ループの各段階でカスタムスクリプトを起動できる仕組みです。Teams プランでもローカル設定ファイル(.cursor/hooks.json)経由で利用可能で、プロンプト内容やツール実行をリアルタイムに外部システムへ記録できます。
利用可能なフック
| フック名 | タイミング | 取得可能データ |
|---|---|---|
beforeSubmitPrompt | プロンプト送信前 | 会話 ID、プロンプト本文、添付ファイル |
beforeShellExecution | シェルコマンド実行前 | コマンド内容、作業ディレクトリ |
beforeMCPExecution | MCP ツール呼び出し前 | サーバー名、ツール名、入力パラメータ |
beforeReadFile | ファイル内容の LLM 送信前 | ファイルパス、内容 |
afterFileEdit | ファイル編集後 | 変更前後のファイル全文 |
stop | エージェントタスク完了時 | セッション終了情報 |
beforeSubmitPrompt は現時点では観察専用(プロンプトのブロックや修正は不可)ですが、ログ記録という目的には十分対応できます。
設定の 3 階層
Hooks の設定は 3 つの階層で配置できます。
| 階層 | パス | 用途 |
|---|---|---|
| プロジェクト | .cursor/hooks.json | リポジトリ固有の設定 |
| ユーザーグローバル | ~/.cursor/hooks.json | ユーザー全体の設定 |
| OS レベル | /etc/cursor/hooks.json | MDM での全社配布 |
Teams プランではクラウド経由での一括配布はできませんが、MDM(macOS)やグループポリシー(Windows)で /etc/cursor/hooks.json を配布すれば、全社員に統一した Hooks 設定を適用できます。
監査ログ送信スクリプトの例
Cursor の公式ドキュメントでは、Hooks で受け取った JSON をファイルに追記する audit.sh の例が提示されています。以下は、中央のログ収集 API に送信するスクリプトの例です。
// .cursor/hooks/audit-logger.ts
import { readFile } from "node:fs/promises";
async function main() {
const input = JSON.parse(await readFile(0, "utf-8"));
const logEntry = {
timestamp: new Date().toISOString(),
user: process.env.USER,
event: input.event,
payload: input,
};
try {
await fetch("https://audit-api.example.com/v1/logs", {
method: "POST",
body: JSON.stringify(logEntry),
headers: { "Content-Type": "application/json" },
});
} catch (e) {
console.error("Audit log transmission failed", e);
}
process.stdout.write(JSON.stringify({ continue: true }));
}
main();Hooks エコシステムパートナー
Cursor が公式に連携を発表しているパートナーも活用できます。
- Oasis Security: アクセスガバナンス
- MintMCP: MCP ガバナンス(SOC 2 Type II 認証済み)
- Semgrep: AI 生成コードの脆弱性スキャン
- 1Password: JIT シークレットアクセス
API ゲートウェイによるログ取得(Ask / Plan モード限定)
Cursor の設定画面(Settings > Models > Override OpenAI Base URL)でカスタム API エンドポイントを指定し、プロキシ経由でリクエスト/レスポンスを記録する方法もあります。
主要なツールを比較します。
| ツール | 特徴 |
|---|---|
| LiteLLM Proxy | OSS。Virtual Key でユーザー識別。Langfuse、Datadog、S3 等へログ転送。プロンプト・レスポンス全文を記録可能 |
| Portkey | 仮想キー管理。リクエストごとにメタデータ付与可能。SOC 2・HIPAA・ISO 27001 対応 |
| Cloudflare AI Gateway | 数クリックでロギング有効化。S3 / Logpush 経由で SIEM 転送可能 |
ただし、この方法には致命的な制約があります。
| モード | プロキシ経由ログ | Hooks 経由ログ |
|---|---|---|
| Ask(Cmd+L) | ✅ | ✅ |
| Plan | ✅ | ✅ |
| Agent | ❌ | ✅(アクション単位) |
| Tab 補完 | ❌ | ❌ |
Override OpenAI Base URL が機能するのは Ask モードと Plan モードのみです。Cursor の最も強力な Agent モードのリクエストはプロキシを経由しません。このため、API ゲートウェイは Hooks の補完として位置づけ、Hooks を主軸に据えるべきです。
ネットワークレベルのアプローチは実用性に乏しい
mitmproxy による TLS インターセプトは、Cursor が Electron ベースで HTTP/2 と gRPC(Protocol Buffers)を使用しているため、TLS ハンドシェイクの失敗が頻繁に報告されています。企業プロキシ(Zscaler、Netskope 等)による TLS インスペクションも、HTTP/2 実装上の問題に直面する可能性があります。ネットワークレベルのアプローチは補助的な位置づけに留まります。
全体のアーキテクチャ
flowchart LR DEV[開発者の Cursor] -->|Hooks| LOG[ログ収集 API] DEV -->|SSO| IDP[IdP 監査ログ] DEV -->|Ask/Plan モード| GW[API ゲートウェイ] GW --> AI[AI プロバイダー] ADMIN[管理者] -->|Admin API| USAGE[利用状況ログ] LOG --> SIEM[SIEM / ログ基盤] IDP --> SIEM GW --> SIEM USAGE --> SIEM
Teams プランでネイティブに取得できる情報
SSO(SAML / OIDC)ログ
Teams プランでも SSO は利用可能です。IdP 側でサインイン/サインアウトのログを取得し、「誰がいつ Cursor にログインしたか」の監査証跡を確保できます。
利用分析ダッシュボードと Admin API
Teams プランの管理ダッシュボードでは、モデル別・ユーザー別の利用量を確認できます。Admin API からも利用統計にアクセス可能で、定期的にポーリングして SIEM に投入すれば、異常な利用パターンの検知に活用できます。
ただし、取得できるのは利用量(モデル、トークン数、コスト等)であり、プロンプト内容の監査にはなりません。
競合ツールとの監査ログ比較
Cursor の位置づけを他のツールと比較します。
| ツール | 監査ログ利用可能プラン | AI 操作内容のログ | コンプライアンス認証 |
|---|---|---|---|
| Cursor | Enterprise(カスタム価格) | ❌(管理イベントのみ。Hooks で対応) | SOC 2 Type II |
| GitHub Copilot | Business($19/月)〜 | ❌(管理イベントのみ) | SOC 2 |
| Windsurf | Enterprise | ✅(提案受入・チャット記録) | SOC 2 Type II、FedRAMP High、HIPAA |
| Amazon Q Developer | Pro($19/月)〜 | ⚠️(オプション有効化で可能) | SOC 1/2/3、HIPAA、FedRAMP、ISO 27001 |
多くの製品の監査ログは管理イベント中心で、プロンプト/レスポンス本文は原則ログ対象外です。AI 操作内容のネイティブなログが必要な場合は、Windsurf Enterprise や Amazon Q Developer Pro が選択肢になります。
段階的な導入ロードマップ
| フェーズ | 施策 | 期間目安 |
|---|---|---|
| 短期 | Hooks で beforeSubmitPrompt / beforeShellExecution / beforeMCPExecution をログ送信。SSO を有効化し IdP 側でログ取得 | 〜4 週間 |
| 中期 | MDM / EDR で Hooks 設定を全社配布。改ざん検知とログ未送信アラートの実装。Admin API の利用統計を SIEM に投入 | 1〜3 か月 |
| 長期 | Enterprise 移行の ROI 試算。要件次第で Enterprise 化、または Windsurf / Amazon Q Developer 等への移行を検討 | 3〜6 か月 |
情シス向けの説明方針
Enterprise 監査ログの代わりに、以下の補完的統制(compensating controls)を組み合わせることで、同等以上のカバレッジを実現できます。
- Cursor Hooks で全操作のログを取得 - Agent モードを含む全フェーズのプロンプト・コマンド・ツール呼び出しを記録(Enterprise 監査ログでは取得できない粒度)
- SSO ログで認証の監査証跡を確保 - Teams プランでも利用可能
- API ゲートウェイで Ask / Plan モードの通信を記録 - プロンプト・レスポンス全文のログ
- AI 利用ポリシー(Acceptable Use Policy)の策定 - データ分類ティアと利用ルールの明文化
Enterprise 監査ログが記録するのは管理イベントのみで、プロンプト内容は含まれません。むしろ Hooks ベースの監査パイプラインのほうが、「機密情報を AI に投入した事実」の追跡においてはカバレッジが広くなります。
まとめ
Cursor Teams プランで監査ログ相当の体制を構築するには、Hooks を軸にしたカスタム構築が現時点での最善策です。
Enterprise プランの監査ログは管理イベント(19 種)に限定されており、プロンプトや生成コードの内容は記録されません。つまり「機密情報の AI 投入を追跡する」という要件に対しては、Enterprise プランでも結局 Hooks が必要になります。この点を踏まえると、Teams プランで Hooks ベースの監査パイプラインを構築することは、Enterprise 移行前の準備としても合理的です。
- Hooks(
beforeSubmitPrompt、beforeShellExecution、beforeMCPExecution等)で Agent モードを含む全操作をログ記録 - API ゲートウェイ(LiteLLM、Portkey、Cloudflare AI Gateway)で Ask / Plan モードの通信を補完的に記録
- SSO ログ + Admin APIで認証と利用状況の監査証跡を確保
Hooks は端末側で改変・無効化され得るため、MDM / EDR での配布と改ざん検知まで含めた設計が重要です。監査要件の厳格さによっては、Enterprise プランへのアップグレード、または監査ログの成熟度が高い Windsurf Enterprise や Amazon Q Developer Pro への移行も検討してください。