運用 CloudTrail 的 Logs 建立 CloudWatch 警示,並送出安全性通知
AWS CloudWatch 可即時監控帳號使用的 AWS 資源及在 AWS 上執行的應用程式。透過你建立的監控指標,CloudWatch 在超過閾值時傳送通知,或自動變更監控得資源。例如:透過監控 EC2 CPU 的用量和 EC2 磁碟的讀取和寫入,以判斷應該啟動其他的 EC2 處理增加的量,也可以透過監控來停止沒有在使用的 EC2 來節省成本。
透過 CloudWatch 以及自訂 Filter 設定,你可以獲得系統全面資源的使用率、應用程式效能和運作狀態。
情境架構
透過這個 lab ,你會學到如何將 CloudWatch 收到的 logs 做篩選並且設定 CloudWatch 的 Alarm 來做警示,並且運用 AWS SNS 的功能來通知帳戶使用者。
建置過程
傳送事件到 CloudWatch Logs
設定你的 Trail 紀錄事件 log,讓 CloudTrail 把 Logs 傳到 CloudWatch 的 log group。
如果沒有的話,可以參考 傳送事件到CloudWatch logs 。
建立 CloudWatch Alarm
- 在 Filter pattern 中,輸入資訊如下並 Assign Metric 。
- 你可以選擇做一個或兩個都做。(本篇文章以 Console Sign in Failures 為例)
- 以 Console Sign-In Failures 為例。
- { ($.eventName = ConsoleLogin) && ($.errorMessage = “Failed authentication”) }
- 以 Authorization Failures 為例。
- { ($.errorCode = “ UnauthorizedOperation”) || ($.errorCode = “AccessDenied “) }
- 輸入以下資訊並 Create Filter 。
- Filter 名稱 :
CloudWatchAlarmsForCloudTrail-function
> 推薦使用自己的 function 名稱 取代 function。 - Metric Namespace : CloudTrailMetrics
- Metric 名稱 :
Function
> 例如: ConsoleSignInFailureCount, AuthorizationFailureCount...等等。
建立一個 Alarm 並使用 AWS SNS 通知使用者
將 CloudWatch Alarm 和 SNS 結合,可以透過通知來知道帳號的活動狀況。
測試
補充
CloudTrail 日誌事件指標篩選條件和模式之語法的詳細資訊,參閱 Amazon CloudWatch Logs User Guide 中的 篩選條件和模式語法 。
AWS 同時也有提供相關的模板給使用者使用。你可以透過 AWS CloudFormation 同時建置很多不同的 Alarm,參考 使用範本建立警示 ,並根據自己的需求做適當的修改,做出最適合自己的 Alarm。
結論
你已經學到如何把 CloudTrail 的 log 傳送給 CloudWatch,並且運用 CloudWatch 的 filter 去讀取資料。當你發現帳戶有危險時,可以使用 AWS SNS 通知使用者。
參考網址
Originally published at https://www.ecloudture.com on September 7, 2021.