この記事の要点
- 成功・失敗・成否不明・部分成功を分け、成否不明では同じ外部操作を自動再試行しない
- 入力、判断、ツール要求、外部応答、確認操作を共通実行IDと外部要求IDで結ぶ
- 封じ込め・原因除去・復旧検証・事後レビューを記録し、同じ障害条件を回帰テストへ追加する
時刻・実行ID・外部要求IDを固定
同じ対象への新規実行と再試行を停止
外部IDと期待状態から成否を分類
原因を除去し、承認後に段階再開
事後レビューを回帰テストへ追加
応答がないことを失敗と決めつけず、後続処理を止めて外部状態を確認します。
ログの量ではなく、1実行を説明できることを目標にする
監査証跡の目的は、すべての内部文字列を保存することではありません。誰が、どの入力に基づき、どの版のエージェントへ、どの操作を依頼し、何が実行され、外部状態をどう確認したかを追えることです。
ログを増やすほど、資格情報や個人情報を残す危険も増えます。記録対象とマスキング規則を決め、原文が不要な項目は識別子、分類、ハッシュ、件数に置き換えます。証拠の完全性と由来を保ちながら、閲覧権限と保存期間を限定します。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3[nist-ai-600] NIST AI 600-1 Generative AI Profile
共通実行IDで、判断と外部作用を結ぶ
最低限、実行ID、時刻、利用者またはサービス主体、エージェント・モデル・プロンプト・ツールの版、入力元、計画したアクション、承認ID、ツール要求、外部要求ID、応答、確認結果、最終状態を記録します。
外部要求IDは、タイムアウト後の照合に重要です。同じ操作を新しいIDで再送する前に、対象システムで最初の要求が完了していないかを確認します。外部サービスが冪等性キーや照会APIを提供する場合は仕様に従い、提供しない場合は対象状態を人が確認する手順を決めます。
- 共通実行IDと外部要求IDを両方記録する
- モデル、プロンプト、ツール、ポリシーの版を残す
- 承認時の内容と実行時の差分を確認できる
- 資格情報と個人情報を通常ログへ残さない
- ログの閲覧権限、保存期間、改ざん検知方法を決める
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3[nist-ai-600] NIST AI 600-1 Generative AI Profile
成功・失敗・成否不明・部分成功を分ける
タイムアウトは『実行されなかった』という証拠ではありません。外部側では処理が完了し、応答だけが失われている場合があります。失敗として自動再試行すると、二重登録、二重送信、二重請求などの副作用が発生します。
成功確認済み、失敗確認済み、成否不明、部分成功の4状態を定義し、それぞれの初動、自動再試行の可否、再開に必要な証拠を決めます。状態が確定するまで同じ対象への後続処理を隔離します。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3
封じ込めは、エージェント停止だけで終わらせない
異常を検知したら、新規実行、再試行、待機キュー、関連ツールへの接続を止めます。影響が資格情報や外部サービスへ及ぶ場合は、該当する資格情報の失効、対象アカウントの制限、利用部門への連絡も検討します。具体的な操作は自社システムと契約に合わせて事前に手順化します。
停止中に調査担当者が行った照会や変更も記録します。原因調査の操作が証拠を上書きしないよう、読み取り専用の照会、スナップショット、アクセス制限を使い分けます。NIST SP 800-61 Rev.3は、調査中の操作とデータ・メタデータを記録し、完全性と由来を保つことを示しています。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3[nist-ai-600] NIST AI 600-1 Generative AI Profile
原因除去と復旧検証を分ける
復旧は単にサービスを再起動することではありません。影響範囲を確認し、原因となったモデル、プロンプト、ツール設定、権限、データ、外部サービスの状態を特定します。復旧に使う設定やバックアップが侵害・破損していないかを確認し、原因を除去したうえで限定範囲から再開します。
再開承認には、修正内容、再現テスト、未解決事項、監視強化、ロールバックまたは再停止の条件を添えます。NISTの一般的な表現は『停止・無効化手順』『検証済み復旧資産からの復旧』であり、特定製品のkill switchや必ずロールバックできることを一律要件とはしていません。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3[nist-ai-600] NIST AI 600-1 Generative AI Profile
証拠パッケージを意思決定順に並べる
最初に実行概要と最終状態、次にイベント時系列、外部状態の照合、影響範囲、封じ込め、原因、修正、復旧試験、再開判定を並べます。生ログは索引から参照できる添付にし、意思決定者が最初から大量のログを読む必要がない構成にします。
各証拠には作成時刻、作成主体、保存場所、対象実行ID、完全性確認の方法を付けます。外部サービスの画面や通知を保存する場合は、顧客情報や資格情報をマスクし、取得手順を記録します。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3
インシデントを回帰テストへ変換する
事後レビューでは、誰が悪かったかではなく、どの前提、統制、検知、連絡、復旧手順が機能しなかったかを確認します。再発防止策を実装したら、同じタイムアウト、重複要求、権限外操作、版変更を再現するテストを回帰セットへ追加します。
変更台帳には、変更理由、影響するアクション、再実施する試験、結果、承認者、適用日を残します。モデルやツールの版だけでなく、プロンプト、ポリシー、接続権限、外部APIの仕様変更も回帰テストの起点です。
参照した一次資料:[nist-800-61] NIST SP 800-61 Rev.3[nist-ai-600] NIST AI 600-1 Generative AI Profile
CRM問い合わせ登録がタイムアウトしたケース
問い合わせ内容をCRMへ1件登録する操作で、送信後に60秒のタイムアウトが発生したケースです。以下は手順説明用の架空例であり、実在する障害や導入実績ではありません。
前提条件
- 登録要求には共通実行ID RUN-20260902-014 と外部要求ID CRM-REQ-8842 を付ける
- タイムアウト時は同じ顧客・同じ問い合わせへの後続登録と再試行を止める
- 調査担当者は外部要求IDを使ってCRMの状態を読み取り専用で照会する
- 再開は運用責任者が照合結果と修正試験を確認した後に限定する
| 条件 | 行動 | 残す証拠 |
|---|---|---|
| 60秒で応答なし | 状態を成否不明へ変更しキューを停止 | タイムアウト時刻、実行ID、外部要求ID |
| CRM照会で同じ外部要求IDを発見 | 成功確認済みへ変更し再試行しない | CRMレコードID、登録時刻、項目ハッシュ |
| 後続の通知は未実行 | 登録済みレコードを確認後、別承認で通知 | 実行済み・未実行アクション一覧 |
| 原因が応答経路の切断 | 照会処理を追加し障害テストを再実施 | 修正差分、再現テスト、回帰テストID |
CRM側には1件登録済みだったため再試行せず、後続通知だけを別承認で実行する想定です。重要なのは登録が成功していたことではなく、結果が分からない時点で再試行を止め、外部要求IDから事実を確認できたことです。
この架空例の限界
- 外部サービスが要求ID検索や監査ログを提供しない場合は、別の照合手順が必要
- 金銭、法的通知、削除など高影響操作では、追加の法務・業務手順が必要になり得る
- 復旧時間、保存期間、通知対象は組織の規程と契約に合わせて設定する
外部操作の状態判断表
観測できた事実に基づき、自動再試行の可否と初動を分けます。
| 状態 | 観測できた事実 | 自動再試行 | 初動 | 再開に必要な証拠 |
|---|---|---|---|---|
| 成功確認済み | 外部IDと期待状態が一致 | 不要 | 結果を固定 | 完了記録 |
| 失敗確認済み | 外部側に変更なし | 条件付き | 再試行条件を確認 | 冪等性と承認 |
| 成否不明 | 応答なし・外部状態未確認 | 禁止 | 後続処理を停止 | 外部IDによる照合 |
| 部分成功 | 一部操作のみ確認済み | 禁止 | アクション別に隔離 | 実行済み・未実行一覧 |
証拠パッケージに残す8項目
発生から再開までの判断を、観測した事実と承認に結び付けます。
- 実行概要
- 目的、利用者、対象、時刻記入例:CRM問い合わせ1件登録/検証環境
- 識別子
- 実行IDと外部要求ID記入例:RUN-20260902-014/CRM-REQ-8842
- 最終確認状態
- 成功・失敗・成否不明・部分成功記入例:成功確認済み
- イベント時系列
- 判断、要求、応答、照会を時刻順に記入例:10:02要求/10:03 timeout/10:08照会
- 影響範囲
- 実行済み・未実行・不明記入例:CRM登録済み/通知未実行
- 封じ込め
- 停止したキュー・接続・資格情報記入例:同一顧客の後続キュー停止
- 復旧検証
- 原因除去と再現試験記入例:照会処理追加/timeout再試験合格
- 再開判定
- 承認者、条件、未解決事項記入例:運用責任者承認/監視強化7日
個人情報や機密情報を入力する前に、組織の保存・共有ルールを確認してください。テンプレートは一般的な情報提供であり、法務・監査・認証の代替ではありません。