こんにちは、博報堂テクノロジーズの木村です。
AWS環境でのアクティビティ監視を行う機能としてCloudTrailがあります。CloudTrailにてログを長期保存してログ解析を実施する際には、主に以下2つの選択肢があります。
- S3に証跡を取得しAthenaにて解析を行う方法
- CloudTrail Lakeを利用して証跡の取得と解析を行う方法
今回CloudTrailによるアクティビティ監視の設定を行うにあたり、比較・検討を実施しましたので解説します。
S3に証跡を取得しAthenaにて解析を行う方法
まず、S3に証跡を取得しAthenaにて解析を行う方法について、概要・メリット・デメリットをまとめます。
- 概要
- 証跡をS3に保存する設定を実施
- S3バケットに対して必要に応じてライフサイクルポリシーを設定
- S3バケットに対してAthenaのテーブル定義を実施
- Athenaテーブルに対して必要に応じてパーティションの設定など実施
- Athenaにてクエリ実行して解析を実施
- メリット
- カスタマイズ性が高い
- S3への保存に関して、ストレージクラスの移動や削除のタイミングを細かく調整できる
- Athenaテーブルのパーティションの設定などパフォーマンスを細かく調整できる
- 取り込み時のコストが安価
- 管理イベントの取り込みがS3バケット一つ目まで無料で取得できる
- データイベントの取り込みコストがCloudTrail Lakeと比較して安価
- 大量のアクティビティが発生した際でも、急激なコスト増加を抑えることができる
- カスタマイズ性が高い
- デメリット
- 自分でカスタマイズを実施しないと、コストやパフォーマンスに影響が出る
- S3のライフサイクルの設定をしないと、ストレージクラスの移動や削除タイミングが設定されていないままとなり、コストやパフォーマンスに影響が出る
- Athenaテーブルのパーティションの設定をしないと、コストやパフォーマンスに影響が出る
- 自分でカスタマイズを実施しないと、コストやパフォーマンスに影響が出る
CloudTrail Lakeを利用して証跡の取得と解析を行う方法
次に、CloudTrail Lake利用して証跡の取得と解析を行う方法について、概要・メリット・デメリットをまとめます。
- 概要
- CloudTrail Lakeにてイベントストアの作成を実施し証跡を取得
- CloudTrail Lakeのクエリ画面にて解析を実施
- メリット
- 設定不要で使い始めることができる
- AWS側が自動的にストレージクラスやパーティションの設定を行うため、考慮するポイントや設定手順が少ない
- Athenaテーブルの設定を行うことなく、クエリ画面からすぐに解析が実施できる
- 設定不要で使い始めることができる
- デメリット
- 細かい設定ができない
- 細かい設定ができないため、コスト・パフォーマンスのコントロールが難しい
- 証跡の取り込み時のコストがS3に取得する場合と比較して高額
- 管理イベントの取り込みに対してコストが発生する
- データイベントの取り込みコストが管理イベントの取り込みコストと同額で、S3への証跡取得と比較して高額
- 大量のアクティビティが発生した際の急激なコスト増加が懸念される
- 細かい設定ができない
各方法の比較
2つの方法について比較してきましたが、今回私は以下の理由から「S3に証跡を取得しAthenaにて解析を行う方法」を選択しました。
- ストレージクラスを自分で調整して設定したい
- CloudTrail Lakeではストレージクラスによるコスト低減ができません。対して、S3に証跡を保存した場合には、最新のデータは標準クラスで運用し、その後は低頻度アクセスやGlacierに移行する、という運用を行うことでコストを低減できることから、S3に証跡を取得する方法を選択しました
- Athenaのクエリのパーティションを自分で設定したい
- 今回はログに対するパーティショニングしたい対象が予め決まっていました。そのため、CloudTrail Lakeによる自動でのスキャン範囲の絞り込み機能を利用するのではなく、Athenaにて手動でパーティショニングが設定できる方法を選択しました
- 証跡取り込み時点でのコスト急増のリスクを下げたい
- 今回アクティビティ監視で検知したいことの一つとして、ユーザーからの急激なデータアクセスでコスト増加となった際のアクティビティの詳細を確認したいという目的がありました。CloudTrail Lakeではデータアクセスが多数発生した際に、証跡取得自体もコスト増加に繋がってしまうため、CloudTrail Lakeの導入は見送りました
逆に言えば、標準のCloudTrailの範囲だと保存期間が短く解析もしづらいが、パフォーマンスやコストで大きなこだわりはないので、よしなに上手くやってほしい。というケースではCloudTrail Lakeを使うのが良いと言えそうです。
まとめ
ここまで、CloudTrailにて長期でログを保存してログ解析を実施する方法の紹介および比較を実施しました。
今回、S3に証跡を取得しAthenaにて解析を行う方法を選択しましたが、CloudTrail Lakeもすぐに証跡を取得・長期保存し解析ができる便利な機能なので、それぞれのメリット・デメリットを考慮したうえで方法を選択することで、ニーズにあったアクティビティ監視が可能になると思います。