タダです。
CloudTrailのログを見る機会があり、JSONの内容の中でも必要な情報だけ抜き出したいと思ってjqを使いました。
jqはJSONを整形するツールです。
jq
CloufTrailは、AWSのAPIの全操作(マネジメントコンソールログインから)を記録しているためログサービスとしてとても有効です。
CloudTrailではJSONでログがS3に出力されているのですが、内容も膨大なので整形すると見やすくなります。
AWS CloudTrail (AWS API の呼び出し記録とログファイル送信) | AWS
ログを分析する
予め、対象のログをダウンロードしておきます。
例えば、EC2の操作ログを分析したい時は次のように実行しました。
echo 'eventTime|awsRegion|eventSource|eventName|userName|sourceIPAddress|userAgent|requestParameters|userIdentity' > OUTFILE.tsv find . -name "*.json.gz" | xargs gunzip -c | jq '.Records[] | select(contains({eventSource:"ec2.amazonaws.com"}))' | jq -r '"\(.eventTime) \(.awsRegion) \(.eventSource) \(.eventName) \(.userName) \(.sourceIPAddress) \(.requestParameters) \(.userIdentity)"' >> OUTFILE.tsv
TSVファイルで出力していますが、エクセルで開くことができますので、出力後確認してみてください。
各パラメータの意味は以下の通りです。
項目名 | 説明 |
---|---|
eventTime | イベントが発生した日時(UTC) |
awsRegion | イベントが発生したリージョン |
eventSource | イベントが発生したサービス。EC2だと、ec2.amazonaws.comになる。 |
eventName | イベント名 |
userName | アカウント名 |
sourceIPAddress | リクエスト元IPアドレス |
requestParameters | ブラウザの情報や携帯端末の機種情報 |
userIdentity | 送信されたリクエストパラメータ |