手冊首頁 / 使用手冊 / Compliance Manager — 專案生命週期、功能清單與使用情境說明書

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),不是開新專案
  • 專案狀態:pendingin_progresscompleted

3.2 評估計畫(Assessment Plan, AP)

代表一輪完整的稽核週期(通常一年一輪)。

  • 每個 AP 獨立快照框架控制項(不受後續框架更新影響)
  • 包含控制項群組、控制項、工作項目、工作流程、稽核結果、POA&M
  • 狀態流程:preparingactiveauditingclosedremediation
  • 支援多輪覆核(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

主要角色: 執行人員、審核人員、管理者

目標: 完成工作任務、收集證據、內部審核確認

執行人員的使用流程

  1. 登入後於「我的工作」檢視所有被指派的 Job
  2. 點開 Job,依類型執行:
    • 上傳文件證明
    • 填寫問卷
  3. 可使用「批次完成」一次完成多個任務(附加統一 comment)
  4. 完成後提交,通知審核人員

審核人員的使用流程

  1. 收到通知後,進入對應控制項的 Job 清單
  2. 逐一審閱上傳的文件與問卷答案
  3. 留下評論(可要求補充或修改)
  4. 判定:
    • 通過 → 簽核(sign-off)該控制項的審核
    • 退回 → Revert Job,執行人員重新操作

管理者確認

  1. 透過 Dashboard 監控整體完成進度
  2. 確認所有控制項皆已通過內部審核
  3. 啟動外部稽核 → 狀態轉換 activeauditing

Phase 3:稽核階段(AP status = auditing

主要角色: 外部稽核人員(auditor)

目標: 外部稽核人員逐一審查控制項並記錄結果

稽核人員的使用流程

  1. 登入後進入「我的稽核任務」Dashboard,看到所有待稽核的 AP(含判定進度、證據就緒率)
  2. 點擊某個 AP 直接進入稽核頁面,瀏覽控制項清單(依控制項群組分類)
  3. 對每個控制項:
    • 閱讀 SSP 實作說明
    • 查看關聯的參考程序書
    • 審閱所有上傳的證據文件
    • 查看內部審核評論
  4. 記錄稽核結果(Verdict):pass / fail / partial / na
  5. 若有問題,建立 Finding:
    • 填寫類別、嚴重程度、描述與建議矯正措施
  6. 完成所有控制項評定後,確認稽核完成

確認稽核後的系統行為

情況 系統動作
全部 passna AP 關閉(closed),Project 狀態更新為 completed
failpartial 系統自動產生 POA&M,AP 進入矯正階段(remediation

Phase 4:矯正階段(AP status = remediation

主要角色: 管理者、執行人員、審核人員

目標: 針對未通過項目進行矯正,並準備覆核

管理者的使用流程

  1. 檢視自動產生的 POA&M 清單
  2. 為每筆 POA&M 填寫矯正計畫說明、負責人、預計完成日期
  3. 追蹤矯正進度,將完成的 POA&M 標記為 closed
  4. 確認所有 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 認證

流程:

  1. (管理者) 在系統建立新專案,選擇 CMMC L2 Profile
  2. (管理者) 花兩週時間完成 SSP:
    • 使用 SSP 批次匯出 下載 Excel 範本
    • 離線填寫 110 個控制項的實作狀態與現況描述
    • SSP 批次匯入 上傳 Excel → 驗證 → 確認寫入
  3. (管理者) 進入 SSP 程序書池,批次上傳所有程序書(政策文件、標準作業流程等),再透過 UI 或 Excel 匯入關聯到控制項/AO
  4. (管理者) 使用 Job 批次設置匯出 下載任務設定 Excel
    • 填寫任務類型、指派人員、參與部門、設備
    • Job 批次設置匯入 上傳 → 驗證 → 確認
  5. (管理者) 啟動專案(preparingactive
  6. (IT 人員) 登入後在「我的工作」看到被指派的 15 個 Job
    • 使用 批次完成 一次完成多個文件上傳類任務
  7. (資安人員) 填寫 8 份合規問卷
  8. (審核人員) 審閱所有證據,對 3 個 Job 提出補充要求,執行人員補件後再次審核通過
  9. (管理者) 啟動外部稽核(activeauditing
  10. (外部稽核人員) 花 3 天逐一審查所有控制項,標記 95 個通過、12 個部分通過、3 個未通過,建立 18 筆 Finding
  11. (外部稽核人員) 確認稽核完成 → 系統自動產生 POA&M(auditingremediation
  12. (管理者) 為每筆 POA&M 填寫矯正計畫,指派給負責人
  13. (IT 人員) 完成矯正後補件,審核人員確認通過
  14. (管理者) 所有 POA&M 標記關閉,觸發覆核(run_no=2)
  15. (外部稽核人員) 覆核 15 個未通過項目,全部通過 → AP 最終關閉(closed),專案狀態更新為 completed

UC-02:年度稽核(持續合規管理)

情境: 已取得認證的公司進行第二年年度稽核

流程:

  1. (管理者) 在現有專案開啟新一年度的 AP(launch-new-round
  2. (管理者) 更新 SSP:本年度系統有變更,使用批次匯入匯出更新相關控制項說明
  3. (管理者) 確認工作任務設定,使用 Job 批次設置匯入調整指派人員
  4. (管理者) 啟動專案開始收集新年度證據
  5. (執行人員 / 審核人員) 執行完整的 Phase 2 流程
  6. (管理者) 啟動外部稽核
  7. (外部稽核人員) 本年度改善顯著,110 個控制項全部通過
  8. (外部稽核人員) 確認稽核 → AP 直接關閉,無需矯正階段

UC-03:矯正計畫追蹤(多部門協作)

情境: 一次稽核有 20 個控制項未通過,涉及 IT、HR、法務三個部門

流程:

  1. (管理者) 系統產生 20 筆 POA&M 後,依部門將 POA&M 指派給三位負責人
  2. (IT 負責人) 查看自己的 8 筆 POA&M,填寫矯正計畫,執行矯正後標記完成
  3. (HR 負責人) 查看 7 筆 POA&M,部分需要採購新工具,設定預計完成日期為下個月
  4. (法務負責人) 查看 5 筆 POA&M,更新相關政策文件後標記完成
  5. (管理者) 使用 POA&M 列表追蹤整體進度
  6. (管理者) 所有 POA&M 關閉,觸發覆核

UC-04:執行人員批次完成任務

情境: IT 工程師被指派 15 個文件上傳任務,已全部準備好文件

流程:

  1. 登入系統,進入「我的工作」
  2. 篩選 PROCESSING 狀態的任務
  3. 勾選已準備好的 10 個任務
  4. 點擊「批次完成」,填寫統一的完成說明:「已上傳 Q1 季度合規證據」
  5. 確認送出 → 系統逐筆完成任務
  6. 查看結果:10 筆成功、0 筆失敗
  7. 審核人員收到通知,開始審查

UC-05:管理者批次設定任務(Excel 匯入匯出)

情境: 新專案有 60 個 Job 需要設定任務類型和指派人員

流程:

  1. (管理者) 進入 Task Setup 頁面,點擊「匯出 Excel」
  2. 下載 Excel 範本(已帶出所有 Job,含控制項群組、控制項、檢查項目等唯讀資訊)
  3. 在 Excel 中填寫:
    • 任務類型(下拉選單:general / survey)
    • 指派人員(逗號分隔 login_name:如 john, mary, bob
    • 參與部門(逗號分隔部門名稱)
    • 設備(逗號分隔設備名稱)
  4. 上傳 Excel → 系統驗證 → 顯示預覽:55 筆有效、5 筆有錯
  5. 在前端表格修正錯誤 → 重新驗證 → 全部有效
  6. 確認匯入 → 60 筆任務設定完成

UC-06:管理者批次維護 SSP 現況

情境: 需要更新 17 個控制項和 59 個檢查項目的實作狀態

流程:

  1. (管理者) 進入 SSP 現況頁面,點擊「匯出 Excel」
  2. 下載 Excel(控制項行 + 檢查項目行,已帶出現有值)
  3. 修改實作狀態(下拉選單)和現況描述
  4. 上傳 Excel → 驗證 → 確認匯入
  5. 所有控制項與檢查項目的現況說明同步更新

UC-07:稽核人員使用 Dashboard 快速進入稽核

情境: 外部稽核人員同時負責 3 個專案的稽核

流程:

  1. 登入系統,進入「我的稽核任務」頁面
  2. 看到 3 個 AP:
    • CMMC L2 稽核(稽核中,判定進度 12/17,證據就緒 55/59)
    • ISO 27001 覆核(稽核中,判定進度 88/93,證據就緒 110/110)
    • SOC 2 稽核(矯正中,等待覆核)
  3. 選擇證據就緒率最高的 ISO 27001 覆核,點擊「進入稽核」
  4. 直接進入稽核頁面,開始審查剩餘 5 個控制項
  5. 完成後回到 Dashboard,繼續處理 CMMC L2

UC-08:管理者使用程序書池批次管理參考文件

情境: 組織有 15 份程序書,需關聯到 17 個控制項和 59 個檢查項目

流程:

  1. (管理者) 進入 SSP 程序書管理頁面
  2. 拖拽批次上傳 15 份程序書到池中
  3. 為每份程序書填寫描述(如「BT-I-B-13-存取控制管理程序書」)
  4. 方式 A:在控制項/AO 詳情頁,點擊「關聯程序書」→ 從池中多選
  5. 方式 B:匯出 SSP 現況 Excel → 在 I 欄填入程序書名稱(逗號分隔)→ 匯入
  6. 同一份程序書可關聯到多個控制項/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「觸發覆核」