[アップデート] CloudWatch EventsのターゲットとしてCloudWatch Logsがサポートされました!

こんにちは、中川です。

CloudWatch Eventsのターゲットとして、CloudWatch Logsがサポートされました。

Amazon CloudWatch Events Now Supports Amazon CloudWatch Logs as a Target and Tagging of CloudWatch Events Rules

例えばこの機能を使うことで、EC2が終了したときのインスタンスの情報や、GuardDutyのイベントをCloudWatch Logsにログとして残すことができます。
早速、この機能を使って、GuardDutyのログを残す手順をやってみたいと思います。

やってみた

CloudWatch Eventsルールを作成

マネージメントコンソールで [CloudWatch] -> [イベント] -> [ルールの作成] を選択します。

今回はGuardDutyで重要度:高のFindingをイベントを条件とするので、カスタムイベントパターン使用します。
イベントソースを選択する画面で、[編集]をクリックします。

以下のjsonを貼り付け、[保存]を選択します。

{
  "source": [
    "aws.guardduty"
  ],
  "detail-type": [
    "GuardDuty Finding"
  ],
  "detail" : {
    "severity": [ 8 ]
  }
}
  • 重要度:高は、ドキュメント上で「seveityが7.0〜8.9」と記載されていますが、今回は検証のため8のみを指定しています。

次に、ターゲットを設定します。
[ターゲットの追加]を選択すると、プルダウンから「ロググループ」を選択できるようになっています。

グループ名を"guardduty"と設定します。今回は、AWSで予約されたプレフィックスを使用しておりますが、予め自分で用意したロググループを選択することもできます。

イベントルール名を設定し、CloudWatch Eventsの設定は完了です。

動作確認

GuardDutyには、テスト用にサンプルを出力する機能がありますので、今回はそちらを使用します。
[GuardDuty] -> [設定] -> [結果サンプルの生成] を選択します。

実行すると、以下のようにサンプルが生成されます。

準備が完了したので、CloudWatch Logsを確認します。
[CloudWatch] -> [ログ] -> [/aws/events/guardduty] を選択すると、ログストリームが生成されています。
ログストリームごとに参照すると見にくいので、上部の [イベント検索] を選択します。

すると、Findingが出力されていることを確認できます。

一覧からログを開いてみると、シビリティが8の結果のみをログに残せていることを確認できました!

さいごに

CloudWatch Eventsのターゲットとして、CloudWatch Logsがサポートされたので試してみました。 今回行ったGuardDutyのイベント以外にも、TrustedAdvisorのチェック結果など、今までログに残しずらかった情報も残せるようになったと思います。 これからも良さそうな活用事例があれば試してみたいと思います!