稽核紀錄
Arova Nexus

本指南說明 Arova Nexus 的稽核紀錄能力。稽核是平台的橫切基礎建設,所有寫入動作都會留下不可竄改的紀錄供合規檢視。本版本範圍涵蓋身分相關事件;其他模組(工單、警報、AI 自動化等)會在後續版本陸續加入。

概覽

Arova Nexus 內建 append-only 稽核紀錄機制 — 所有對系統狀態的寫入動作(建帳號、改密碼、調策略、登入鎖定、緊急解鎖)都會自動產生一筆紀錄,包含時間、操作者、動作、對象、結果與來源 IP。

性質 內容
寫入方式 append-only(只能新增,不能改、不能刪)
完整性保障 DB 層 grant 限制 + 應用層拒絕修改 API
保留期間 至少 5 年
與動作的關聯 同 transaction(動作成功 = 稽核也寫入;稽核寫失敗 = 整個動作 rollback)
查詢介面 本版本未提供 UI;未來由獨立模組提供合規長 / 資安長使用

1. 本版本涵蓋的事件

事件 觸發來源 紀錄欄位
bootstrap_admin 首次安裝完成 actor=system_init、target=新建 Admin username、result=success
password_changed 使用者改密成功 actor=使用者、reason=user/forced
password_policy_update 管理員調策略 actor=管理員、before/after diff
account_locked 連續 5 次登入失敗 actor=系統、target=被鎖帳號、failure_count=5
login_blocked_locked 鎖定期間嘗試登入 actor=嘗試者、result=denied
account_auto_unlocked 15 分鐘自動解鎖後成功登入 actor=系統、target=帳號
account_unlocked_admin 管理員緊急解鎖 actor=管理員、target=被解鎖帳號
force_password_change_set 管理員標記強制改密 actor=管理員、target=使用者
password_expired_forced_change 密碼到期觸發改密流程 actor=使用者、reason=expired

2. 紀錄欄位 schema

每筆稽核紀錄包含以下欄位:

欄位 範例 說明
timestamp 2026-05-18T09:23:45.123Z 動作完成時間(UTC ISO 8601 含毫秒)
actor alice / system_init 執行動作的帳號或系統識別
action bootstrap_admin 動作類型(enum,見上表)
target bob 動作對象(若適用)
result success / denied 結果狀態
source_ip 192.168.1.10 請求來源 IP(若適用)
before / after {min_length: 12}{min_length: 16} 變更前後快照(若適用,如策略變更)

3. 不可竄改保障

稽核紀錄不可被任何角色修改或刪除。本平台採雙層防護:

層級 機制
資料庫層 應用程式角色僅有 INSERT 權限,無 UPDATE / DELETE 權限
應用程式層 不提供任何修改或刪除稽核的 API endpoint

⚠️ 注意: DB superuser 角色仍可繞過 grant 限制,因此稽核完整性最終仰賴部署環境的 DB 運維權限控管。本平台於安裝指南會建議客戶將 DB 管理權限與平台維運權限分離。


4. 保留期間


狀態總覽

+--------+    動作觸發    +--------+    DB 層拒絕    +--------+
| 寫入  +--------------> | 已落地  +<-+   修改/刪除    | 嘗試篡改 |
+--------+                +--------+  |               +--------+
   |                         |        |
   | 寫入失敗                  | 5 年內 | (拒絕)
   v                         v        |
+--------+               +--------+   |
| Rollback|              | 可查詢  +---+
| (整動作)|              +--------+
+--------+                  | > 5 年
                            v
                       +--------+
                       | 匯出封存|
                       +--------+

Edge Cases 速查

情境 系統行為
稽核寫入失敗(disk full / DB error) 整個動作 transaction rollback,使用者看到「儲存失敗」訊息
對象使用者後來被刪除 稽核紀錄仍保留原 username 字串(不會因刪除而失去意義)
系統時鐘倒退 紀錄使用 monotonic clock + sequence number 保證嚴格排序
災難復原情境 稽核紀錄隨 DB backup 一起備份;恢復後完整性與時間序維持
嘗試從外部 HTTP API 寫稽核 拒絕 — 稽核寫入介面僅供應用層內部呼叫

相關章節