Audit 审计合规中心
基於 RuoyiPlus 後端最新架構,5 DOs / 5 Controllers,選單 ID 起始 10500,構建企業統一審計合規中心
模組規模
| 指標 | 數值 |
|---|---|
| 資料物件 (DO) | 5 個 |
| 控制器 (Controller) | 5 個 |
| 選單 ID 起始 | 10500 |
| Maven 模組 | yudao-module-audit |
核心資料表
| 表名 | 說明 |
|---|---|
audit_event | 審計事件 |
audit_block | 審計區塊 |
audit_rule | 審計規則 |
audit_statistics | 審計統計 |
audit_auditor | 審計員 |
核心定位
一句話說清楚:Audit 是平臺的「黑匣子」,記錄所有關鍵操作的完整鏈路,並用區塊鏈技術保證資料不可篡改,滿足等保三級和金融級審計要求。
解決什麼問題
| 痛點 | 傳統做法 | RuoYiPlus Audit 方案 |
|---|---|---|
| 操作無跡可尋 | 日誌分散在各服務 | 統一審計事件採集中心 |
| 資料可能被篡改 | 普通資料庫日誌 | 區塊鏈雜湊鏈存證 |
| 審計效率低 | 人工查日誌 | 變更對比 + 風險評分 + 自動報告 |
| 合規不達標 | 日誌不完整 | 覆蓋等保三級全部審計要求 |
適合什麼樣的使用者
- 需要透過等保三級認證的企業
- 金融、醫療等強監管行業
- 需要審計追蹤的內部管理系統
使用者角色
graph TB
subgraph "Audit 使用者角色"
AUDITOR["審計員
審查操作日誌、生成報告"] SECURITY["安全管理員
配置審計規則、風險策略"] ADMIN["系統管理員
管理審計儲存、歸檔策略"] DEV["開發人員
接入審計 SDK"] end AUDITOR -->|審查| LOG["操作日誌"] AUDITOR -->|生成| REPORT["合規報告"] SECURITY -->|配置| RULE["審計規則"] SECURITY -->|監控| ALERT["風險告警"] ADMIN -->|管理| STORAGE["儲存策略"] DEV -->|接入| SDK["審計 SDK"]
審查操作日誌、生成報告"] SECURITY["安全管理員
配置審計規則、風險策略"] ADMIN["系統管理員
管理審計儲存、歸檔策略"] DEV["開發人員
接入審計 SDK"] end AUDITOR -->|審查| LOG["操作日誌"] AUDITOR -->|生成| REPORT["合規報告"] SECURITY -->|配置| RULE["審計規則"] SECURITY -->|監控| ALERT["風險告警"] ADMIN -->|管理| STORAGE["儲存策略"] DEV -->|接入| SDK["審計 SDK"]
核心協作流程
審計事件全鏈路
sequenceDiagram
participant BIZ as 業務系統
participant AUDIT as Audit 中心
participant BC as 區塊鏈服務
participant REPORT as 報告引擎
BIZ->>AUDIT: 上報操作事件
AUDIT->>AUDIT: 事件解析 + 標準化
AUDIT->>AUDIT: 變更對比 (修改前後)
AUDIT->>AUDIT: 風險評分
AUDIT->>BC: 生成區塊雜湊
BC->>BC: 連結前一區塊
AUDIT->>AUDIT: 分層儲存 (熱/冷)
REPORT->>AUDIT: 定時生成合規報告
審計事件型別
graph TB
subgraph "審計事件採集"
A1["登入審計
登入/登出/失敗"] A2["操作審計
增/刪/改/查"] A3["許可權審計
角色/許可權變更"] A4["匯出審計
資料匯出/報表下載"] A5["敏感審計
關鍵資料訪問"] A6["API 審計
呼叫統計"] end subgraph "審計處理" B1["事件解析"] B2["變更對比"] B3["風險評分"] end A1 & A2 & A3 & A4 & A5 & A6 --> B1 B1 --> B2 --> B3
登入/登出/失敗"] A2["操作審計
增/刪/改/查"] A3["許可權審計
角色/許可權變更"] A4["匯出審計
資料匯出/報表下載"] A5["敏感審計
關鍵資料訪問"] A6["API 審計
呼叫統計"] end subgraph "審計處理" B1["事件解析"] B2["變更對比"] B3["風險評分"] end A1 & A2 & A3 & A4 & A5 & A6 --> B1 B1 --> B2 --> B3
區塊鏈雜湊鏈
graph TB
subgraph "Genesis Block"
G1["blockHash = SHA256(data)"]
end
subgraph "Block N"
BN1["blockHash = SHA256(data + prevHash)"]
BN2["previousHash = Block N-1 hash"]
end
subgraph "Block N+1"
BN3["blockHash = SHA256(data + prevHash)"]
BN4["previousHash = Block N hash"]
end
G1 --> BN2
BN1 --> BN4
審計事件內容
{
"eventId": "evt_20240101_001",
"timestamp": "2024-01-01 10:30:00.123",
"userId": "user_10001",
"userName": "張三",
"userIp": "192.168.1.100",
"actionType": "UPDATE",
"resourceType": "customer",
"resourceId": "cust_20001",
"changes": {
"name": {"old": "舊名稱", "new": "新名稱"},
"phone": {"old": "13800001111", "new": "138****2222"}
},
"riskLevel": 2,
"duration": 125
}
審計範圍
| 審計型別 | 審計內容 | 記錄粒度 | 保留期限 |
|---|---|---|---|
| 登入審計 | 登入/登出/失敗 | 每次 | 1年 |
| 操作審計 | 新增/修改/刪除/查詢 | 每次 | 3年 |
| 許可權審計 | 角色變更/許可權調整 | 每次 | 永久 |
| 匯出審計 | 資料匯出/報表下載 | 每次 | 3年 |
| 敏感審計 | 關鍵資料訪問 | 每次 | 永久 |
| API 審計 | API 呼叫統計 | 聚合 | 1年 |
敏感操作告警
audit:
alert-rules:
- event: "資料匯出"
threshold: 10
window: 10m
action: "notify_admin"
- event: "批次刪除"
action: "require_approval"
- event: "許可權變更"
condition: "after_role = admin"
action: "notify_security"
商業價值
| 價值點 | 說明 |
|---|---|
| 合規達標 | 滿足等保三級、金融審計要求 |
| 防篡改 | 區塊鏈雜湊鏈,資料不可抵賴 |
| 可追溯 | 全鏈路審計,操作可回放 |
| 自動報告 | 定時生成合規報告 |
| 風險預警 | 實時風險評分 + 異常告警 |