Compliance Manager — 專案生命週期、功能清單與使用情境說明書
版本:v3.0 日期:2026-03-29 適用系統:Compliance Manager(GRC 合規管理平台) 用途:供 BDD 測試規格產出、前端開發、產品文件參考
一、系統概述
Compliance Manager 是一套以 OSCAL(Open Security Controls Assessment Language)為標準設計的 GRC(治理、風險、合規)管理平台,協助組織以結構化的方式規劃、執行、追蹤與完成合規稽核。
系統支援多種合規框架(如 CMMC L2、ISO 27001、NIST SP 800-53),並以「持續管理」為核心理念——專案不會因一次稽核結束而關閉,而是透過多輪稽核循環(Annual Review)持續維護組織的合規狀態。
二、角色與權限
2.1 角色定義
| 角色 | 中文稱呼 | 主要職責 |
|---|---|---|
manager |
專案管理者 | 建立與設定專案、編輯 SSP、指派人員、管理 POA&M、推進稽核流程、批次匯入匯出 |
reviewer |
審核人員 | 內部審查證據、核准或退回工作項目、簽核控制項 |
auditor |
外部稽核人員 | 瀏覽 SSP 與證據、記錄稽核結果與發現(Findings)、確認稽核完成 |
viewer |
觀察者 | 唯讀瀏覽所有資料 |
| 執行人員 | 任務執行者 | 完成被指派的工作項目(上傳文件、填寫問卷)、批次完成任務 |
2.2 權限繼承
角色可設定在三個層級,下層設定覆蓋上層:
專案層級(Project Participants)
↓ 繼承
控制項群組層級(Control Group Participants)
↓ 繼承
控制項層級(Control Participants)
2.3 需要特定角色的操作
| 操作 | 需要角色 |
|---|---|
| 啟動專案(activate) | manager |
| 啟動稽核(launch-audit) | manager |
| 確認稽核(confirm-audit) | auditor |
| 關閉本輪(close-round) | manager |
| 開啟新一輪(launch-new-round) | manager |
| Job 批次設置匯入確認 | manager |
| 稽核判定(verdict)/ 建立 Finding | auditor |
三、核心概念
3.1 專案(Project)
代表組織對特定合規框架的長期管理。一個專案永久存在,不因稽核結束而關閉。
- 連結至一份合規框架(Profile,如 CMMC L2)
- 擁有一份系統安全計畫(SSP)作為活文件,跨稽核輪次持續更新
- 可關聯多個資訊系統(Information System)與設備(Device)
- 每次外部稽核開啟一個新的評估計畫(AP),不是開新專案
- 專案狀態:
pending→in_progress→completed
3.2 評估計畫(Assessment Plan, AP)
代表一輪完整的稽核週期(通常一年一輪)。
- 每個 AP 獨立快照框架控制項(不受後續框架更新影響)
- 包含控制項群組、控制項、工作項目、工作流程、稽核結果、POA&M
- 狀態流程:
preparing→active→auditing→closed或remediation - 支援多輪覆核(run_no 遞增)
3.3 系統安全計畫(SSP)
描述組織如何實作各控制項的活文件,跨 AP 共用並持續更新。
- 記錄系統邊界、FIPS 199 分類(機密性/完整性/可用性)
- 每個控制項有對應的實作狀態與說明
- 每個檢查項目(AO)有對應的實作狀態與說明
- 支援 SSP 級別程序書池(上傳一次,多對多關聯到控制項/AO)
- 支援 Excel 批次匯入匯出(含參考程序書關聯)
實作狀態合法值:
| 狀態 | 說明 |
|---|---|
implemented |
已實作 |
partial |
部分實作 |
not_applicable |
不適用 |
not_implemented |
未實作 |
inherited |
繼承 |
unknown |
未知(預設) |
3.4 評估對象(Assessment Object, AO)
每個控制項下可有多個評估對象,定義要評估的具體項目與方法。每個 AO 對應一個或多個工作項目(Job)。
3.5 工作項目(Job)
執行人員需完成的任務。
任務類型:
| 類型 | 說明 |
|---|---|
general |
一般任務(文件上傳、截圖等) |
survey |
問卷填寫 |
任務狀態:
| 狀態 | 說明 |
|---|---|
TODO |
待執行 |
PROCESSING |
進行中 |
COMPLETED |
已完成 |
CANCEL |
已取消 |
可配置項目(每個 Job):
- 任務類型(general / survey)
- 指派人員(多人,含審核者標記)
- 參與部門
- 設備
- 問卷(含問卷類型、審核流程)
3.6 稽核結果(Assessment Result, AR)
外部稽核人員對每個控制項的評定結果。
| Verdict | 說明 |
|---|---|
pass |
通過 |
fail |
未通過 |
partial |
部分通過 |
na |
不適用 |
Finding(稽核發現)屬性:
- 類別:缺失(deficiency)/ 觀察(observation)/ 建議(recommendation)
- 嚴重程度:低(low)/ 中(medium)/ 高(high)/ 嚴重(critical)
同一個 AR 可支援多輪(run_no)審查,用於矯正後覆核。
3.7 矯正計畫(POA&M)
未通過控制項自動產生的矯正追蹤記錄。
| 狀態 | 說明 |
|---|---|
open |
開啟(待處理) |
in_progress |
進行中 |
closed |
已關閉 |
四、專案生命週期
[建立專案] → Project status: pending
↓
Phase 1:準備階段(AP status = preparing)
↓ [啟動] → Project status: in_progress
Phase 2:執行階段(AP status = active)
↓ [啟動外部稽核]
Phase 3:稽核階段(AP status = auditing)
↓ [確認稽核]
┌──────────────────────────────┐
│ 全部通過? │
│ 是 → AP closed │
│ Project: completed │
│ 否 → Phase 4 │
└──────────────────────────────┘
Phase 4:矯正階段(AP status = remediation)
↓ [關閉本輪 → 重新稽核]
Phase 3(覆核,run_no++)
↓ [所有項目通過]
AP closed → Project: completed
↓
[開啟下一年度 AP(同一專案)]
五、四個階段詳細說明
Phase 1:準備階段(AP
status = preparing)
主要角色: 專案管理者
目標: 建立專案架構、設定 SSP、規劃工作任務
步驟
| # | 動作 | 說明 | 相關功能 |
|---|---|---|---|
| 1 | 建立專案 | 選擇合規框架(Profile),系統自動快照控制項清單並建立 AP | 專案建立 |
| 2 | 設定資訊系統 | 填寫系統邊界、FIPS 199 分類 | 資訊系統管理 |
| 3 | 編輯 SSP 現況說明 | 為每個控制項與檢查項目填寫實作狀態與說明 | SSP 現況編輯、批次匯入匯出 |
| 4 | 上傳參考程序書 | 上傳到 SSP 程序書池,再關聯到控制項/AO | 程序書池管理 |
| 5 | 設定工作任務 | 為每個 Job 設定任務類型、指派人員、部門、設備 | 任務設置、批次匯入匯出 |
| 6 | 設定參與者 | 新增 reviewer、auditor、viewer 等角色 | 參與者管理 |
| 7 | 啟動專案 | 確認所有工作項目皆已設定,觸發狀態轉換 → active |
專案啟動 |
Phase 2:執行階段(AP status =
active)
主要角色: 執行人員、審核人員、管理者
目標: 完成工作任務、收集證據、內部審核確認
執行人員的使用流程
- 登入後於「我的工作」檢視所有被指派的 Job
- 點開 Job,依類型執行:
- 上傳文件證明
- 填寫問卷
- 可使用「批次完成」一次完成多個任務(附加統一 comment)
- 完成後提交,通知審核人員
審核人員的使用流程
- 收到通知後,進入對應控制項的 Job 清單
- 逐一審閱上傳的文件與問卷答案
- 留下評論(可要求補充或修改)
- 判定:
- 通過 → 簽核(sign-off)該控制項的審核
- 退回 → Revert Job,執行人員重新操作
管理者確認
- 透過 Dashboard 監控整體完成進度
- 確認所有控制項皆已通過內部審核
- 啟動外部稽核 → 狀態轉換
active→auditing
Phase 3:稽核階段(AP status
= auditing)
主要角色: 外部稽核人員(auditor)
目標: 外部稽核人員逐一審查控制項並記錄結果
稽核人員的使用流程
- 登入後進入「我的稽核任務」Dashboard,看到所有待稽核的 AP(含判定進度、證據就緒率)
- 點擊某個 AP 直接進入稽核頁面,瀏覽控制項清單(依控制項群組分類)
- 對每個控制項:
- 閱讀 SSP 實作說明
- 查看關聯的參考程序書
- 審閱所有上傳的證據文件
- 查看內部審核評論
- 記錄稽核結果(Verdict):
pass/fail/partial/na - 若有問題,建立 Finding:
- 填寫類別、嚴重程度、描述與建議矯正措施
- 完成所有控制項評定後,確認稽核完成
確認稽核後的系統行為
| 情況 | 系統動作 |
|---|---|
全部 pass 或 na |
AP 關閉(closed),Project 狀態更新為
completed |
有 fail 或 partial |
系統自動產生 POA&M,AP
進入矯正階段(remediation) |
Phase 4:矯正階段(AP
status = remediation)
主要角色: 管理者、執行人員、審核人員
目標: 針對未通過項目進行矯正,並準備覆核
管理者的使用流程
- 檢視自動產生的 POA&M 清單
- 為每筆 POA&M 填寫矯正計畫說明、負責人、預計完成日期
- 追蹤矯正進度,將完成的 POA&M 標記為
closed - 確認所有 POA&M 皆已關閉後,觸發「關閉本輪」→ 建立新一輪覆核(run_no++)
執行人員與審核人員的使用流程
- 系統自動 Revert 未通過控制項的 Job
- 執行人員補充或重新上傳證據
- 審核人員再次審核,通過後簽核
覆核(re-audit)
- 稽核人員進入後,只需對「未通過的控制項」重新審定
- 已通過的控制項自動繼承前一輪結果
- 若全部通過 → AP 最終關閉,Project 狀態更新為
completed - 若仍有未通過 → 再次進入矯正階段,循環至全部通過
六、功能清單
6.1 專案管理
| 功能 | 說明 | API |
|---|---|---|
| 建立專案 | 選擇 Profile,自動建立 AP + SSP + 控制項快照 | POST /oscal-project/start |
| 專案列表 | 分頁查詢所有專案 | POST /grc/projects/list |
| 專案 Menu | 下拉選單用 | GET /grc/projects/menu |
| 專案詳情 | 取得專案基本資訊 | GET /grc/project/<uid> |
| AP Menu | 取得專案下所有 AP | GET /grc/project/<pid>/assessment-plans/menu |
| AP 詳情 | 取得 AP 基本資訊 | GET /grc/project/<pid>/ap/<apid> |
| AP Dashboard | AP 層級的統計數據 | GET /grc/project/<pid>/ap/<apid>/dashboard |
| 啟動專案 | preparing → active | POST /grc/project/<pid>/ap/<apid>/activate |
| 開啟新一輪 | 同專案建立新 AP | POST /grc/project/<pid>/launch-new-round |
6.2 控制項與評估對象
| 功能 | 說明 | API |
|---|---|---|
| 控制項群組列表 | AP 下的群組 | POST /grc/project/<pid>/ap/<apid>/control-groups/list |
| 控制項群組詳情 | 單一群組 | GET /grc/project/<pid>/ap/<apid>/control-group/<gid> |
| 控制項列表 | 群組下的控制項 | POST /grc/project/<pid>/ap/<apid>/control-group/<gid>/controls/list |
| 控制項詳情 | 含 SSP 現況資訊 | GET /grc/project/<pid>/ap/<apid>/control-group/<gid>/control/<cid> |
| 控制項詳情(含 AO) | 含評估對象清單 | GET .../control/<cid>/detail |
| AO 列表 | 控制項下的評估對象 | POST .../control/<cid>/assessment-objects/list |
| 任務設置 Tree | 完整的 Group → Control → AO → Job 樹狀結構 | GET /grc/project/<pid>/ap/<apid>/task-setup/tree |
6.3 SSP 現況說明
| 功能 | 說明 | API |
|---|---|---|
| 控制項現況列表 | SSP 下所有控制項的實作狀態統計 | GET /ssp/<uid>/control-implementations |
| 控制項現況詳情 | 含評估目標清單 | GET /ssp/<uid>/control-implementation/<ctrl_id> |
| 更新控制項現況 | Upsert 模式 | POST/PUT /ssp/<uid>/control-implementation/<ctrl_id> |
| 更新評估目標現況 | Upsert 模式 | POST/PUT /ssp/<uid>/control-implementation/<ctrl_id>/objective/<stmt_id> |
| 程序書池 | 列出 / 上傳 / 刪除(SSP 級別,上傳一次共用) | GET/POST /ssp/<uid>/document-pool,
DELETE .../document-pool/<doc_uid> |
| 控制項程序書關聯 | 從池中多選關聯 / 取消關聯 | GET/POST .../document-mappings,
DELETE .../document-mapping/<doc_uid> |
| AO 程序書關聯 | 從池中多選關聯 / 取消關聯 | GET/POST .../objective/<stmt_id>/document-mappings,
DELETE .../document-mapping/<doc_uid> |
| 批次匯出 | 下載 Excel(含控制項 + AO 現況) | GET /ssp/<uid>/control-implementations/export |
| 批次匯入 | 上傳 Excel 驗證 | POST /ssp/<uid>/control-implementations/import |
| 重新驗證 | JSON 重新驗證修正後的資料 | POST /ssp/<uid>/control-implementations/import/validate |
| 確認匯入 | 批次寫入 | POST /ssp/<uid>/control-implementations/import/confirm |
6.4 工作任務管理
| 功能 | 說明 | API |
|---|---|---|
| Job 列表(AO 下) | 分頁查詢 | POST .../assessment-object/<aoid>/jobs/list |
| Job 詳情 | 含 assignees / departments / devices / surveys | GET /grc/project/<pid>/job/<jid> |
| 建立 Job | 在 AO 下新增 | POST /grc/project/<pid>/assessment-object/<aoid>/jobs |
| 更新 Job | 修改 Job 屬性 | PUT /grc/project/<pid>/job/<jid> |
| 我的工作列表 | 目前使用者被指派的所有任務 | POST /grc/jobs/my/list |
| 我的專案列表 | 目前使用者參與的專案 | GET /grc/jobs/my/projects/menu |
| 完成任務(單筆) | 提交完成 Job | POST /flow-engine/task/complete/<id> |
| 退回任務 | Revert 已完成的 Job | POST /flow-engine/task/revert/<id> |
| 批次完成任務 | 勾選多個 PROCESSING 的 Job 一次完成 | POST /grc/project/<pid>/jobs/batch-complete |
| Job 評論列表 | 查看/新增評論 | GET/POST /grc/job-executions/<uid>/comments |
| Job 評論操作 | 編輯/刪除單筆評論 | GET/PUT/DELETE /grc/job/comment/<uid> |
6.5 任務批次設置(Excel 匯入匯出)
| 功能 | 說明 | API |
|---|---|---|
| 匯出 Excel | 下載含 Job 設定的 Excel(A 欄隱藏 job_uid) | GET /grc/project/<pid>/ap/<apid>/jobs/export |
| 匯入 Excel | 上傳 Excel + 驗證 | POST /grc/project/<pid>/ap/<apid>/jobs/import |
| 重新驗證 | JSON 重新驗證 | POST /grc/project/<pid>/ap/<apid>/jobs/import/validate |
| 確認匯入 | 批次更新(需 manager 角色) | POST /grc/project/<pid>/ap/<apid>/jobs/import/confirm |
可批次設定的欄位:
- 任務類型(必填:general / survey)
- 指派人員(必填:逗號分隔 login_name)
- 參與部門(選填:逗號分隔部門名稱)
- 設備(選填:逗號分隔設備名稱)
6.6 稽核流程
| 功能 | 說明 | API |
|---|---|---|
| 啟動稽核 | active → auditing | POST /grc/project/<pid>/ap/<apid>/launch-audit |
| AR 控制項列表 | 稽核結果的控制項清單 | POST /grc/project/<pid>/ap/<apid>/ar/controls/list |
| AR 控制項詳情 | 單一控制項的稽核結果 | GET /grc/project/<pid>/ap/<apid>/ar/control/<uid> |
| 稽核判定 | 設定 verdict | PUT /grc/project/<pid>/ap/<apid>/ar/control/<uid>/verdict |
| 建立 Finding | 新增稽核發現 | POST /grc/project/<pid>/ap/<apid>/ar/control/<uid>/findings |
| Finding 詳情 | 查看/編輯/刪除 Finding | GET/PUT/DELETE /grc/project/<pid>/ap/<apid>/ar/finding/<uid> |
| 稽核輪次列表 | 查看所有 run_no | GET /grc/project/<pid>/ap/<apid>/ar/rounds |
| 確認稽核 | 稽核人員確認稽核完成 | POST /grc/project/<pid>/ap/<apid>/confirm-audit |
6.7 矯正計畫(POA&M)
| 功能 | 說明 | API |
|---|---|---|
| POA&M 列表 | AP 下所有矯正項目 | POST /grc/project/<pid>/ap/<apid>/poams/list |
| POA&M 詳情 | 查看/更新矯正計畫 | GET/PUT /grc/project/<pid>/ap/<apid>/poam/<uid> |
| 關閉本輪 | 所有 POA&M 關閉後可觸發 | POST /grc/project/<pid>/ap/<apid>/close-round |
6.8 審核與簽核
| 功能 | 說明 | API |
|---|---|---|
| 控制項審核 | 查看/更新控制項層級的 review mark | GET/PUT .../control/<uid>/review |
| AO 審核 | 查看/更新 AO 層級的 review mark | GET/PUT .../control/<uid>/ao/<uid>/review |
6.9 參與者管理
| 功能 | 說明 | API |
|---|---|---|
| 專案參與者 | CRUD + Menu | /project-participant(s) |
| 控制項群組參與者 | CRUD + Menu | /control-group-participant(s) |
| 控制項參與者 | CRUD + Menu | /project-control-participant(s) |
| 任務指派 | 單筆/批次指派 | /task-assignee(s),
/task-assignees/batch |
6.10 稽核人員 Dashboard
| 功能 | 說明 | API |
|---|---|---|
| 我的稽核任務 | 稽核人員專屬清單,顯示所有待稽核的 AP | POST /grc/audits/my/list |
清單包含資訊:
- 專案名稱、AP 標題、稽核輪次、AP 狀態
- 控制項總數、已判定/待判定數、verdict 分佈(pass/fail/partial/na)
- Finding 數量
- 證據就緒率(所有 USER job 都 COMPLETED 的 AO 數 / 總 AO 數)
- 按可行動性排序:auditing > remediation > active > closed
點擊後直接進入稽核頁面,不需經過專案管理導航。
6.11 Dashboard 與報表
| 功能 | 說明 | API |
|---|---|---|
| Dashboard 總覽 | 整體統計 | GET /grc/dashboard/summary |
| AP Dashboard | AP 層級統計 | GET /grc/project/<pid>/ap/<apid>/dashboard |
6.12 檔案上傳
| 功能 | 說明 | API |
|---|---|---|
| 單檔上傳 | multipart/form-data | POST /file/upload |
| 批次上傳 | 多檔上傳 | POST /file/uploads |
| 檔案下載 | 依 UID 下載 | GET /file/download/<uid> |
| PDF 預覽 | 轉 PDF 預覽 | GET /file/pdf-preview/<uid> |
6.13 資訊系統管理
| 功能 | 說明 | API |
|---|---|---|
| 資訊系統列表 | 分頁查詢 | POST /information-systems/list |
| 資訊系統 Menu | 下拉選單 | GET /information-systems/menu |
| 建立資訊系統 | FIPS 199 分類、部署模型等 | POST /information-systems |
| 資訊系統詳情 | 查看/編輯/刪除 | GET/PUT/DELETE /information-system/<uid> |
6.14 問卷管理
| 功能 | 說明 | API |
|---|---|---|
| 問卷資料夾 | CRUD | /survey-folder(s) |
| 問卷管理 | CRUD + 匯入 + 複製 + 發佈 | /survey(s) |
| 問卷頁面 | CRUD + 排序 | /survey-page(s) |
| 問卷題目 | CRUD + 排序 | /survey-question(s) |
| 問卷填答 | 答案 CRUD + 歷史 + 還原 | /task-survey(s),
/project-survey/answers |
| 問卷協同編輯 | WebSocket 即時協作 | Socket.IO /socket/fill-survey |
七、典型使用情境(Use Cases)
UC-01:新組織首次取得 CMMC L2 認證
情境: 一家軟體公司首次申請 CMMC Level 2 認證
流程:
- (管理者) 在系統建立新專案,選擇 CMMC L2 Profile
- (管理者) 花兩週時間完成 SSP:
- 使用 SSP 批次匯出 下載 Excel 範本
- 離線填寫 110 個控制項的實作狀態與現況描述
- SSP 批次匯入 上傳 Excel → 驗證 → 確認寫入
- (管理者) 進入 SSP 程序書池,批次上傳所有程序書(政策文件、標準作業流程等),再透過 UI 或 Excel 匯入關聯到控制項/AO
- (管理者) 使用 Job 批次設置匯出
下載任務設定 Excel
- 填寫任務類型、指派人員、參與部門、設備
- Job 批次設置匯入 上傳 → 驗證 → 確認
- (管理者) 啟動專案(
preparing→active) - (IT 人員) 登入後在「我的工作」看到被指派的 15 個
Job
- 使用 批次完成 一次完成多個文件上傳類任務
- (資安人員) 填寫 8 份合規問卷
- (審核人員) 審閱所有證據,對 3 個 Job 提出補充要求,執行人員補件後再次審核通過
- (管理者) 啟動外部稽核(
active→auditing) - (外部稽核人員) 花 3 天逐一審查所有控制項,標記 95 個通過、12 個部分通過、3 個未通過,建立 18 筆 Finding
- (外部稽核人員) 確認稽核完成 → 系統自動產生
POA&M(
auditing→remediation) - (管理者) 為每筆 POA&M 填寫矯正計畫,指派給負責人
- (IT 人員) 完成矯正後補件,審核人員確認通過
- (管理者) 所有 POA&M 標記關閉,觸發覆核(run_no=2)
- (外部稽核人員) 覆核 15 個未通過項目,全部通過 →
AP 最終關閉(
closed),專案狀態更新為completed
UC-02:年度稽核(持續合規管理)
情境: 已取得認證的公司進行第二年年度稽核
流程:
- (管理者) 在現有專案開啟新一年度的
AP(
launch-new-round) - (管理者) 更新 SSP:本年度系統有變更,使用批次匯入匯出更新相關控制項說明
- (管理者) 確認工作任務設定,使用 Job 批次設置匯入調整指派人員
- (管理者) 啟動專案開始收集新年度證據
- (執行人員 / 審核人員) 執行完整的 Phase 2 流程
- (管理者) 啟動外部稽核
- (外部稽核人員) 本年度改善顯著,110 個控制項全部通過
- (外部稽核人員) 確認稽核 → AP 直接關閉,無需矯正階段
UC-03:矯正計畫追蹤(多部門協作)
情境: 一次稽核有 20 個控制項未通過,涉及 IT、HR、法務三個部門
流程:
- (管理者) 系統產生 20 筆 POA&M 後,依部門將 POA&M 指派給三位負責人
- (IT 負責人) 查看自己的 8 筆 POA&M,填寫矯正計畫,執行矯正後標記完成
- (HR 負責人) 查看 7 筆 POA&M,部分需要採購新工具,設定預計完成日期為下個月
- (法務負責人) 查看 5 筆 POA&M,更新相關政策文件後標記完成
- (管理者) 使用 POA&M 列表追蹤整體進度
- (管理者) 所有 POA&M 關閉,觸發覆核
UC-04:執行人員批次完成任務
情境: IT 工程師被指派 15 個文件上傳任務,已全部準備好文件
流程:
- 登入系統,進入「我的工作」
- 篩選
PROCESSING狀態的任務 - 勾選已準備好的 10 個任務
- 點擊「批次完成」,填寫統一的完成說明:「已上傳 Q1 季度合規證據」
- 確認送出 → 系統逐筆完成任務
- 查看結果:10 筆成功、0 筆失敗
- 審核人員收到通知,開始審查
UC-05:管理者批次設定任務(Excel 匯入匯出)
情境: 新專案有 60 個 Job 需要設定任務類型和指派人員
流程:
- (管理者) 進入 Task Setup 頁面,點擊「匯出 Excel」
- 下載 Excel 範本(已帶出所有 Job,含控制項群組、控制項、檢查項目等唯讀資訊)
- 在 Excel 中填寫:
- 任務類型(下拉選單:general / survey)
- 指派人員(逗號分隔 login_name:如
john, mary, bob) - 參與部門(逗號分隔部門名稱)
- 設備(逗號分隔設備名稱)
- 上傳 Excel → 系統驗證 → 顯示預覽:55 筆有效、5 筆有錯
- 在前端表格修正錯誤 → 重新驗證 → 全部有效
- 確認匯入 → 60 筆任務設定完成
UC-06:管理者批次維護 SSP 現況
情境: 需要更新 17 個控制項和 59 個檢查項目的實作狀態
流程:
- (管理者) 進入 SSP 現況頁面,點擊「匯出 Excel」
- 下載 Excel(控制項行 + 檢查項目行,已帶出現有值)
- 修改實作狀態(下拉選單)和現況描述
- 上傳 Excel → 驗證 → 確認匯入
- 所有控制項與檢查項目的現況說明同步更新
UC-07:稽核人員使用 Dashboard 快速進入稽核
情境: 外部稽核人員同時負責 3 個專案的稽核
流程:
- 登入系統,進入「我的稽核任務」頁面
- 看到 3 個 AP:
- CMMC L2 稽核(稽核中,判定進度 12/17,證據就緒 55/59)
- ISO 27001 覆核(稽核中,判定進度 88/93,證據就緒 110/110)
- SOC 2 稽核(矯正中,等待覆核)
- 選擇證據就緒率最高的 ISO 27001 覆核,點擊「進入稽核」
- 直接進入稽核頁面,開始審查剩餘 5 個控制項
- 完成後回到 Dashboard,繼續處理 CMMC L2
UC-08:管理者使用程序書池批次管理參考文件
情境: 組織有 15 份程序書,需關聯到 17 個控制項和 59 個檢查項目
流程:
- (管理者) 進入 SSP 程序書管理頁面
- 拖拽批次上傳 15 份程序書到池中
- 為每份程序書填寫描述(如「BT-I-B-13-存取控制管理程序書」)
- 方式 A:在控制項/AO 詳情頁,點擊「關聯程序書」→ 從池中多選
- 方式 B:匯出 SSP 現況 Excel → 在 I 欄填入程序書名稱(逗號分隔)→ 匯入
- 同一份程序書可關聯到多個控制項/AO,不需重複上傳
八、系統流程圖
8.1 AP 狀態流轉
[建立 AP]
↓
preparing
↓ activate(管理者)
active
↓ launch-audit(管理者)
auditing
↓ confirm-audit(稽核人員)
┌─────────────────────┐
│ 全部 pass/na? │
│ 是 │ 否
↓ ↓
closed remediation
↓ close-round(管理者,POA&M 全關)
auditing(run_no++)
↓ confirm-audit
┌─────────────────────┐
│ 全部 pass/na? │
│ 是 │ 否
↓ ↓
closed remediation(再循環)
8.2 工作項目(Job)狀態流轉
[建立 Job / 指派人員]
↓
TODO
↓ 工作流程自動推進
PROCESSING
↓ 完成任務(單筆或批次)
COMPLETED
↓
┌────────────┐
│ 審核通過? │
│ 是 │ 否(退回)
↓ ↓
signed PROCESSING(重新執行)
8.3 批次匯入匯出流程
匯出 Excel 匯入 Excel
GET /export POST /import
↓ ↓
下載 .xlsx 驗證結果預覽
(黃底=可編輯) (有效/錯誤)
↓ ↓
離線編輯 ┌────────┴────────┐
│有錯誤 │全部有效
↓ ↓
前端修正 POST /confirm
↓ 批次寫入完成
POST /validate
(可重複多次)
九、名詞對照表
| 英文術語 | 中文說明 |
|---|---|
| Assessment Plan (AP) | 評估計畫,一輪稽核週期 |
| Assessment Object (AO) | 評估對象,控制項下的具體評估事項 |
| Assessment Result (AR) | 評估結果,外部稽核的記錄 |
| Control | 控制項,合規要求的最小單位 |
| Control Group | 控制項群組,控制項的分類 |
| Finding | 稽核發現,對未通過項目的詳細描述 |
| Job | 工作項目,執行人員需完成的任務 |
| POA&M | Plan of Action and Milestones,矯正計畫 |
| Profile | 合規框架,如 CMMC L2、ISO 27001 |
| SSP | System Security Plan,系統安全計畫 |
| Verdict | 稽核判定(pass / fail / partial / na) |
| run_no | 覆核輪次編號(每次 close-round 遞增) |
| Batch Complete | 批次完成任務(勾選多個 Job 一次完成) |
| Batch Import/Export | 批次匯入匯出(Excel 範本上傳下載) |
| Document Pool | 程序書池(SSP 級別,上傳一次,多對多關聯到控制項/AO) |
| Auditor Dashboard | 稽核人員 Dashboard(我的稽核任務清單) |
十、前端畫面與功能路徑對照
供 BDD 測試規格撰寫參考。每個功能標示前端 URL 路徑、所在頁面、操作位置。
10.1 頁面路由總覽
| 路由路徑 | 路由名稱 | 頁面 | 元件 |
|---|---|---|---|
/project/dashboard |
project-dashboard |
GRC Dashboard | DashboardView.vue |
/project/projects |
project-list |
專案列表 | ProjectListView.vue |
/project/projects/new |
project-create |
新增專案(Wizard) | ProjectCreateView.vue |
/project/projects/:id |
project-ap-list |
AP 列表 | ProjectApListView.vue |
/project/projects/:id/overview |
project-auditor-overview |
專案總覽(無 AP) | ProjectAuditorOverview.vue |
/project/projects/:id/ap/:apUid |
project-auditor-overview-ap |
專案總覽(指定 AP) | ProjectAuditorOverview.vue |
/project/projects/:id/settings |
project-settings |
專案設定 | ProjectSettingsView.vue |
/project/projects/:id/planning |
project-planning |
專案規劃(無 AP) | ProjectPlanningView.vue |
/project/projects/:id/ap/:apUid/planning |
project-planning-ap |
專案規劃(指定 AP) | ProjectPlanningView.vue |
/project/projects/:id/task-setup |
project-task-setup |
任務設置 | TaskSetupView.vue |
/project/projects/:id/ap/:apUid/task-setup |
project-task-setup-ap |
任務設置(指定 AP) | TaskSetupView.vue |
/project/projects/:id/ap/:apUid/audit |
project-audit-review |
稽核審查(三欄式) | AuditReviewView.vue |
/project/projects/:id/ap/:apUid/poam |
project-poam |
矯正計畫(POA&M) | PoamView.vue |
/project/task-manage |
project-my-tasks |
待辦任務(我的工作) | MyTasksView.vue |
10.2 Phase 1 準備階段 — 功能位置
| 步驟 | 功能 | 前端路徑 | 操作位置 |
|---|---|---|---|
| 建立專案 | 選擇 Profile + 填寫基本資訊 + 選擇系統/參與者/設備 | /project/projects/new |
5 步驟 Wizard(Step 0~4) |
| 專案設定 | 修改基本資訊、管理系統/參與者/設備 | /project/projects/:id/settings |
TabView 4 個 Tab |
| 編輯 SSP 現況 | 為控制項/AO 填寫實作狀態與說明 | /project/projects/:id/ap/:apUid/planning |
右側面板 → 控制項展開 → SSP 區塊 |
| 上傳參考程序書 | 控制項/AO 層級上傳 | /project/projects/:id/ap/:apUid/planning |
右側面板 → 控制項展開 → 程序書區塊 |
| SSP 批次匯出 | 下載 Excel | /project/projects/:id/ap/:apUid/planning |
Header →「批次維護」Menu →「匯出現況資料」 |
| SSP 批次匯入 | 上傳 Excel → 預覽 → 確認 | /project/projects/:id/ap/:apUid/planning |
Header →「批次維護」Menu →「匯入現況資料」→ SspImportDialog |
| 設定工作任務 | 設定 Job 類型/人員/部門/設備 | /project/projects/:id/ap/:apUid/planning |
右側面板 → AO 展開 → 任務區塊 |
| Job 批次匯出 | 下載任務設定 Excel | /project/projects/:id/ap/:apUid/planning |
Header →「批次維護」Menu →「匯出任務配置」 |
| Job 批次匯入 | 上傳 Excel → 預覽 → 確認 | /project/projects/:id/ap/:apUid/planning |
Header →「批次維護」Menu →「匯入任務配置」→ JobImportDialog |
| 設定參與者 | 專案/群組/控制項層級 | /project/projects/:id/ap/:apUid/planning |
右側面板 → 群組/控制項 → 參與者 icon |
| 啟動專案 | preparing → active | /project/projects/:id/ap/:apUid/planning |
Header →「啟動專案」按鈕(綠色) |
10.3 Phase 2 執行階段 — 功能位置
| 步驟 | 功能 | 前端路徑 | 操作位置 |
|---|---|---|---|
| 查看待辦任務 | 所有被指派的 Job | /project/task-manage |
DataTable(預設篩選 PROCESSING) |
| 執行任務(單筆) | 上傳文件/填寫問卷 | /project/task-manage |
點擊任務行 → 右側 JobExecutionDrawer |
| 完成任務(單筆) | 提交 Job | /project/task-manage |
Drawer 底部 →「完成任務」按鈕 → 確認 Dialog |
| 批次完成任務 | 勾選多個 PROCESSING Job | /project/task-manage |
勾選 checkbox → 篩選列右側「批次完成 (N)」→ 確認 Dialog → 結果明細 |
| 退回任務 | Revert 已完成 Job | /project/task-manage |
Drawer 底部 →「退回」按鈕(reviewer 才看得到) |
| 留言 | Job 留言(reviewer 隨時可留言) | /project/task-manage |
Drawer → Comments 區塊 |
| 審閱控制項 | Mark as Reviewed | /project/projects/:id/ap/:apUid |
總覽頁 → 右側控制項清單 →「已審閱」按鈕 |
| 啟動外部稽核 | active → auditing | /project/projects/:id/ap/:apUid |
總覽頁 Header →「啟動稽核」按鈕 |
10.4 Phase 3 稽核階段 — 功能位置
| 步驟 | 功能 | 前端路徑 | 操作位置 |
|---|---|---|---|
| 進入稽核 | 稽核三欄頁面 | /project/projects/:id/ap/:apUid/audit |
總覽頁 →「進入稽核」按鈕 |
| 瀏覽控制項 | 樹狀導航 | /project/projects/:id/ap/:apUid/audit |
左欄:AuditTreeNav(搜尋 + 群組展開) |
| 查看 SSP / 證據 | 唯讀參考 | /project/projects/:id/ap/:apUid/audit |
中欄:AuditControlRef(SSP 說明 + AO 證據) |
| 稽核判定 | 設定 verdict + confidence + rationale | /project/projects/:id/ap/:apUid/audit |
右欄:AuditVerdictPanel → Verdict 區塊 |
| 建立 Finding | 新增稽核發現 | /project/projects/:id/ap/:apUid/audit |
右欄:AuditVerdictPanel → Findings 區塊 →「新增發現」 |
| 切換稽核輪次 | 查看歷史輪次(唯讀) | /project/projects/:id/ap/:apUid/audit |
Top Bar 下方 RoundSwitcherBar(僅 > 1 輪時顯示) |
| 確認稽核 | 所有 verdict 填完後確認 | /project/projects/:id/ap/:apUid/audit |
Top Bar 右側 →「確認結案」按鈕 |
10.5 Phase 4 矯正階段 — 功能位置
| 步驟 | 功能 | 前端路徑 | 操作位置 |
|---|---|---|---|
| 查看 POA&M | 矯正計畫列表 | /project/projects/:id/ap/:apUid/poam |
DataTable(可篩選狀態 + 搜尋) |
| 編輯 POA&M | 填寫矯正計畫/狀態/到期日 | /project/projects/:id/ap/:apUid/poam |
點擊行 → 右側 PoamDetailDrawer |
| 進入 POA&M 頁面 | 從總覽頁跳轉 | /project/projects/:id/ap/:apUid |
總覽頁 →「矯正計畫」按鈕 |
| 關閉本輪 | 所有 POA&M closed 後觸發 | /project/projects/:id/ap/:apUid/poam 或
/project/projects/:id/ap/:apUid |
Header →「觸發覆核」按鈕 |
10.6 共用功能 — 批次匯入 Dialog 流程
兩個匯入 Dialog(SSP / Job)共用相同的 3 步驟 UI:
Step 0(上傳檔案)
├── 拖拽區(dashed border)或點擊選擇 .xlsx
├── 選檔後顯示檔名 + 大小 + 「上傳並驗證」按鈕
└── 可重新選擇檔案
Step 1(預覽與編輯)
├── 摘要 Tag:「N 筆有效」「M 筆錯誤」
├── 篩選 Tab:全部 / 有效 / 錯誤
├── DataTable:可編輯欄位(Dropdown / InputText),錯誤行紅色左邊框
├── 「重新驗證」按鈕(編輯過才啟用,POST /validate)
├── 「匯入全部 (N)」按鈕(有編輯時 disabled,需先重新驗證)
└── 錯誤欄位有 p-invalid 紅框
Step 2(匯入結果)
├── 成功 icon + 更新筆數
├── 若有 skipped_count > 0,顯示跳過筆數
└── 「關閉」→ 刷新頁面
10.7 功能入口快速查找(BDD Given/When 參考)
| 我想要... | 去哪裡 | 操作什麼 |
|---|---|---|
| 建立新專案 | /project/projects/new |
完成 5 步驟 Wizard |
| 查看專案總覽 | /project/projects/:id/ap/:apUid |
— |
| 修改專案設定 | /project/projects/:id/settings |
Tab 切換 |
| 規劃專案(SSP + 任務) | /project/projects/:id/ap/:apUid/planning |
左側樹狀選擇 → 右側編輯 |
| 批次匯入現況/任務 | /project/projects/:id/ap/:apUid/planning |
Header「批次維護」▾ |
| 設定工作任務 | /project/projects/:id/ap/:apUid/planning |
選到 AO → 展開任務設定 |
| 啟動專案 | /project/projects/:id/ap/:apUid/planning |
Header「啟動專案」 |
| 查看/完成我的任務 | /project/task-manage |
列表 + 右側 Drawer |
| 批次完成任務 | /project/task-manage |
勾選 checkbox →「批次完成」 |
| 審閱控制項 | /project/projects/:id/ap/:apUid |
右側控制項「已審閱」按鈕 |
| 啟動外部稽核 | /project/projects/:id/ap/:apUid |
Header「啟動稽核」 |
| 執行稽核審查 | /project/projects/:id/ap/:apUid/audit |
三欄式 UI |
| 查看/管理 POA&M | /project/projects/:id/ap/:apUid/poam |
列表 + Drawer |
| 觸發覆核 | /project/projects/:id/ap/:apUid/poam |
Header「觸發覆核」 |