這份是為你準備的第 21 天草稿!延續前面的技術實作風格,今天我們要把焦點放在資安維運的「生命週期管理(Lifecycle Management)」。
這篇實作會帶入資料封存與備份的觀念,這在真實企業中對於符合稽核規範(如 ISO 27001 要求日誌需保存特定期限)非常重要。
你可以直接複製這篇內容發布:
大家好!歡迎來到鐵人賽第二十一天。
在昨天的實作中,我們完成了「日常資安巡檢」的自動化,讓系統每天早上主動回報伺服器的健康狀態。隨著我們的 SOAR 系統穩定運作,Wazuh 告警與 Day 17 建立的 Google Sheets 資安工單將會快速累積。
在企業實務與資安稽核規範(如 ISO 27001)中,資安事件的日誌通常被要求必須保存 6 個月到 1 年以上。然而,如果把所有歷史紀錄都一直堆積在正在運作的工單表或主要資料庫中,不僅會拖慢系統效能,也不利於管理。
因此,今天我們要實作「資安日誌自動封存(Log Archiving)」。我們將透過 n8n,在每個月底自動把 Google Sheets 裡「已結案」的工單撈出來,轉換成 CSV 檔案,並自動備份到 Google Drive 雲端硬碟中妥善保存。
我們希望 n8n 在每個月的 1 號執行以下任務:
✅ 已完成修補 或 ✅ 已完成聯防封鎖 的結案工單。.csv 檔案。在 n8n 中建立一個全新的工作流(Workflow)。
加入一個 Schedule Trigger 節點:
Months(每個月)。02:00(避開白天系統繁忙時段)。這個觸發器會成為我們定期執行封存任務的發條。
接著,我們要去 Google Sheets 把資料撈出來。
Read Rows(讀取資料)。Status 包含 ✅ 已完成。這樣一來,我們就成功把需要歸檔的歷史資料全部提取出來了。
n8n 節點之間傳遞的資料格式是 JSON,為了方便未來的稽核人員透過 Excel 開啟與查閱,我們需要將它轉換為 CSV 格式。
To File(將資料轉換成檔案)。CSV。data(這代表轉換後的二進位檔案會存放在這個變數名稱中)。執行過這個節點後,原本結構化的 JSON 數據,就會被瞬間打包成一個實體的 CSV 檔案。
有了實體檔案後,我們要把它傳送到安全的雲端空間存放。
Upload(上傳檔案)。SecOps_Archive_{{ $now.minus({months: 1}).toFormat('yyyy-MM') }}.csvSecOps_Archive_2026-09.csv 這樣帶有月份的檔名)
data。最後,我們一樣要讓團隊知道備份任務已經順利完成。
新增一個 LINE HTTP Request 節點:
POST
[https://api.line.me/v2/bot/message/push](https://api.line.me/v2/bot/message/push)
{
"to": "你的_LINE_群組_ID",
"messages": [
{
"type": "text",
"text": "🗄️ 【系統通知】上月份資安工單已自動封存\n\n備份檔案已成功上傳至 Google Drive 安全存放區。確保符合資安日誌保存規範!"
}
]
}
將今天的節點串接起來,我們的封存自動化管線如下:
Schedule Trigger (每月 1 號凌晨觸發)
↓
Google Sheets (讀取歷史結案工單)
↓
Filter (篩選出已完成的紀錄)
↓
Spreadsheet File (將資料轉為 CSV 實體檔案)
↓
Google Drive (上傳 CSV 檔案至雲端硬碟)
↓
LINE 通知 (發送封存成功訊息)
你可以點擊 Test Workflow 進行測試。當你在 Google Drive 資料夾中看到名為 SecOps_Archive_2026-XX.csv 的檔案成功出現,且打開後裡面的欄位整整齊齊時,就代表實作大功告成了!
今天我們將 SOAR 系統的拼圖擴展到了「資料生命週期管理」。
在真實企業中,很多時候「保存證據」跟「防禦攻擊」是一樣重要的。透過 n8n,我們不僅省下了每個月手動匯出資料、上傳備份的繁瑣人工時間,更確保了資安維運的流程符合稽核標準,不會因為人為疏失而遺失重要的歷史威脅情報。
明天(Day 22),我們將轉換一下防禦的視角。除了伺服器漏洞與網路攻擊,企業最常遇到的資安破口其實是「社交工程(Phishing)」。我們將實作如何讓 n8n 自動接收員工回報的可疑郵件,並透過 AI 進行釣魚信件分析。我們明天見!