Skip to content

月度合規報告

對應主管要求 ① 完整稽核。 Argus 每月自動產出一份合規月報,把全公司資料庫變更活動、攔截、救援、Self-approval 合規等 11 段彙整到一份可下載的 HTML / JSON 報表,給 auditor / 法務 / 主管 / DBA Lead 看。

進入:左側導覽「稽核與監控 → 月度合規報告」(/compliance-reports/monthly)。

跟既有「合規報表」差在哪

工作區下兩個產品名字接近、目的不同:

名稱路徑目的
合規報表(Compliance Editor)/compliance-reportsSOC 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 10rule_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。

相關

Argus — 公司內部資料庫變更審計平台