Appearance
月度合規報告
對應主管要求 ① 完整稽核。 Argus 每月自動產出一份合規月報,把全公司資料庫變更活動、攔截、救援、Self-approval 合規等 11 段彙整到一份可下載的 HTML / JSON 報表,給 auditor / 法務 / 主管 / DBA Lead 看。
進入:左側導覽「稽核與監控 → 月度合規報告」(/compliance-reports/monthly)。
跟既有「合規報表」差在哪
工作區下兩個產品名字接近、目的不同:
| 名稱 | 路徑 | 目的 |
|---|---|---|
| 合規報表(Compliance Editor) | /compliance-reports | SOC 2 / ISO 27001 控制項對映 — 每個控制項列出對應的 audit event 是否觸發 |
| 月度合規報告 Monthly | /compliance-reports/monthly | 月度 KPI 彙整 — 把當月平台活動量 / 風險 / 救援的數字濃縮成一份報告 |
兩個 product 互補。月度報告解決「月底要交報表給法務 / 主管」的痛;既有合規報表解決「外部稽核要看控制項」的痛。
報告長什麼樣
每份報告包含 11 個段落:
| 段 | 內容 |
|---|---|
| 1. 總覽 | 本月完成 issue 數、task_run 數、失敗數、lead time mean / median / p95 |
| 2. 風險分布 | LOW / MODERATE / HIGH / UNKNOWN bucket;HIGH 通過審批最快的前 10 筆 |
| 3. Advisor 違規 Top 10 | rule_code + severity + 計數 |
| 4. Self-approval 合規 | 自核被擋次數 + workspace_policy / project_policy 分布 + Top 5 嘗試者 |
| 5. AllUsers Binding 觀察 | zero-trust 略過 AllUsers binding 的次數 |
| 6. AdminExecute 緊急直跑 | DBA 直接執行 SQL 的次數 |
| 7. Schema Drift 摘要 | 偵測 / 已解決 / 已忽略 / 仍未結 四維 |
| 8. Session 摘要 | AdminExecute session 總數 + 出錯場次 |
| 9. 高風險審批時間 | 審批均時 / p95 + 最慢 Top 5 issue |
| 10. Open Findings | 未結 drift + session 中錯 — 給 auditor 追的清單 |
| 11. 月度比較 | 跟上月對比 12 個指標的差(Diff),首月顯示「無對比基準」 |
何時產出
自動:
- 每小時 1 次 tick
- 每個 tick 檢查上月報告是否已產出,沒就同步算 + 寫進 DB
- 部署啟動立即 tick 一次,不用等 1 小時
報告 generated_by 欄會顯示 scheduled。
手動:
/compliance-reports/monthly 上方有「產出本月報告」button。會用當前 user 的 login_id 標 generated_by,立即同步生成。已有同月份報告會擋下並提示是否覆蓋。
下載 / 格式
每份報告有兩種格式:
| 格式 | 用途 |
|---|---|
| HTML | 印 PDF / 寄 mail / 內部 wiki 嵌入。包含 inline CSS,無外部依賴。 |
| JSON | 灌進 BI 工具、做 month-over-month dashboard、build 自己的趨勢圖。 |
HTML 直接是月度報告本身的可閱讀版(含 TOC + 表格 + 簡單 SVG bar);JSON 是 server 內部結構化 payload,schema version 自帶(v3 起)。
對外推送(webhook)
COMPLIANCE_MONTHLY_WEBHOOK workspace setting 設定一個或多個 webhook endpoint,runner 在每份報告 status 跳到 ready 後自動 POST JSON 到每個 enabled endpoint。
用途:把月度報告自動推給 Slack / Teams / IM / email-bridge / SIEM。
Payload:
json
{
"workspace": "argusdev",
"period_start": "2026-05-01T00:00:00Z",
"period_end": "2026-06-01T00:00:00Z",
"generated_at": "2026-06-01T01:00:00Z",
"generated_by": "scheduled",
"status": "ready",
"html_available": true,
"report_url": "https://argus.example.com/compliance-reports/monthly",
"event_type": "compliance.monthly.ready"
}event_type 是穩定字串,receiver 用相等比較做 routing。
設定(admin 用 gRPC SettingService.UpdateSetting 直接打 protojson):
json
{
"endpoints": [
{
"name": "compliance-team-slack",
"url": "https://hooks.slack.com/services/.../...",
"enabled": true
},
{
"name": "soc-team-email-bridge",
"url": "https://email-bridge.internal/compliance-monthly",
"enabled": false
}
]
}行為:
- per-endpoint 10 秒超時
- 一條失敗(500 / timeout / DNS 死)不會擋下一條
- 沒 retry — 報告 status 已是
ready,下次 tick 不會重發。要 at-least-once 自己在 URL 前疊 queue - log 只吐 endpoint label 或 URL host(不吐含 secret 的完整 URL)
- 對外 user-agent:
argus-compliance-monthly/1
後續會有 UI 配置介面(PR-3)。目前先用 setting API。
權限
| 角色 | 看得到 | 觸發 generate | 設定 webhook |
|---|---|---|---|
workspaceAdmin | ✅ | ✅ | ✅ |
securityOfficer | ✅ | ✅ | ❌(要 admin) |
readOnlyAuditor | ✅ | ✅ | ❌ |
| 其他 | ❌ | ❌ | ❌ |
權限 gate 跟 audit log 同條(bb.auditLogs.search)— auditor 已有,沒新增 permission。
何時看 / 怎麼用
- 月底法務 / 主管報表 — auditor 看 dashboard 找到本月報告 → 下載 HTML → 寄出。
- 跨月趨勢 — 第 11 段「月度比較」直接看 12 個指標的 Diff;想做更深的 BI 拉 JSON 灌進工具。
- 災後檢討 — 第 10 段「Open Findings」直接列出仍未結的 drift / session 錯誤。
- 規則調整 — Advisor 違規 Top 10 + Self-approval 嘗試者列表決定下一輪 plan-check 規則 tuning + Self-approval policy review。
隱私 / 敏感資料
| 在報告裡 | 不在報告裡 |
|---|---|
| 規則 ID / issue 名 / target instance + database 名 | SQL 內容 |
| Actor login_id(合規需要) | 具體 row count |
| 比例 / 計數 / 時間 | IdP claim 內容 |
PII anonymise(例:actor 改成 actor#1)留待後續 phase。
相關
- 平臺健康度(Insights) — 即時、互動式 dashboard;合規月報是它的「凍結 + 可寄出」版本
- Audit Log — 個別 audit event 的明細
- 合規報表(Compliance Editor) — SOC 2 / ISO 27001 控制項對映
- Release Monitoring — Prometheus / Grafana 細指標