本記事はcogley.jpの完全版の要約版です。アーキテクチャ図やBrowser Renderingの詳細などは完全版をご覧ください。
スペンサー・ジョンソンの『チーズはどこへ消えた?』は、周囲の変化にどう適応するかという話でした。クラウドセキュリティコンプライアンスの世界では、チーズ(設定画面)が常に動いています。Microsoftがメニュー名を変えた。Googleがトグルを別の管理パネルに移動した。丁寧に書いた実装ガイドが、もう存在しない画面を指している。
この問題を解決するため、ベンダードキュメントを毎週自動クロールし、自社ガイドとの差分を検出するパイプラインを構築しました。
3段階フィルタのパイプライン
コストと誤検知を最小化するため、3つのゲートで段階的にフィルタリングします。
ゲート1:RSSチェック(無料、ミリ秒)
ベンダーがページを更新したかどうかをRSSの更新日時で確認。変更がなければスキップ。大半の週はここで終了します。
ゲート2:コンテンツハッシュ(低コスト、秒単位)
RSS更新があった場合、ページをクロールしてSHA-256ハッシュを比較。前回と同じならスキップ。RSSの日付だけ変わって内容が同じケースを除外します。
ゲート3:AIドリフト分析(APIコスト、秒単位)
内容が実際に変わった場合のみ、Claudeに送ってセマンティック比較を実行。単純なテキスト差分ではなく、以下のカテゴリを検出します:
- UIパス変更:「設定 > セキュリティ」が「保護 > 認証」に
- 機能廃止:参照している機能が存在しなくなった
- 手順順序の変更:設定ステップの順序が変わった
- 新しい前提条件:以前は不要だった手順が必要に
- 設定の移動:トグルが別の管理パネルへ移動
軽微な文言変更やフォーマットの違いは意図的に無視します。
コンパニオンWorkerアーキテクチャ
メインアプリ(SvelteKit)はWorkflowクラスやscheduledハンドラをサポートしないため、クローラーは別Workerとして動作し、同じD1データベースを共有します。Cloudflare Workflowsにより、途中で失敗しても最後の完了ステップから再開可能です。
検出実績
実際に検出したドリフト:
- Microsoftがユーザー単位のMFAを廃止し、条件付きアクセスポリシーに移行
- Entra管理センターのUIパスの再編成
- レガシー認証ブロックの猶予期間の削除
いずれもクライアント対応中に混乱を招く前に、ベンダー変更から1週間以内に検出できました。
コスト
| コンポーネント | 週間コスト |
|---|---|
| RSSチェック(ゲート1) | 無料 |
| Browser Renderingクロール | 約$0.30 |
| Claude AI分析(ゲート3) | 約$0.15 |
| Worker計算 + D1ストレージ | 無料枠 |
| 合計(約120ソース) | 約$0.50 |
まとめ
ベンダードキュメントのドリフトは、コンプライアンスガイドを維持するチームにとって実運用上のリスクです。段階的にフィルタリングするパイプラインを組めば、コストも誤検知も低く抑えられます。週1回の実行、わずかなコスト、実際のドリフト検出。コンサルタントの工数を削減する仕組みとして、十分に機能しています。
この記事は cogley.jp に掲載されたものです。
Rick Cogley(コグレー・リック)は株式会社イソリアのCEO兼創業者。東京で日英バイリンガルITアウトソーシングとインフラサービスを提供中。