AWSのAPIコールをCloudTrailで記録し、CloudWatch Logsで保管している。
短期の履歴を検索する場合はCloudTrailが簡単だが、1週間以上前の履歴や詳細検索などしたい場合はCloudWatch Logsから検索している。
CloudWatch Logsの検索はフィルタの構文を使う必要があり、検索しづらい。
そこでよく使っている検索フィルタパターンを列挙してみる。
イベント名指定
例) EC2インスタンス起動のイベントを指定する場合
{ $.eventName = "StartInstances" }
イベントソース指定
例) EC2に関するリソースを指定する場合
{ $.eventSource = "ec2.amazonaws.com" }
ユーザを指定
特定のユーザが何をしたかを調べたいときに使う。
{ $.userIdentity.userName = "<ユーザ名>" }
アクセス元IPアドレスを指定
どこからのIPアドレスから操作しているかを調べたい時に使う。
{ $.sourceIPAddress = "xxx.xxx.xxx.xxx" }
マネジメントコンソールへのログイン失敗
{ $.responseElements.ConsoleLogin = "Failure" }
インスタンスID指定
{ $.requestParameters.filterSet.items[0].valueSet.items[0].value = "i-xxxxxxxx" }