# 安全邊界設計 (Security Boundary Design) 知識合約指南 ## 概述 `security-boundary-design` 是知識合約,用來提供安全邊界設計的原則與模式。涵蓋 Authentication、Authorization、Service Identity、Token Propagation、Tenant Isolation、Secret Management 與 Audit Logging。供 `design-architecture` 在定義 Security Boundaries 時參考。 ## 核心原則 ### Defense in Depth - 不要依賴單一安全邊界 - 在每一層套用安全:網路、服務、資料、應用 - 假設已被入侵:設計時讓單層被破壞不會導致全盤被破壞 ### Least Privilege - 服務與使用者應該只有最小必要權限 - 預設拒絕:從無權限開始,明確授予 - 定期輪換與過期憑證 ### Zero Trust - 不要預設信任內部網路流量 - 每次服務對服務呼叫都要認證與授權 - 傳輸中資料必須加密,即使在內部網路也是 ## 設計重點 - **Authentication**:Token-based、API Key、Certificate-based、Session-based - **Authorization**:RBAC、ABAC、ACL、ReBAC 的選擇與粒度 - **Service Identity**:Service Accounts、Workload Identity、Service Mesh Identity - **Token Propagation**:Pass-through、Token Exchange、Token Relay、Impersonation - **Tenant Isolation**:Database-level、Schema-level、Row-level、Application-level - **Secret Management**:Environment Variables、Secret Management Service、Platform-native、Configuration Service - **Audit Logging**:認證/授權事件、日誌修改操作、行政動作 ## 知識合約職責 - 提供安全邊界設計的理論指引 - 不直接產生安全配置或憑證管理設定 ## 不應做的事 - 不替系統選擇特定安全技術 - 不定義具體的 RBAC 角色或權限 - 不產生安全設定檔案