SDD(系統設計文件)範本

SDD(系統設計文件|System Design Document)範本 版本:1.0 參照標準:ISO/IEC/IEEE 42010:2022、ISO/IEC 25010:2023、ISO/IEC/IEEE 15288:2023 適用對象:系統架構師、資深開發工程師、技術主管 文件性質:系統技術架構與設計決策文件 📋 使用說明 SDD 用於制定技術解決方案,規劃「系統要如何實作」。內容涵蓋系統架構、資料庫綱要(Schema)、API 介面規格、模組劃分與資安規範,確保系統具備擴展性與穩定性。 何時使用本範本 系統設計階段,將需求(PRD/FRD/SRD)轉化為技術方案 重大架構變更前的設計評審 跨團隊技術溝通的基準文件 與其他文件的關係 PRD(做什麼) → SDD(如何設計) → TSD(如何實作) ↑ ↑ ↑ 產品經理 架構師 開發工程師 填寫原則 決策可追溯:每個設計決策需記錄原因與替代方案 圖文並茂:架構圖、序列圖、ER 圖等應完整呈現 安全優先:每個模組需考慮資安面向 可演進:設計應預留擴展空間 📄 範本正文 [系統/模組名稱] 系統設計文件(SDD) 1. 文件資訊 項目 內容 文件編號 SDD-[專案代碼]-[序號] 版本 v0.1 建立日期 YYYY-MM-DD 最後更新 YYYY-MM-DD 撰寫者 [架構師姓名] 審核者 [審核者姓名 / 角色] 核准者 [核准者姓名 / 角色] 狀態 草稿 / 審查中 / 已核准 版本歷程 版本 日期 修改人 修改內容摘要 v0.1 YYYY-MM-DD [姓名] 初版建立 審核紀錄 審核者 角色 審核日期 結果 備註 通過 / 有條件通過 / 退回 關聯文件 文件名稱 文件編號 版本 關聯性 產品需求文件(PRD) PRD-XXX-001 v1.0 需求來源 功能需求文件(FRD) FRD-XXX-001 v1.0 功能規格 系統需求規格書(SRD) SRD-XXX-001 v1.0 系統規格 2. 系統概述 2.1 系統背景與目標 簡述本系統的業務背景、核心問題,以及本設計文件欲達成的技術目標。 ...

May 19, 2026 · 7 min · 1473 words · Eric Cheng

TSD(技術規格文件)範本

TSD(技術規格文件|Technical Specification Document)範本 版本:1.0 參照標準:ISO/IEC/IEEE 15288:2023、ISO/IEC 25010:2023、IEEE 1016-2009 適用對象:資深開發工程師、技術主管、QA 工程師 文件性質:工程師實作指南與底層技術規格文件 📋 使用說明 TSD 是工程師的實作指南,詳細說明「底層技術與程式碼邏輯」。內容涵蓋類別與函式設計、演算法邏輯、資料結構、錯誤處理機制及自動化測試規劃。 何時使用本範本 進入開發實作階段前,將 SDD 的設計轉化為可直接編碼的技術規格 複雜演算法或業務邏輯需要詳細記錄時 技術交接或 Code Review 的參考文件 與其他文件的關係 PRD(做什麼) → SDD(如何設計) → TSD(如何實作) ↑ ↑ ↑ 產品經理 架構師 開發工程師 填寫原則 可直接編碼:規格描述需精確到可直接轉換為程式碼 測試可驗證:每個功能模組需附帶測試策略 錯誤完整:覆蓋所有已知的錯誤場景與處理方式 效能可量化:關鍵演算法需標注時間/空間複雜度 📄 範本正文 [模組/功能名稱] 技術規格文件(TSD) 1. 文件資訊 項目 內容 文件編號 TSD-[專案代碼]-[模組代碼]-[序號] 版本 v0.1 建立日期 YYYY-MM-DD 最後更新 YYYY-MM-DD 撰寫者 [工程師姓名] 審核者 [技術主管 / 架構師] 狀態 草稿 / 審查中 / 已核准 版本歷程 版本 日期 修改人 修改內容摘要 v0.1 YYYY-MM-DD [姓名] 初版建立 關聯文件 文件名稱 文件編號 版本 關聯性 系統設計文件(SDD) SDD-XXX-001 v1.0 架構設計 產品需求文件(PRD) PRD-XXX-001 v1.0 需求來源 API 規格文件 API-XXX-001 v1.0 介面規格 2. 技術概述 2.1 模組/功能範圍 簡述本 TSD 涵蓋的模組或功能範圍,以及與其他模組的邊界。 ...

May 19, 2026 · 9 min · 1737 words · Eric Cheng

API 規格文件範本(API Specification Template)

API 規格文件範本(API Specification Document) 參照標準:OpenAPI Specification 3.1(OAS 3.1)/ Linux Foundation 標準 文件用途:定義 RESTful API 的端點、請求/回應格式、認證機制與錯誤處理規範 適用階段:系統設計階段(Detail Design Phase) 📋 章節目錄 文件資訊 API 概述 認證與授權 共用規範 端點定義 資料模型 錯誤處理 版本策略 OpenAPI 規格檔 附錄 1. 文件資訊 📝 範本 項目 內容 文件編號 API-{專案代碼}-{序號} API 名稱 {系統名稱} API API 版本 v{主版本} 文件版本 v{主版本}.{次版本} 狀態 草稿 / 審核中 / 已發布 建立日期 {YYYY-MM-DD} 最後更新 {YYYY-MM-DD} 負責人 {姓名/角色} Base URL https://{domain}/api/v{version} 📖 使用說明 API 版本與文件版本分開管理:API 版本影響端點路徑,文件版本追蹤文件修訂 Base URL 需區分環境(DEV/SIT/UAT/PROD) 依據 OpenAPI 3.1 info 物件結構設計 💡 範例 項目 內容 文件編號 API-HRM-001 API 名稱 HRMS API API 版本 v1 Base URL https://api.company.com/hrms/v1 2. API 概述 📝 範本 2.1 API 目的 {描述此 API 提供的服務範圍與主要功能} ...

May 18, 2026 · 7 min · 1416 words · Eric Cheng

SAD 系統架構文件範本(System Architecture Document Template)

SAD 系統架構文件範本(System Architecture Document) 參照標準:ISO/IEC/IEEE 42010:2022(取代 IEEE 1471-2000) 文件用途:描述系統架構決策、觀點、視圖與品質屬性,作為開發團隊的設計藍圖 適用階段:系統設計階段(System Design Phase) 📋 章節目錄 文件資訊 架構概述 架構利害關係人與關注點 架構觀點定義 邏輯視圖 開發視圖 部署視圖 流程視圖 資料架構視圖 架構決策記錄 品質屬性與戰術 安全架構 附錄 1. 文件資訊 📝 範本 項目 內容 文件編號 SAD-{專案代碼}-{序號} 文件名稱 {系統名稱} 系統架構文件 版本 v{主版本}.{次版本} 狀態 草稿 / 審核中 / 核定 建立日期 {YYYY-MM-DD} 最後更新 {YYYY-MM-DD} 架構師 {姓名} 審核者 {姓名/角色} 對應 FRD {FRD 文件編號} 版本歷程 版本 日期 修改人 修改內容摘要 v0.1 {YYYY-MM-DD} {姓名} 初版架構設計 📖 使用說明 依據 ISO/IEC/IEEE 42010:2022 第 5.1 節,架構描述應包含識別資訊 SAD 承接 FRD,將功能需求與非功能需求轉化為架構設計方案 架構文件是「活文件」(Living Document),隨設計演進持續更新 💡 範例 項目 內容 文件編號 SAD-HRM-001 文件名稱 人力資源管理系統 系統架構文件 版本 v1.3 架構師 陳建築 對應 FRD FRD-HRM-001 v2.1 2. 架構概述 📝 範本 2.1 系統背景(System Context) {描述系統在組織 IT 環境中的定位} ...

May 18, 2026 · 8 min · 1605 words · Eric Cheng

UX/UI 畫面設計規格範本(UI Specification Template)

UX/UI 畫面設計規格範本(UI Specification Template) 適用標準:ISO 9241-210:2019(Human-centred Design)、WCAG 2.2(Web Content Accessibility Guidelines) 適用階段:系統設計階段(Design Phase) 負責角色:UX 設計師、UI 設計師、前端工程師 📑 章節目錄 文件資訊 設計原則與規範 資訊架構(Information Architecture) 畫面流程(UI Flow) 畫面規格(Screen Specification) 元件規格(Component Specification) 響應式設計規格 無障礙設計(Accessibility) 互動規格(Interaction Specification) 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] UI 設計規格書 文件編號 [專案代碼]-UIS-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 最後更新 [YYYY-MM-DD] 撰寫者 [UX/UI 設計師] 審核者 [Product Owner / Tech Lead] 設計工具與資源 項目 工具/位置 Design Tool [Figma / Sketch / Adobe XD] Design File URL [連結] Prototype URL [互動原型連結] Design System [設計系統/元件庫名稱與連結] Icon Library [圖標庫名稱] 2. 設計原則與規範 2.1 設計原則 原則 說明 [一致性] [描述此專案的一致性準則] [簡潔性] [描述簡潔設計方針] [可及性] [無障礙設計目標] [效率] [使用者操作效率目標] 2.2 Design Token / 設計變數 Token 名稱 值 用途 color-primary [#XXXXXX] 主要品牌色 color-secondary [#XXXXXX] 次要色 color-error [#XXXXXX] 錯誤提示 color-success [#XXXXXX] 成功提示 font-family [字型名稱] 主要字型 font-size-base [N]px 基準字級 spacing-unit [N]px 間距基準單位 border-radius [N]px 圓角 2.3 排版規範(Typography) 層級 用途 字級 字重 行高 H1 頁面標題 [N]px [Bold] [N] H2 區塊標題 [N]px [Semi-Bold] [N] H3 子區塊標題 [N]px [Medium] [N] Body 內文 [N]px [Regular] [N] Caption 說明文字 [N]px [Regular] [N] 3. 資訊架構(Information Architecture) 3.1 導航結構(Sitemap) [系統名稱] ├── 首頁 Dashboard ├── 模組 A │ ├── 功能 A-1 │ ├── 功能 A-2 │ └── 功能 A-3 ├── 模組 B │ ├── 功能 B-1 │ └── 功能 B-2 ├── 系統設定 │ ├── 個人設定 │ └── 管理設定(Admin only) └── 說明 / Help 3.2 角色與功能對應 角色 可見模組 可執行操作 [角色 A] [模組清單] [CRUD 權限] [角色 B] [模組清單] [CRUD 權限] 4. 畫面流程(UI Flow) graph TD A[進入點/登入] --> B{角色判斷} B -->|角色A| C[Dashboard A] B -->|角色B| D[Dashboard B] C --> E[功能頁 1] E --> F[表單填寫] F --> G{驗證} G -->|成功| H[成功回饋] G -->|失敗| I[錯誤提示] --> F 5. 畫面規格(Screen Specification) Screen-[NNN]: [畫面名稱] 項目 內容 畫面 ID SCR-[NNN] 畫面名稱 [中英文名稱] URL Path [/path/to/page] 對應 Use Case UC-[NNN] 角色權限 [可存取的角色] 進入條件 [如何到達此頁面] 畫面佈局(Layout): ...

May 18, 2026 · 4 min · 766 words · Eric Cheng

基礎設施架構設計文件範本(Infrastructure Architecture Document Template)

基礎設施架構設計文件範本(Infrastructure Architecture Document Template) 適用標準:ISO/IEC/IEEE 42010:2022(架構描述)、TOGAF ADM、C4 Model、ISO/IEC 27001:2022(資安) 適用階段:系統設計階段(Design Phase) 負責角色:系統架構師(SA)、基礎設施工程師(Infra Engineer)、雲端架構師 📑 章節目錄 文件資訊 架構設計目標與約束 系統架構總覽 網路架構設計 運算資源配置 儲存與資料庫架構 高可用與災難復原設計 安全架構設計 監控與可觀測性架構 CI/CD 部署架構 容量規劃與擴展策略 環境規劃 附錄 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 基礎設施架構設計文件 文件編號 [專案代碼]-IAD-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 最後更新 [YYYY-MM-DD] 撰寫者 [架構師姓名] 審核者 [技術主管] 核准者 [專案經理 / CTO] 版本歷程 版本 日期 修改人 修改內容 v1.0 [YYYY-MM-DD] [姓名] 初版發布 關聯文件 文件名稱 文件編號 關係 系統架構文件(SAD) [編號] 邏輯架構來源 非功能性需求規格 [編號] NFR 輸入 安全需求清單 [編號] 安全設計依據 資料庫設計文件 [編號] 資料層設計 2. 架構設計目標與約束 2.1 設計目標 品質屬性 目標 衡量指標 可用性(Availability) [目標 SLA %] Uptime ≥ [N]% 效能(Performance) [回應時間目標] P95 < [N]ms, TPS ≥ [N] 延展性(Scalability) [擴展能力] 支援 [N] 並發用戶 安全性(Security) [合規要求] 符合 [法規/標準] 可維護性(Maintainability) [維護便利性] MTTR < [N] min 成本效益(Cost) [預算限制] 月費 < [N] USD 2.2 設計約束 約束類型 約束內容 來源 技術約束 [指定雲端平台 / 技術堆疊] [組織政策] 法規約束 [資料落地區域 / 合規要求] [法規名稱] 預算約束 [月度/年度預算上限] [專案預算] 時程約束 [上線日期限制] [專案時程] 組織約束 [現有團隊技能 / 維運能量] [人力限制] 2.3 架構決策記錄(ADR) ADR# 決策標題 狀態 日期 ADR-001 [選用 Kubernetes 作為容器編排平台] Accepted [YYYY-MM-DD] ADR-002 [採用 Multi-AZ 部署策略] Accepted [YYYY-MM-DD] ADR 格式: ...

May 18, 2026 · 10 min · 2030 words · Eric Cheng

威脅模型範本(Threat Model Template)

威脅模型範本(Threat Model Document) 參照標準:Microsoft STRIDE / OWASP Threat Modeling / ISO/IEC 27005:2022 文件用途:系統性識別、分析、評估與處置系統面臨的安全威脅 適用階段:系統設計階段(Design Phase)— Security by Design 📋 章節目錄 文件資訊 系統概述 資料流程圖(DFD) 信任邊界識別 STRIDE 威脅分析 威脅風險評估 緩解措施 殘餘風險 威脅追溯矩陣 附錄 1. 文件資訊 📝 範本 項目 內容 文件編號 TM-{專案代碼}-{序號} 文件名稱 {系統名稱} 威脅模型 版本 v{主版本}.{次版本} 狀態 草稿 / 審核中 / 核定 建立日期 {YYYY-MM-DD} 撰寫者 {姓名/角色} 資安審核者 {資安人員姓名} 威脅建模方法 STRIDE / PASTA / LINDDUN 分析範圍 {描述分析涵蓋的系統邊界} 📖 使用說明 威脅模型在架構設計完成後、開發實作前進行 建議組成跨功能團隊:架構師 + 資安人員 + 開發者 + QA STRIDE 是微軟提出的分類法,覆蓋六大威脅類型 本文件需與安全需求清單(SecurityRequirements)互相參照 💡 範例 項目 內容 文件編號 TM-HRM-001 系統名稱 人力資源管理系統(HRMS) 威脅建模方法 STRIDE 分析範圍 Web 前端、API Gateway、微服務層、資料庫層、外部整合(AD/Email) 2. 系統概述 📝 範本 2.1 系統架構摘要 元件 技術 角色描述 {元件名稱} {技術/框架} {職責說明} 2.2 資產識別 資產 ID 資產名稱 資產類型 敏感等級 擁有者 ASSET-{xxx} {名稱} 資料/服務/基礎設施 高/中/低 {團隊} 📖 使用說明 系統架構摘要提供技術棧全貌,協助識別攻擊面 資產識別需列出需保護的有價值目標(攻擊者感興趣的) 資產敏感等級決定威脅分析的優先順序 💡 範例 2.1 系統架構摘要 元件 技術 角色描述 Web SPA React 18 + TypeScript 使用者介面 API Gateway Kong 3.x 請求路由、速率限制、認證 Auth Service .NET 8 + IdentityServer 身分認證與 Token 核發 HR Core Service .NET 8 Web API 員工/薪資/假勤核心邏輯 PostgreSQL v16 關聯式資料儲存 Redis v7 Session/Cache 快取 Active Directory Windows Server 2022 企業帳號整合 2.2 資產識別 資產 ID 資產名稱 資產類型 敏感等級 擁有者 ASSET-001 員工個資(身分證/地址/緊急聯絡人) 資料 高 HR 部門 ASSET-002 薪資明細(薪資/獎金/扣款) 資料 高 財務部 ASSET-003 認證 Token / Session 資料 高 系統 ASSET-004 API Gateway 服務 中 IT 維運 ASSET-005 資料庫加密金鑰 基礎設施 高 資安團隊 3. 資料流程圖(DFD) 📝 範本 Level 0 - 系統環境圖 外部實體 → [系統邊界] → 外部實體 Level 1 - 子系統分解 DFD 元素 符號 說明 外部實體 矩形 系統範圍外的使用者/系統 處理程序 圓形 系統內部邏輯處理 資料儲存 平行線 資料庫/檔案 資料流 箭頭 資料移動方向 信任邊界 虛線框 安全等級分界 📖 使用說明 DFD 是威脅建模的核心輸入,透過視覺化理解資料流向 Level 0 呈現系統與外部互動全貌 Level 1 展開各子系統,識別每個資料流的信任邊界 建議使用工具:Microsoft Threat Modeling Tool、OWASP Threat Dragon 💡 範例 Level 1 - HRMS 子系統分解 ┌─────────────────── 信任邊界:Internet ───────────────────┐ │ │ │ [員工/主管] ────→ Web SPA (React) │ │ │ └─────────────────────────────────────────────────────────┘ │ HTTPS (JWT) ┌────────────────── 信任邊界:DMZ ────────────────────────┐ │ ▼ │ │ (API Gateway - Kong) │ │ │ │ └───────────────────────────┼──────────────────────────────┘ │ mTLS ┌────────────────── 信任邊界:Internal ───────────────────┐ │ ▼ │ │ (Auth Service) ←── (HR Core Service) │ │ │ │ │ │ ▼ ▼ │ │ [Redis Cache] [PostgreSQL DB] │ │ │ └─────────────────────────────────────────────────────────┘ │ LDAPS ┌────────────────── 信任邊界:Enterprise ─────────────────┐ │ ▼ │ │ [Active Directory] │ │ │ └─────────────────────────────────────────────────────────┘ 4. 信任邊界識別 📝 範本 邊界 ID 邊界名稱 起點 終點 跨越邊界的資料 保護機制 TB-{xxx} {邊界名稱} {元件} {元件} {資料描述} {保護} 📖 使用說明 信任邊界是安全等級不同的兩個區域之間的分界線 跨越信任邊界的資料流是威脅分析的重點(攻擊最可能發生處) 每條跨邊界的資料流都需要相應的保護機制 💡 範例 邊界 ID 邊界名稱 起點 終點 跨越邊界的資料 保護機制 TB-001 Internet → DMZ Web SPA API Gateway HTTP 請求 + JWT TLS 1.3、WAF、Rate Limit TB-002 DMZ → Internal API Gateway HR Core Service API 呼叫 + 使用者上下文 mTLS、服務網格 TB-003 Internal → DB HR Core Service PostgreSQL SQL 查詢 + 個資 連線加密、最小權限 TB-004 Internal → Enterprise Auth Service Active Directory LDAP 認證請求 LDAPS (636 port) 5. STRIDE 威脅分析 📝 範本 STRIDE 分類說明 類型 英文 說明 違反的安全屬性 S Spoofing 身份冒充 認證(Authentication) T Tampering 資料竄改 完整性(Integrity) R Repudiation 否認行為 不可否認性(Non-Repudiation) I Information Disclosure 資訊洩露 機密性(Confidentiality) D Denial of Service 阻斷服務 可用性(Availability) E Elevation of Privilege 權限提升 授權(Authorization) 威脅列表 威脅 ID STRIDE 目標元件 威脅描述 攻擊場景 THR-{xxx} S/T/R/I/D/E {元件} {威脅描述} {攻擊者如何利用} 📖 使用說明 逐一對每個 DFD 元素(處理程序、資料儲存、資料流)套用 STRIDE 外部實體通常只分析 S(Spoofing)和 R(Repudiation) 資料儲存通常分析 T、I、D 處理程序所有 STRIDE 類型都適用 每個威脅需具體描述攻擊場景(非泛泛而談) 💡 範例 威脅 ID STRIDE 目標元件 威脅描述 攻擊場景 THR-001 S API Gateway 偽造 JWT Token 冒充合法使用者 攻擊者取得 JWT Secret 或使用弱演算法偽造 Token THR-002 T HR Core Service 竄改薪資計算邏輯 內部人員修改薪資計算 API 參數,增加自己薪資 THR-003 R HR Core Service 管理員否認執行薪資調整操作 管理員調整薪資後聲稱未進行此操作 THR-004 I PostgreSQL 員工個資大量外洩 SQL Injection 或未加密備份遭竊 THR-005 D API Gateway DDoS 癱瘓打卡/請假功能 攻擊者以大量請求衝擊 API Gateway THR-006 E Auth Service 一般員工提升至 Admin 權限 利用 IDOR 漏洞修改角色欄位 THR-007 I Redis Cache Session 資料從快取洩露 未加密的 Redis 連線被中間人竊聽 THR-008 S Active Directory 暴力破解 AD 帳號密碼 對 LDAP 認證端點進行字典攻擊 6. 威脅風險評估 📝 範本 風險評分標準(DREAD 或自訂) 評分維度 1(低) 2(中) 3(高) 影響程度(Impact) 非敏感資料 部分敏感資料 核心/大量敏感資料 發生可能性(Likelihood) 需高階技術+內部存取 中等技術+外部存取 低門檻+自動化工具 可利用性(Exploitability) 無公開漏洞 有概念驗證 有公開利用工具 風險評估結果 威脅 ID 影響 可能性 可利用性 總分 風險等級 THR-{xxx} {1-3} {1-3} {1-3} {N} 高/中/低 📖 使用說明 風險等級 = 影響 × 可能性 × 可利用性(或加總取平均) 高風險(7-9分):必須在上線前處置 中風險(4-6分):計畫性處理,可接受短期風險 低風險(1-3分):記錄並持續監控 風險評估結果決定緩解措施的優先順序 💡 範例 威脅 ID 影響 可能性 可利用性 總分 風險等級 THR-001 3 2 2 7 高 THR-002 3 1 1 5 中 THR-003 2 2 3 7 高 THR-004 3 2 3 8 高 THR-005 2 3 3 8 高 THR-006 3 2 2 7 高 THR-007 2 1 2 5 中 THR-008 3 2 3 8 高 7. 緩解措施 📝 範本 威脅 ID 緩解措施 對應安全需求 實作方式 負責人 狀態 THR-{xxx} {緩解描述} SEC-{xxx} {技術/流程手段} {人員} 未開始/進行中/完成 📖 使用說明 每個高/中風險威脅都需要對應的緩解措施 緩解策略分為四種: 消除:重新設計,完全移除威脅(最佳) 緩解:降低影響或可能性(最常見) 轉移:轉移風險給第三方(保險/外包) 接受:記錄風險,不處理(需管理層核准) 緩解措施需連結到安全需求清單(SecurityRequirements)中的具體需求 💡 範例 威脅 ID 緩解措施 對應安全需求 實作方式 負責人 狀態 THR-001 使用 RS256 非對稱簽章 + 短效 Token SEC-AUTH-006 JWT RS256 + 15min Expiry 後端組 完成 THR-003 所有薪資操作記錄不可竄改稽核日誌 SEC-LOG-001, SEC-LOG-004 Append-only audit log + 時間戳簽章 後端組 進行中 THR-004 個資欄位加密 + 參數化查詢 + WAF SEC-DATA-001, SEC-INPUT-002 AES-256 + EF Core parameterized + ModSecurity 全端 完成 THR-005 API Rate Limiting + CDN + Auto-scaling SEC-INPUT-005 Kong rate-limit plugin (100 req/min) + Azure CDN DevOps 完成 THR-006 伺服器端角色驗證 + 單元測試覆蓋 SEC-AUTHZ-001, SEC-AUTHZ-003 [Authorize(Roles=“Admin”)] + IDOR 防護 後端組 完成 THR-008 帳號鎖定 + MFA + IP 白名單 SEC-AUTH-002, SEC-AUTH-003 AD 帳號鎖定策略 + Azure MFA IT 維運 進行中 8. 殘餘風險 📝 範本 威脅 ID 殘餘風險描述 緩解後風險等級 接受理由 核准者 核准日期 THR-{xxx} {緩解後仍存在的風險} 高/中/低 {為何可接受} {管理層} {日期} 📖 使用說明 殘餘風險 = 實施緩解措施後仍無法完全消除的風險 所有殘餘風險需經管理層正式核准(Risk Acceptance) 殘餘風險需定期重新評估(至少每季度) 高殘餘風險應有補償性控制措施 💡 範例 威脅 ID 殘餘風險描述 緩解後風險等級 接受理由 核准者 核准日期 THR-005 DDoS 超過 CDN 容量時仍可能影響可用性 低 CDN 已可承受 99% 場景,剩餘機率極低 CTO 2026-05-15 THR-007 Redis 若被直接存取仍可讀取 Session 低 Redis 位於 VPC 內網,無外部可達性 資安主管 2026-05-15 9. 威脅追溯矩陣 📝 範本 威脅 ID DFD 元素 信任邊界 安全需求 緩解措施 測試案例 THR-{xxx} {元件} TB-{xxx} SEC-{xxx} {緩解} TC-{xxx} 📖 使用說明 追溯矩陣確保每個威脅都能向前追溯到架構元素、向後追溯到測試案例 完整鏈路:DFD 元素 → 信任邊界 → 威脅 → 安全需求 → 緩解措施 → 測試驗證 若某威脅沒有對應的測試案例,代表測試覆蓋不足 💡 範例 威脅 ID DFD 元素 信任邊界 安全需求 緩解措施 測試案例 THR-001 API Gateway TB-001 SEC-AUTH-006 RS256 + 短效 Token TC-SEC-001: Token 偽造測試 THR-004 PostgreSQL TB-003 SEC-DATA-001, SEC-INPUT-002 加密 + 參數化查詢 TC-SEC-004: SQL Injection Pen Test THR-005 API Gateway TB-001 SEC-INPUT-005 Rate Limiting TC-SEC-005: 壓力測試 + DDoS 模擬 THR-006 Auth Service TB-002 SEC-AUTHZ-001 伺服器端授權 TC-SEC-006: IDOR 測試 10. 附錄 📝 範本 10.1 威脅建模會議記錄 日期 參與者 討論主題 決議 {日期} {姓名,角色} {主題} {決議} 10.2 參考資料 資源 用途 OWASP Threat Modeling Cheat Sheet 威脅建模方法論參考 Microsoft STRIDE per Element 每元素類型適用的 STRIDE 分析 OWASP ASVS 4.0.3 安全需求對照標準 ISO/IEC 27005:2022 風險評估方法論 📖 使用說明 會議記錄保留威脅建模決策的可追溯性 建議威脅模型每個 Sprint 或重大架構變更時更新 工具推薦:Microsoft Threat Modeling Tool (免費)、OWASP Threat Dragon (開源) 💡 範例 10.1 威脅建模會議記錄 日期 參與者 討論主題 決議 2026-04-10 張架構師, 李資安, 王開發 Level 1 DFD 繪製與邊界確認 TB-001~TB-004 確認 2026-04-12 張架構師, 李資安, 陳 QA STRIDE 分析(THR-001~008) 8 個威脅確認,6 個為高風險 2026-04-15 CTO, 資安主管, 張架構師 殘餘風險接受 THR-005, THR-007 殘餘風險核准接受 📌 範本使用注意事項 ...

May 18, 2026 · 6 min · 1071 words · Eric Cheng

安全設計文件範本(Security Design Document Template)

安全設計文件範本(Security Design Document Template) 適用標準:OWASP SAMM 2.0、ISO/IEC 27034(應用安全)、NIST SP 800-53、ISO/IEC 27001:2022 適用階段:系統設計階段(Design Phase) 負責角色:資安架構師、系統架構師(SA)、AppSec 工程師 📑 章節目錄 文件資訊 安全設計目標 身分驗證設計(Authentication) 授權與存取控制(Authorization) 資料保護設計 API 安全設計 Session 管理 輸入驗證與輸出編碼 日誌與稽核設計 安全組態基線 安全測試策略 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 安全設計文件 文件編號 [專案代碼]-SDD-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 撰寫者 [資安架構師] 審核者 [CISO / 資安團隊] 資料分級 [Confidential / Internal] 關聯文件 文件 關係 威脅模型(Threat Model) 風險識別來源 安全需求清單 需求依據 系統架構文件(SAD) 架構背景 2. 安全設計目標 2.1 安全原則 原則 說明 實施方式 Defense in Depth 多層防禦 [每層防護機制] Least Privilege 最小權限 [RBAC + 預設拒絕] Fail Secure 安全失敗 [錯誤處理不暴露資訊] Separation of Duties 職責分離 [設計/部署/維運分離] Zero Trust 零信任 [每次存取都驗證] 2.2 合規需求 法規/標準 適用條款 設計對應 [個資法 / GDPR] [條款] [§5 資料保護] [ISO 27001] [A.8 / A.9] [§3, §4] [OWASP Top 10] [全部] [§6, §8] [PCI DSS] [條款,如適用] [§5] 3. 身分驗證設計(Authentication) 3.1 驗證機制 項目 設計 驗證協定 [OAuth 2.0 + OIDC / SAML 2.0 / Custom] IdP 選擇 [Azure AD / Keycloak / Auth0 / 自建] MFA 策略 [強制 / 條件式 / 僅特權帳號] MFA 方式 [TOTP / SMS / Push / FIDO2] 密碼政策 [長度/複雜度/歷史/鎖定策略] 3.2 密碼儲存 項目 設計 Hash 演算法 [bcrypt / Argon2id / PBKDF2] Cost Factor [rounds / iterations] Salt [Per-user random salt] 3.3 Token 設計 Token 類型 格式 有效期 儲存位置 備註 Access Token [JWT / Opaque] [N min] [Memory / HttpOnly Cookie] Refresh Token [Opaque] [N days] [HttpOnly Secure Cookie] 單次使用 ID Token [JWT] [N min] [Memory] 不傳給後端 API 3.4 驗證流程圖 sequenceDiagram participant U as User participant C as Client App participant IDP as Identity Provider participant API as API Server U->>C: 點擊登入 C->>IDP: Authorization Request (PKCE) IDP->>U: 顯示登入頁面 U->>IDP: 輸入帳號/密碼 + MFA IDP->>C: Authorization Code C->>IDP: Token Exchange (code + code_verifier) IDP->>C: Access Token + Refresh Token + ID Token C->>API: API Request + Access Token (Bearer) API->>API: Validate Token (signature + claims) API->>C: Response 4. 授權與存取控制(Authorization) 4.1 存取控制模型 項目 設計 模型 [RBAC / ABAC / ReBAC / 混合] 角色層級 [平面 / 階層式] 權限粒度 [功能級 / 資料級 / 欄位級] 4.2 角色定義 角色 ID 角色名稱 說明 預設權限 [ROLE_ID] [名稱] [角色描述] [權限摘要] 4.3 權限矩陣 功能/資源 [角色A] [角色B] [角色C] [Admin] [功能1] R CRUD R CRUD [功能2] — R CRUD CRUD [功能3] RU (own) RU (dept) CRUD CRUD 4.4 資料級權限 規則 描述 實施方式 Row-Level Security [使用者只能看自己的資料] [DB RLS / Application Filter] Column-Level Security [敏感欄位依角色遮罩] [View / API 過濾] 部門隔離 [只能存取所屬部門資料] [tenant_id / dept_id filter] 5. 資料保護設計 5.1 加密策略 場景 方法 演算法 金鑰管理 傳輸中(In Transit) TLS [TLS 1.3 / 1.2] [憑證管理方式] 靜態儲存(At Rest) [TDE / Application-level] [AES-256-GCM] [KMS / Vault] 欄位加密 Application-level [AES-256-GCM] [KMS / Vault] 備份加密 File-level [AES-256] [KMS] 5.2 金鑰管理 項目 設計 KMS 工具 [AWS KMS / Azure Key Vault / HashiCorp Vault] 金鑰輪換 [每 N 天自動輪換] 金鑰存取控制 [IAM Policy / RBAC] 金鑰備份 [異地備份策略] 5.3 個資處理 個資欄位 蒐集目的 保留期限 匿名化方式 刪除策略 [欄位] [用途] [N 年] [Masking / Hashing / Tokenization] [Hard delete / Crypto-shred] 6. API 安全設計 6.1 API 認證授權 項目 設計 認證方式 [Bearer Token (JWT) / API Key / mTLS] 授權檢查點 [API Gateway / Application / Both] Scope/Permission [resource:action 格式] 6.2 API 防護 防護措施 設計 工具 Rate Limiting [N requests / minute per user] [API Gateway / Redis] Request Size Limit [N MB] [Nginx / Gateway] IP Whitelist(如適用) [特定 API 限制來源 IP] [WAF / NSG] CORS [Allowed origins 清單] [Application config] API Versioning [URL path / Header] [設計規範] 6.3 OWASP API Security Top 10 對策 風險 對策 Broken Object Level Authorization [每次存取驗證資源所有權] Broken Authentication [Token 正確驗證 + MFA] Broken Object Property Level Authorization [回應過濾敏感欄位] Unrestricted Resource Consumption [Rate limit + pagination] Broken Function Level Authorization [角色權限矩陣嚴格檢查] Server Side Request Forgery [禁止 URL 參數直接存取內部資源] Security Misconfiguration [安全組態基線檢核] Lack of Protection from Automated Threats [Bot detection + CAPTCHA] 7. Session 管理 項目 設計 Session 機制 [Stateless (JWT) / Stateful (Server-side)] Session 有效期 [Idle: N min / Absolute: N hr] Session 儲存 [Redis / Database / Memory] Cookie 設定 HttpOnly, Secure, SameSite=Strict, Path=/ 並行 Session [允許 N 個裝置 / 新登入踢出舊 Session] Session Fixation 防護 [登入後重新產生 Session ID] 登出機制 [清除 Token + Server-side invalidation] 8. 輸入驗證與輸出編碼 8.1 輸入驗證策略 驗證層 位置 方式 Client-side 前端 UI 即時驗證(UX 用途,非安全邊界) Server-side API Controller 必須:Whitelist 驗證 + Schema validation Database DB Layer 型別約束 + Check constraints 8.2 常見攻擊防護 攻擊類型 防護措施 SQL Injection Parameterized queries / ORM XSS Output encoding (context-aware) + CSP CSRF SameSite cookie + CSRF token (if needed) Path Traversal 白名單驗證路徑,禁止 ../ XXE 停用 external entity parsing Deserialization 不接受不信任的序列化資料 8.3 Content Security Policy Content-Security-Policy: default-src 'self'; script-src 'self' [trusted CDN]; style-src 'self' 'unsafe-inline'; img-src 'self' data: [image CDN]; connect-src 'self' [API domain]; frame-ancestors 'none'; base-uri 'self'; form-action 'self'; 9. 日誌與稽核設計 9.1 安全事件日誌 事件類型 記錄內容 儲存位置 保留期 登入成功/失敗 UserID, IP, Timestamp, UserAgent [SIEM / Log store] [N 年] 權限變更 Who, What, When, Previous/New value [Audit DB] [N 年] 資料存取 UserID, Resource, Action, Timestamp [Audit DB] [N 年] 敏感操作 [詳細描述] [Audit DB] [N 年] 9.2 日誌安全 項目 設計 日誌不得包含 密碼、Token、PII 明碼、信用卡號 日誌完整性 [HMAC / Append-only storage] 日誌存取控制 [僅 Security Team + Auditor 可存取] 竄改偵測 [Hash chain / WORM storage] 10. 安全組態基線 10.1 HTTP Security Headers Header 值 說明 Strict-Transport-Security max-age=31536000; includeSubDomains HSTS X-Content-Type-Options nosniff 防 MIME 嗅探 X-Frame-Options DENY 防 Clickjacking X-XSS-Protection 0 由 CSP 取代 Referrer-Policy strict-origin-when-cross-origin Permissions-Policy camera=(), microphone=() 限制瀏覽器功能 10.2 TLS 組態 項目 設計 最低版本 TLS 1.2(建議 TLS 1.3) 允許 Cipher Suites [列出安全的 cipher suites] 憑證類型 [RSA 2048+ / ECDSA P-256+] HSTS Preload [是/否] 11. 安全測試策略 測試類型 工具 頻率 負責人 SAST [SonarQube / Checkmarx / Semgrep] 每次 CI build Dev Team DAST [OWASP ZAP / Burp Suite] 每個 Sprint AppSec SCA [Snyk / Dependabot / OWASP Dep-Check] 每次 CI build Dev Team Penetration Test [外部廠商] [每年/每版本] AppSec Security Review Code Review + Design Review 每個 PR + 每階段 AppSec + Dev 📖 使用說明 各章節填寫指引 章節 填寫時機 負責人 重點說明 §2 安全目標 專案啟動時 資安 對齊合規需求 §3 身分驗證 設計初期 SA/資安 從威脅模型導出需求 §4 授權控制 配合功能設計 SA 權限矩陣需業務確認 §5 資料保護 設計階段 SA/DBA/資安 PII 處理需法務確認 §6 API 安全 API 設計時 SA/FE/BE 配合 API Spec §7-8 Session/驗證 詳細設計 BE 遵循 OWASP 建議 §9 稽核 設計階段 SA/資安 法規保留需求 §10 組態基線 部署前 DevOps/資安 定期掃描驗證 §11 測試策略 開發啟動前 資安/QA 整合至 CI/CD 💡 範例(以 HRMS 人力資源管理系統為例) 範例:角色與權限矩陣 功能 員工 主管 HR 系統管理員 查看個人資料 R (own) R (dept) R (all) R (all) 編輯個人資料 U (partial) — U (all) U (all) 申請請假 CRU (own) CRU (own) CRUD (all) CRUD (all) 審核請假 — U (dept) U (all) U (all) 查看薪資 R (own) — R (all) R (all) 管理員工 — — CRUD CRUD 系統設定 — — — CRUD 範例:API 安全設計 API Endpoint 認證 授權 Rate Limit 備註 POST /auth/login Public — 5/min per IP 防暴力破解 GET /api/employees/{id} Bearer JWT own or dept_manager or HR 100/min Row-level check POST /api/leave-requests Bearer JWT Employee role 10/min PUT /api/leave-requests/{id}/approve Bearer JWT Manager of requestor 30/min 層級驗證 GET /api/salary/{id} Bearer JWT own or HR 20/min 敏感資料加密回傳 DELETE /api/employees/{id} Bearer JWT Admin only 5/min Soft delete + 稽核 範例:稽核日誌設計 { "timestamp": "2026-04-10T08:30:15.123Z", "event_type": "DATA_ACCESS", "user_id": "EMP-001", "user_role": "HR", "action": "VIEW", "resource": "employee.salary", "resource_id": "EMP-042", "source_ip": "10.0.10.45", "user_agent": "Mozilla/5.0...", "result": "SUCCESS", "metadata": { "fields_accessed": ["base_salary", "bonus"], "reason": "Monthly payroll processing" } } 📌 審閱重點 ...

May 18, 2026 · 6 min · 1157 words · Eric Cheng

資料庫設計文件範本(Database Design Document Template)

資料庫設計文件範本(Database Design Document Template) 適用標準:ISO/IEC 11179(Metadata Registries)、DAMA DMBOK 2.0、ISO/IEC/IEEE 42010:2022 適用階段:系統設計階段(Design Phase) 負責角色:系統架構師(SA)、資料庫管理師(DBA) 📑 章節目錄 文件資訊 資料庫架構概觀 實體關聯模型(ER Diagram) 資料表設計 索引設計策略 資料關聯與完整性約束 命名規範 資料治理與安全 效能設計考量 資料遷移與版本控制 附錄 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 資料庫設計文件 文件編號 [專案代碼]-DBD-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 最後更新 [YYYY-MM-DD] 撰寫者 [SA/DBA 姓名] 審核者 [技術主管/架構師] 核准者 [專案經理] 版本歷程 版本 日期 修改人 修改內容 v1.0 [YYYY-MM-DD] [姓名] 初版發布 關聯文件 文件名稱 文件編號 關係 系統架構文件(SAD) [編號] 上游輸入 功能需求文件(FRD) [編號] 需求來源 API 規格文件 [編號] 介面對應 2. 資料庫架構概觀 2.1 資料庫技術選型 項目 選擇 說明 RDBMS [PostgreSQL / SQL Server / MySQL] [選型原因] 版本 [版本號] 部署模式 [Single / Primary-Replica / Cluster] [HA 需求] 字元集 [UTF-8 / UTF-16] 排序規則 [Collation] 2.2 資料庫實例配置 實例名稱 用途 主機 連接埠 備註 [DB_MAIN] 主要業務資料 [hostname] [port] Primary [DB_READ] 讀取副本 [hostname] [port] Read Replica [DB_ARCHIVE] 歷史資料歸檔 [hostname] [port] Archive 2.3 Schema 架構 [Database] ├── schema: core -- 核心業務資料表 ├── schema: auth -- 認證授權相關 ├── schema: audit -- 稽核軌跡 ├── schema: staging -- ETL 暫存區 └── schema: archive -- 歷史歸檔 3. 實體關聯模型(ER Diagram) 3.1 概念層 ERD(Conceptual ER Diagram) 呈現主要實體(Entity)之間的高階關係,不含欄位細節。 ...

May 18, 2026 · 8 min · 1702 words · Eric Cheng

非功能性需求設計規格範本(NFR Design Specification Template)

非功能性需求設計規格範本(NFR Design Specification Template) 適用標準:ISO/IEC 25010:2023(SQuaRE - 系統與軟體品質模型)、ISO/IEC/IEEE 29148:2018 適用階段:系統設計階段(Design Phase) 負責角色:系統架構師(SA)、效能工程師、SRE 📑 章節目錄 文件資訊 品質屬性總覽 效能設計(Performance) 可用性設計(Availability) 延展性設計(Scalability) 可靠性設計(Reliability) 可維護性設計(Maintainability) 可觀測性設計(Observability) 安全性設計(Security) 相容性設計(Compatibility) 驗證與測試策略 📝 範本 1. 文件資訊 項目 內容 文件名稱 [系統名稱] 非功能性需求設計規格 文件編號 [專案代碼]-NFR-[版本號] 版本 v[X.Y] 建立日期 [YYYY-MM-DD] 撰寫者 [SA 姓名] 審核者 [技術主管] 2. 品質屬性總覽 依 ISO/IEC 25010:2023 品質模型分類 品質屬性 子特性 目標等級 優先級 驗證方式 效能效率 時間行為、資源利用、容量 [目標] [High/Med/Low] [效能測試] 可用性 成熟度、容錯性、可恢復性 [目標] [High/Med/Low] [HA 測試] 延展性 水平/垂直擴展能力 [目標] [High/Med/Low] [負載測試] 可靠性 容錯、一致性 [目標] [High/Med/Low] [Chaos 測試] 可維護性 模組化、可測試性、可修改性 [目標] [High/Med/Low] [Code Review] 安全性 機密性、完整性、可用性 [目標] [High/Med/Low] [安全測試] 相容性 瀏覽器、裝置、整合 [目標] [High/Med/Low] [相容測試] 3. 效能設計(Performance) 3.1 效能目標 指標 日常目標 尖峰目標 測量方式 回應時間(P50) < [N]ms < [N]ms APM / Load test 回應時間(P95) < [N]ms < [N]ms APM / Load test 回應時間(P99) < [N]ms < [N]ms APM / Load test 吞吐量(TPS) ≥ [N] ≥ [N] Load test 並發用戶 [N] [N] Load test 錯誤率 < [N]% < [N]% Monitoring 3.2 效能設計策略 策略 適用場景 設計方案 快取 [高頻讀取、低頻更新] [快取層級/策略/TTL] 非同步處理 [非即時、耗時任務] [Message Queue + Worker] 連接池 [DB/HTTP 連線] [Pool size + timeout 設定] 分頁查詢 [大量資料列表] [Cursor-based / Offset pagination] 批次處理 [大量寫入] [Batch size + 排程策略] CDN [靜態資源] [CDN provider + cache policy] 3.3 效能預算(Performance Budget) 資源 預算 目前值 狀態 首頁載入(FCP) < [N]s [N]s [✅/⚠️/❌] 最大內容繪製(LCP) < [N]s [N]s [✅/⚠️/❌] 累計版面偏移(CLS) < [N] [N] [✅/⚠️/❌] 互動至下一次繪製(INP) < [N]ms [N]ms [✅/⚠️/❌] JS Bundle Size < [N]KB [N]KB [✅/⚠️/❌] API Response Size < [N]KB (avg) [N]KB [✅/⚠️/❌] 4. 可用性設計(Availability) 4.1 SLA 定義 服務 SLA 目標 允許停機/月 計算方式 [核心服務] [99.9%] [~43.8 min] Uptime / Total time [次要服務] [99.5%] [~3.6 hr] [背景服務] [99.0%] [~7.3 hr] 4.2 高可用設計 元件 HA 模式 Failover 時間 健康檢查 [元件] [Active-Active / Active-Passive / N+1] [N]s [HTTP/TCP/Custom] 4.3 停機策略 停機類型 通知時間 持續時間 影響範圍 核准 計畫性維護 [N 天前] [N hr] [描述] [PM/業務] 緊急修復 [即時] [N hr] [描述] [Tech Lead] 5. 延展性設計(Scalability) 5.1 擴展策略 維度 策略 設計 水平擴展(Scale-Out) [無狀態 + Load Balancer] [Auto-scaling rules] 垂直擴展(Scale-Up) [資料庫 / 特殊運算] [上限與遷移計畫] 資料擴展 [分區 / Sharding] [分區策略] 5.2 容量規劃 時間軸 預估用戶 預估資料量 預估 TPS 對應架構 上線 [N] [N] GB [N] [架構描述] 6 個月 [N] [N] GB [N] [是否需擴展] 1 年 [N] [N] GB [N] [擴展方案] 3 年 [N] [N] GB [N] [重大架構變更?] 6. 可靠性設計(Reliability) 6.1 容錯設計 故障場景 影響 容錯機制 降級方案 [單節點故障] [描述] [自動 failover] [N/A] [DB 連線失敗] [描述] [Circuit Breaker] [顯示快取資料] [外部 API 超時] [描述] [Retry + Timeout] [預設值/離線模式] [整個 AZ 故障] [描述] [Multi-AZ 部署] [部分功能降級] 6.2 Circuit Breaker 設計 服務 Open 條件 Half-Open 條件 Close 條件 Fallback [服務] [N 次失敗 in M 秒] [N 秒後] [N 次成功] [降級方案] 6.3 Retry 策略 場景 最大重試 退避策略 可重試條件 [HTTP call] [N] 次 [Exponential backoff + jitter] [5xx, timeout, network error] [DB operation] [N] 次 [Fixed interval] [Deadlock, connection lost] 7. 可維護性設計(Maintainability) 品質指標 目標 度量方式 程式碼覆蓋率 ≥ [N]% [CI/CD report] 技術債指標 [SQALE ≤ N days] [SonarQube] 模組耦合度 [低耦合] [Architecture fitness test] 部署頻率 [≥ N 次/週] [CI/CD metrics] 修復前置時間 [< N hr] [DORA metrics] 8. 可觀測性設計(Observability) 8.1 三大支柱 支柱 工具 設計 Metrics [Prometheus / CloudWatch] [RED + USE metrics] Logging [ELK / Loki] [Structured JSON, correlation ID] Tracing [Jaeger / Zipkin / OTEL] [Distributed tracing, 100% sampling for errors] 8.2 SLI/SLO 定義 SLI(指標) SLO(目標) 計算方式 告警閾值 Availability [99.9%] successful requests / total requests < 99.8% → Warning Latency (P95) [< 200ms] histogram_quantile(0.95) > 300ms → Warning Error Rate [< 0.1%] 5xx / total requests > 1% → Critical Throughput [≥ N TPS] rate(requests_total[5m]) < N*0.7 → Warning 9. 安全性設計(Security) 詳見安全設計文件(SecurityDesign_Template.md),此處僅摘要 NFR 指標 ...

May 18, 2026 · 5 min · 911 words · Eric Cheng