CloudTrail Insights で異常な API アクティビティを検知して通知させる

2020.06.14

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

おはようございます、もきゅりんです。

皆さん、CloudTrail Insights 使ってますか?

CloudTrail Insights って何ですか?という方がもしいたらこちらをご参照くださいませ。

[新機能] 異常な API アクティビティを自動検出!CloudTrail Insights がリリースされました!

簡単に言えば、AWS アカウント内において通常と異なる動きをしていると検出する、という機能です。

GuardDutyとの違いは、GuardDutyが特化されたサービス領域から検出するのに対して、

AWS内のすべての書き込み管理イベントで、機械学習の推論から異常と思われるAPI アクティビティを検出するというものです。

AWSアカウント内のセキュリティについてしっかり管理していきたいお客様のニーズに応えるためのサービスだと考えます。

料金は

  • 分析された 100,000 の書き込み管理イベントごとに $0.35

です。

設定方法については上記で記載されているので、今回は検知した結果、SNSからの通知を中心にまとめます。

やること

  1. 認跡の作成
  2. SNSトピックの作成
  3. CloudWatch のAlarm 設定

1. 認跡の作成

上記記事のように、認跡を新しく作成するか、または既存の認跡を更新しても良いですが、Insights を有効にします。

続けて、CloudTrailInsight の通知だけを受け取るため CloudWatch Logsを設定します。

CloudWatch および CloudWatch Logs の料金が適用されます。

特に気にせずデフォルトで設定したイメージとなります。

2. SNSトピックの作成

SNSからのメール送信については、下記をご参照ください。

[基本操作]Amazon SNSでメールを送信する

SNSの管理画面に移動して、トピックを作成してサブスクリプションを作成して、受信したメールを承認するだけになります。

3. CloudWatch のAlarm 設定

メトリクスフィルターの作成

CloudWatch Logs から 作成したロググループに移動してメトリクスフィルターを作成します。

CloudTrailInsightのイベントタイプは AwsCloudTrailInsight なのでフィルタパターンは下記とします。

{ ( $.eventType=AwsCloudTrailInsight ) }

なお、このフィルタパターンだと、最初の方は割りと遠慮なく頻繁に通知が来ますので、検知を絞りたい場合は別途フィルタパターンを設定して下さい。

メトリクス名前空間やメトリクス名は任意で設定します。

0より大きいタイミングでアラートさせるため、パブリッシュ値は1とします。

アラームの作成

メトリクスフィルターを選択してアラームを作成します。

期間を5分(より短くても良いですが)に設定して0より大きいタイミングで検知させます。

必要に応じて、その他の設定から、「欠落データを適正(しきい値を超えていない)として処理」してもよいかと思います。

次に進み、アクションの設定として先ほど作成したトピックを選択します。

アラーム名を入力してアラームを作成して完了になります。

こんな感じのメールが届きます。

当然ですが、あまり触らないようなサービスを触り始めると結構アラートが飛びます。

最後に

S3バケットに元データは存在するので、ロググループの保存期間は1週間もあれば良いかと思います。

以上です。

どなたかのお役に立てば幸いです。

参考