CloudTrail Lakeで指定期間内のCloudTrail証跡に対してSQLクエリを実行してみる
はじめに
かつまたです。学習の一環としてCloudTrail Lakeでイベントデータストアを作成し、収集したCloudrail証跡に対してSQLクエリを実施してみたのでその手順をご紹介します。
CloudTrail Lakeとは
CloudTrail Lakeは、AWS CloudTrailのデータ分析機能を拡張したサービスです。以下のような特徴と利点があります。
- 長期データ保存: CloudTrail のイベントデータを最大7年間保存できます。
- 保存されたデータに対して、標準的なSQLクエリを使用して分析を行えます。
- カスタムイベントの取り込み: AWS以外のソースからのカスタムイベントデータも取り込み、分析できます。
- 長期間のデータ分析により、セキュリティ面の調査や監査プロセスを改善できます。
- 従来のログ保存方法と比較して、より効率的にデータを保存・分析できます。
CloudTrail Lakeを使用することで、組織はより長期的かつ詳細なデータ分析が可能となり、セキュリティ、コンプライアンス、運用効率の向上に役立ちます。
やってみた
イベントデータストア作成
1.「CLoudTraul」→「Lake」→「イベントデータストア」からイベントデータストアの作成」を選択します。
2.「料金オプション」を「1年間の延長可能な保持料金」と選択します。「1年間の延長可能な保持料金」を設定することで7年間の場合と比べ、取り込み料金を抑えながら、データをより長く保持することが可能です。
検証のため「保持期間」を「カスタム期間」で「7日」に設定しました(最小日数)。
3.「イベントタイプ」では「CloudTrailイベント」を選択します。今回は「管理イベント」を選択します。現在のリージョンのみとすることでコスト削減できます。
4.「管理イベント」では「All events」を選択します。読み込みのみ、書き込みのみのイベント取り込みを設定することも可能です。イベントデータストアを作成します。
イベントデータストアに対してSQLクエリ実行&確認
1.「Lake」→「クエリ」に移動します。クエリ対象のイベントデータストアを先ほど作成したイベントデータストアに設定します。
2.クエリ入力欄に任意のクエリを入力します。今回は以下2つのSQLクエリを実行しました。
クエリ1
SELECT *
FROM イベントデータストアID
limit 10;
/* 全てのイベントを10個表示 */
クエリ2
SELECT eventtime, useridentity.arn as user, eventname
FROM イベントデータストアID
WHERE eventname like 'RunInstances'
order by eventtime desc
/* RunInstancesを実行したロール名を表示 */
3.「クエリ結果」から結果を確認できます
クエリ1結果
クエリ2結果
おわりに
CloudTrailログをクエリする目的という点においてはCloudTrail証跡をS3バケットに保存し、Athemaでクエリする方法と変わらないように感じましたが、Athenaテーブルを作成せずともクエリ実行ができるという点では活用できるサービスであると感じました。コスト面においては設定次第で高額になる可能性があるため、慎重な設定が必要であることも体感できました。ご覧いただきありがとうございました。
参考
アノテーション株式会社について
アノテーション株式会社はクラスメソッドグループのオペレーション専門特化企業です。サポート・運用・開発保守・情シス・バックオフィスの専門チームが、最新 IT テクノロジー、高い技術力、蓄積されたノウハウをフル活用し、お客様の課題解決を行っています。当社は様々な職種でメンバーを募集しています。「オペレーション・エクセレンス」と「らしく働く、らしく生きる」を共に実現するカルチャー・しくみ・働き方にご興味がある方は、アノテーション株式会社 採用サイトをぜひご覧ください。