運用 CloudTrail 的 Logs 建立 CloudWatch 警示,並送出安全性通知

Cpchin
eCloudture
Published in
4 min readSep 7, 2021

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.

--

--