2023.04.06
STAFF BLOG
スタッフブログ
TECHNICAL
テクログ
今回は、AWS アカウントの簡易的な監査ログの扱いについて紹介します。
AWS アカウントの簡易的な監査ログ分析の手段には、 CloudTrail を利用することが多い
「AWS リソースに対して、誰がいつどのような操作を行ったか」を確認する1番簡単な方法は、 CloudTrail のイベント履歴を利用することです。
主に「あれ? このリソース全然使われていないけど、誰が作ったの? 消していい?」という状況に利用するかと思います。無料で使えるので、とても便利ですよね。
特に RDS Aurora など、それなりの費用がかかるリソースでは、コスト削減のためにはこの確認が重要になります。自動あるいは手動で確認するにせよ、CloudTrail を利用することがほとんどだと思います。
CloudTrail イベント履歴の制限
CloudTrail イベント履歴は無料で利用できる上に色々と便利ですが、以下の制限があります。
- 直近3ヵ月のログしか閲覧できない
- 管理イベントしか扱えない
- S3 バケットへの PutObject などのデータイベントの保存には、証跡の作成が必要
ただし、 CloudTrail のイベント履歴は直近3ヵ月のログしか保存されません。
3ヵ月以上前の監査ログを見たい場合の選択肢
直近3ヵ月より前の監査ログを確認したくなる状況は意外とあります。
- 問題の切り分けのために、特定のリソースの設定変更履歴を見たい
- ただし、設定変更履歴の追跡をしたければ、 AWS Config を利用した方が楽なので、そちらを推奨
- AWS アカウント上のリソースを整理する
- 本来なら、不要リソースがないかを自動で定期チェックさせておくのが理想
- 定期的な自動チェックをしていない場合を想定
- 一時的な目的で作成された AWS リソースが放置されており、そのまま利用されずに残っている
ここで、出てくる選択肢が、以下2つです。
- CloudTrail Lake
- Cloud Trail 証跡 + Athena
がっつりやろうと思うともっと色々選択肢はあると思いますが、そこまで本格的にやらない場合は、これら2つになると思います。
詳細な説明は AWS ドキュメントなどを参照してください。
ここでは大まかなメリット・デメリットだけ以下に記載します。
CloudTrail Lake
CloudTrail Lake を導入すると、Athena のように SQL で CloudTrail のイベント履歴を検索可能になります。
- メリット
- 簡単に導入可能
- 7年間までイベントを保存可能
- マルチアカウントに簡単に対応
- 特段意識的に何かをすることなく、1つの AWS アカウントから複数アカウントの監査ログをスキャン可能
- データストア作成時にチェックボックスにチェックを入れるだけでいい
- デメリット
- クエリ実行費用がそれなりにかかる
- クエリ実行の単価が Athena と同じ
- イベントの保存にも費用がかかる
- CloudTrail 証跡よりも若干割高
- SQL での検索は、イベント履歴の検索よりも使い辛い
- SQL は Athena と全く同じ
- クエリ実行費用がそれなりにかかる
CloudTrail 証跡 + Athena
CloudTrail 証跡 から Athena テーブルを作成できます。
これにより、Athena から SQL で各種イベントを検索可能になります。
- メリット
- 最初の1つ目の証跡は無料
- 基本的な費用はほとんどかからない
- S3 に証跡が保存されるので、S3 の料金程度
- 基本的に安価で済む
- 滅多に使わない筈なので、S3 Glacier Instant Retrieval も選択肢になり、更に安価にできる
- Athena でがんがんクエリを実行する場合は別
- S3 に証跡が保存されるので、S3 の料金程度
- 証跡の場合、イベント保存期間の上限はない
- S3 バケットに保存されるので、保存期間はバケットのライフサイクルルール次第
- デメリット
- Athena でのスキャンの費用はそれなりにかかる
- 「時々必要になったら使う」ようなユースケースで利用すべき
- SQL での検索は、イベント履歴の検索よりも使い辛い
- CloudTrail Lake と同じ
- マルチアカウントには対応していない
- マルチアカウントで検索したい場合は、ログ集約用のアカウントを用意し、そこに各アカウントから証跡を集約する必要あり
- Athena でのスキャンの費用はそれなりにかかる
まとめ
- AWS アカウントの簡易的な監査ログ分析の選択肢には、 以下2つがある
- CloudTrail Lake
- CloudTrail 証跡 + Athena
- 以下の場合は、CloudTrail Lake が適切
- AWS Organization で複数アカウントを管理しており、マルチアカウントで監査ログをクエリ分析したい場合
- 以下の場合は、CloudTrail 証跡 + Athena
- 1アカウントだけクエリ分析できればいい
- 費用を安く済ませたい
- 既に CloudTrail 証跡を導入済み
参考元
CloudTrail Lake
https://docs.aws.amazon.com/ja_jp/awscloudtrail/latest/userguide/cloudtrail-lake.html
https://dev.classmethod.jp/articles/aws-cloudtrail-lake-audit-security/
Athena