[RCA] 07/18 誤發緊急地震速報的原因分析
· 3 min read
嚴重程度嚴重
狀態已結案
事件概述
- 發生時間: 2026/07/18 08:29 (UTC+8) 左右
- 觸發條件: 服務重構測試過程中
- 問題描述: 誤發緊急地震速報
- 根本原因: NATS 權限管理不當,測試電文被廣播至生產環境
時間軸
| 時間 (UTC+8) | 事件 |
|---|---|
| 2026/07/18 08:29 | 問題發生:誤發緊急地震速報 |
| 2026/07/18 08:30 | 確認問題並開始進行修復 |
| 2026/07/18 08:31 | 執行緊急處理,阻斷問題電文 |
事件經過
07/18 早上進行 cwa-xml-go 的重構作業,目的是將 cwa-xml-go 與 cwa-eew-go 兩個服務合併(見下圖),以降低系統複雜度並減少處理延遲。
重構完成後進入測試階段時,測試用的電文意外洩漏至生產環境,最終導致誤發緊急地震速報。
根本原因分析
問題根源
系統採用 NATS 作為訊息傳遞的骨幹,並透過 NATS Supercluster 在不同機房間同步電文,以達到異地雙活備援的目的。
由於 NATS 的權限管理設定不當,測試機所產生的測試電文,透過 NATS Supercluster 被廣播至生產環境,被下游服務當作正式電文處理,進而觸發緊急地震速報。
問題說明
- 測試機與生產環境共用同一組 NATS Supercluster
- 測試機的發布權限未受限制,可將電文推送至生產環境所訂閱的 subject
- 下游服務無法區分電文來源,將測試電文視為正式電文處理
- 最終導致誤發緊急地震速報
解決方案
- 加強 NATS 權限管理: 限制測試機的發布權限,避免測試電文流入生產環境所訂閱的 subject
- 隔離測試與生產環境: 明確劃分測試與生產環境的訊息通道,防止跨環境的電文污染
- 全面盤點: 檢視其餘服務是否存在相同的權限風險,並一併修正
心得
這是一個相當低級的疏失。雖然此次事件間接驗證了異地雙活備援機制的可靠性,但也直接導致了誤發緊急地震速報,對於造成大家的不便,我們深感抱歉,並將以此為戒加強環境隔離與權限控管。
