實體節點邊界
每筆有效訂單對應一台獨享實體機與一段明確租期。裝置不是共用虛擬機,處理器、記憶體與本機儲存空間不會以多租戶虛擬工作階段的形式分配給其他客戶。
- 邊界物件訂單、裝置、節點、租期
- 核對位置控制台中的執行個體詳細資料
- 客戶操作確認裝置識別碼與租期起訖資訊
每筆訂單對應一台租期明確的獨享實體機,而非虛擬機。ZoomMini 負責實體節點與控制台的運作,客戶負責系統帳戶、應用程式設定、程式碼、機密資訊與備份。邊界清楚,權限才能被稽核與撤銷。
獨享實體機將客戶工作負載置於明確的裝置邊界內,但裝置獨享不代表所有帳戶、遠端入口與應用程式憑證會自動安全。真正可執行的隔離模型由實體層、控制層、系統層與工作負載層共同組成。
每筆有效訂單對應一台獨享實體機與一段明確租期。裝置不是共用虛擬機,處理器、記憶體與本機儲存空間不會以多租戶虛擬工作階段的形式分配給其他客戶。
控制台用於查看裝置狀態與連線資訊;VNC、螢幕共享與 SSH 用於進入系統。控制台工作階段與作業系統工作階段屬於兩個權限面,應分別保護,不應共用弱憑證。
取得遠端位址不應自動擁有全部系統權限。管理員權限、日常開發帳戶、CI runner 與臨時疑難排解帳戶應分開,依工作授予權限,工作完成後立即撤銷。
存取控制的目標不是增加登入步驟,而是讓團隊能回答三個問題:誰曾進入裝置、使用了哪些權限,以及離開專案後是否已失去存取能力。
不要讓多人長期共用同一個系統帳戶。唯一帳戶能將終端機歷史記錄、檔案擁有權、runner 操作與疑難排解記錄連結至明確人員,也能在成員離開團隊時單獨撤銷存取權。
為不同人員與自動化工作使用不同金鑰,記錄金鑰用途與持有人。私鑰只應保存在受控終端機或金鑰系統中,不要透過工單、電子郵件、聊天記錄或程式碼儲存庫傳遞。
日常建置不應持續使用管理員權限。為 CI runner 限定工作目錄、儲存庫範圍與必要指令;需要臨時提升權限時,先確認變更目的,完成後恢復原有權限。
團隊應依內部政策定期輪換系統密碼、SSH 金鑰與儲存庫權杖。發現成員離開團隊、裝置轉交、金鑰外洩或異常登入時,應立即輪換,不要等到例行週期。
刪除不再使用的公開金鑰、帳戶、runner 註冊、遠端桌面儲存項目與自動化工作。只停用人員帳戶卻保留共用權杖,仍會留下難以追查的持續存取路徑。
ZoomMini 提供裝置與遠端入口。客戶決定哪些程式碼、建置產物、測試資料與機密資訊進入裝置,也負責在租期結束前完成驗證、備份與移出。
依工作類型選擇 VNC、螢幕共享或 SSH 進行遠端操作。連線前核對控制台提供的位址與裝置資訊;SSH 首次連線時核對主機指紋,發現變更應先停止連線並調查原因。
儲存庫憑證、簽署材料、部署金鑰與服務權杖由客戶自行管理。優先使用受控金鑰系統依工作注入,設定有效範圍與撤銷途徑,不要將機密資訊寫入版本庫。
提交疑難排解資訊前,移除密碼、私鑰、完整權杖、完整支付憑證與無關個人資料。保留問題時間、指令、錯誤碼與必要脈絡,避免刪除過多而無法重現問題。
在到期時間前移出程式碼、建置產物、日誌與業務資料,並確認備份可讀取。接著撤銷儲存庫權杖、部署憑證與 runner 註冊,刪除不再需要的本機副本。
持續整合環境通常擁有儲存庫讀取、簽署、測試與發布權限。應將這些能力拆分為獨立機密,依流水線階段注入,並確保每項機密都能單獨輪換與撤銷。
權杖只涵蓋所需的儲存庫與操作。僅負責擷取的 runner 不應取得管理權限,臨時工作不應重複使用長期發布權杖。
runner 使用獨立帳戶與工作目錄。依賴快取應可驗證來源,建置腳本避免輸出環境變數與要求標頭中的機密資訊。
簽署憑證與相關私鑰放入受控金鑰系統,僅在需要簽署的工作中注入。工作完成後清理暫存檔案與程序環境。
發布權杖與儲存庫權杖分開,測試流水線不能繼承正式環境發布權限。人員或專案變動時,應能單獨撤銷而不影響其他工作。
檢查建置腳本是否列印環境變數、錯誤處理是否回顯完整指令、快取目錄是否包含憑證檔案,以及產物封存是否意外收錄設定檔。發現機密資訊進入日誌後,不只要刪除日誌,還要輪換對應憑證。
$ git grep -nE "TOKEN|PRIVATE_KEY|PASSWORD" -- .
$ find build/ -type f -name "*.env" -o -name "*.key"
$ security find-identity -v -p codesigning
$ launchctl list | grep runner
檢查結果:
✓ 儲存庫中未發現明文機密
✓ 建置封存未包含憑證檔案
✓ runner 使用獨立系統帳戶
✓ 簽署材料由受控流程注入
ZoomMini 的服務可用率目標為 99.9%。所有節點全年 365 天正常運作;運作記錄按日呈現,事件標記用於提示需要複核的狀態變更,不直接等同於整日無法使用。
若客戶認為服務未達目標,應透過控制台提交工單,提供訂單識別碼、節點、受影響時段、可重現現象與去識別化日誌。符合條件的請求將依服務條款審核,並以服務額度賠付。
查看服務條款與審核口徑疑似帳戶異常、未授權存取或機密外洩時,應避免一邊持續執行高權限工作,一邊等待完整結論。先縮小影響範圍,再保存必要記錄、通知支援團隊並輪換機密資訊。
記錄發現時間、裝置識別碼、節點、異常帳戶、相關程序與受影響工作負載。區分控制台異常、系統帳戶異常、儲存庫權杖異常與應用程式行為異常,避免將不同權限面混為一談。
暫停可疑自動化工作、撤銷異常工作階段、停用相關帳戶或公開金鑰,並限制高風險權杖。不要為了保留現場而讓已知異常存取持續擴大;限制操作本身也要記錄時間與執行人。
保存與事件相關的登入記錄、指令歷史、runner 輸出、程序資訊與錯誤碼。匯出前完成去識別化,不要傳送密碼、私鑰、完整支付憑證或與事件無關的個人資訊。
透過控制台工單或 support@zoommini.com 提交訂單識別碼、節點、發生時間、已執行的限制操作與去識別化日誌。若仍存在持續風險,請在主旨中明確標示「安全事件」,以便快速分流。
依影響範圍輪換系統憑證、SSH 金鑰、儲存庫權杖、runner 金鑰、簽署材料與部署憑證。復原工作前確認舊憑證已失效、新權限符合最低範圍,且異常程序不再存在。
從控制台提交工單,方便將請求與訂單、節點及裝置狀態關聯。
寄送電子郵件至 support@zoommini.com,主旨中註明「安全事件」與訂單識別碼。
清楚的責任邊界能減少疑難排解時的等待與重複確認。實體節點、控制台與裝置交付屬於 ZoomMini 的運作範圍;進入系統後的帳戶、應用程式、程式碼、機密資訊與備份則由客戶控管。
| 控制領域 | ZoomMini 負責 | 客戶負責 | 建議核對項目 |
|---|---|---|---|
| 實體節點 | 裝置與訂單的獨享對應關係、節點基礎運作、控制台中的裝置狀態。 | 依訂單用途使用裝置,並在租期內完成工作負載管理與資料移出。 | 裝置識別碼、節點、租期起訖時間。 |
| 控制台帳戶 | 提供帳戶存取、訂單管理、執行個體狀態與工單入口。 | 保護登入憑證、識別異常存取,並及時更新或撤銷相關權限。 | 近期存取、訂單變更、工單記錄。 |
| 遠端連線 | 在控制台提供對應裝置的連線資訊與狀態說明。 | 核對位址與主機指紋、保護遠端憑證、設定可信任的用戶端。 | 節點、位址、指紋、連線帳戶。 |
| 系統帳戶 | 提供可使用的 macOS 圖形介面與命令列環境。 | 建立唯一帳戶、執行最低權限、輪換憑證、移除離隊成員。 | 帳戶清單、公開金鑰清單、管理員權限。 |
| 應用程式與 CI/CD | 維持實體節點與控制台的服務運作。 | 管理 Xcode、相依套件、runner、腳本、儲存庫權限與發布流程。 | runner 帳戶、工作目錄、權杖範圍。 |
| 程式碼與金鑰 | 不代替客戶決定程式碼與機密資訊的存放、授權及輪換策略。 | 使用受控金鑰系統,避免以明文寫入腳本、儲存庫與日誌。 | 機密用途、範圍、持有人、撤銷方式。 |
| 日誌與支援 | 根據工單資訊調查實體節點與控制台相關問題。 | 提交準確時間、重現步驟與去識別化日誌,不要傳送機密資訊。 | 錯誤碼、版本、時間線、已執行操作。 |
| 備份與移出 | 在控制台呈現訂單與裝置的租期資訊。 | 制定備份策略、驗證可復原性,並在租期結束前移出資料。 | 備份完整性、復原測試、權杖撤銷。 |
訂單對應的獨享實體機、節點基礎運作、裝置狀態、訂單管理入口與支援工單處理。
作業系統權限、遠端憑證、應用程式設定、程式碼、金鑰、建置流水線、日誌去識別化、備份與移出。
客戶提供訂單、節點、時間線與去識別化日誌;ZoomMini 依邊界定位基礎設施狀態,雙方分別完成各自權限面的驗證。
選擇合適的機型與租期後,依唯一帳戶、SSH 金鑰、最低權限、受控金鑰注入與到期移出清單設定環境。