ちょっと話題の記事

[アップデート] CloudTrailログ分析環境が超絶簡単に手に入る!「CloudTrail Lake」がリリースされました

これまでAthenaテーブル等の作成が必要でしたが、超絶簡単にSQL分析環境を手に入れることが可能になりました!監査対応、セキュリティに関するログ分析など様々な用途で利用できます。
2022.01.06

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

本日のアップデートでCloudTrailイベントに対してSQLクエリ実行が可能となる「CloudTrail Lake」がリリースされました!

CloudTrail Lake とは

CloudTrailでは標準のダッシュボードで簡易的なイベント検索を行うことは出来ますが以下のような観点では使いにくいところがありました。

  • 表示されるイベントは90日間
  • 表示されるイベントは現在利用しているリージョンのみ
  • S3などのデータイベントは表示されない

従来、このような課題に対してはユーザ側でAthenaテーブルを作成して、長期間のイベントに対してSQLでの分析可能な環境を実装していたかと思います。

今回リリースされたClodTrail Lakeによって、このような作り込みをすることなく簡単にSQL分析環境を手に入れることが可能となりました。

CloudTrail Lakeの特徴

  • CloudTrailイベントに対してSQLベースのクエリが実行
  • イベントはイベントデータストアに集約され、最大7年間(2555日)の保持
  • 複数のリージョン、アカウント、Organization内のイベント集約ができる
  • クエリ結果は最大7日間表示可能

料金

  • 取り込み、および保存の料金
    • 最初の5TBまで $2.5/GB
    • 次の20TBまで $1/GB
    • 25TB以上 $0.5/GB
  • 分析の料金
    • スキャンされたデータに対して $0.005/GB

分析の料金(スキャンデータに対する課金)はAthenaの$5/TBと同等なので良いとして、データストアの料金が$2.5/GBというのは注意したいですね。Athenaで実装することに抵抗のない方はAthenaを使ったほうがコスト面では良いかと思います。

2022.01.12 追記
Ingest&Store料金の保存料金が毎月の従量課金であると解釈してコメントしていましたが、正しくは取り込み時の一度でした。詳細は以下記事を参照ください。

  • [訂正記事] CloudTrail Lakeの保存料金はデータ取り込み時の一度だけでした!(毎月の保存料金は発生しません)

    詳細は公式の料金表を参照ください

    利用可能なリージョン

    以下のリージョンで利用可能です

    • US East (N. Virginia)
    • US East (Ohio)
    • US West (N. California)
    • US West (Oregon)
    • Canada (Central)
    • Europe (Ireland)
    • Europe (London)
    • Europe (Paris)
    • Europe (Frankfurt)
    • Europe (Stockholm)
    • Asia Pacific (Tokyo)
    • Asia Pacific (Seoul)
    • Asia Pacific (Osaka)
    • Asia Pacific (Singapore)
    • Asia Pacific (Sydney)
    • Asia Pacific (Mumbai)
    • South America (Sao Paulo)
    • Europe (Milan)
    • Asia Pacific (Hong Kong)
    • Middle East (Bahrain)
    • South Africa (Cape Town)

    使用上の注意点

    • デフォルトで保持期間内のすべてのデータに対してクエリが実行されます。最大7年間の保持設定をしている場合、eventTime等を利用してクエリ範囲を制限したほうが良いでしょう
    • CloudTrail Lake SQLはSELECTステートメントのみ利用可能です

    やってみる

    では早速試してみましょう!今回は東京リージョンを使ってイベントデータストアの作成を検証しました。

    イベントデータストアの作成

    CloudTrailの管理コンソールを開き、左のナビゲーションメニューから[レイク]を開きます。[イベントデータストア]タブを開き、[イベントデータストアの作成]をクリックします。

    任意のイベントデータストア名を入力。保持期間は7〜2555日(デフォルトは2555日)の間で指定します。デフォルトは全リージョンのイベントが対象になりますので、現在のリージョンのみを対象としたい場合はイベントデータストアに現在のリージョン (ap-northeast-1) のみを含めるにチェックを入れます。

    また、今回のアカウントはOrganization管理アカウントではないためグレーアウトになっていますが、Organizationアカウント全体を有効化にすることも可能なようです。一方で、Organization以外のアカウントを招待して含めるようなメニューは見当たりませんでしたのでマルチアカウントはOrganizationが前提となりそうです。

    イベントデータストアに含めるイベントタイプを選択します。管理イベントは「読み取り」「書き込み」「AWS KMSイベントの除外」「Amazon RDS のデータ API イベントを除外」から指定が可能。

    データイベントは対象のデータイベントタイプ、および記録する範囲を「すべてのイベント」「readOnlyイベント」「writeOnlyイベント」「カスタム」から選択します。

    「カスタム」の場合、高度なイベントセレクターによって細やかな指定が可能です。以下の例ではS3のデータイベントに対して、Putで始まるイベント(PutObjectPutObjectAcl...etc)のみを対象とします。

    すべての指定が完了したらイベントデータストアを作成します。ステータスが「有効」になればクエリの実行が可能となります。

    クエリの実行

    イベントデータストアが作成できたら[エディター]タブからクエリの実行が可能になります。馴染みのあるAthenaライクなエディターですね。

    試しに単純にイベントをプレビューするだけのクエリを実行してみます。対象のテーブルはイベントデータストア名ではなく、イベントデータストアIDを指定します。

    SELECT * FROM da35ea8b-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    LIMIT 10;

    クエリ結果を確認すると複数のリージョンのイベントに対して一挙にクエリ実行できているのがわかります。

    先述の注意点で述べたとおり、特に期間指定のない場合はイベントデータストアの保持期間内の全イベントがスキャン対象となってしまいますので、長期保持設定されているようなイベントデータストアの場合はeventTime等を利用して範囲を限定したほうがお財布には優しそうです。

    SELECT * FROM da35ea8b-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    WHERE eventTime >= '2022-01-01 00:00:00' and eventTime <= '2022-01-07 00:00:00'
    LIMIT 10;

    デフォルトでは全リージョンが対象となりますが、逆に特定リージョンのみを対象としたい場合は以下のように実行します。

    SELECT * FROM da35ea8b-XXXX-XXXX-XXXX-XXXXXXXXXXXX
    WHERE eventTime >= '2022-01-01 00:00:00' and eventTime <= '2022-01-07 00:00:00'
    AND awsRegion in ('ap-northeast-3')
    LIMIT 10;

    検証は以上です!

    まとめ

    • CloudTrail イベントに対してSQLクエリによる分析環境が簡単に作れるようになりました
    • イベントデータストアは最大7年間のデータ保持が可能
    • 複数リージョン、Organization内の複数アカウントのイベントデータを集約してクエリ実行できるのが嬉しい!
    • 取り込み、保持、スキャンのデータ料に対して課金
      • 高度なイベントセレクタによって取り込み対象イベントを細やかにフィルタできる
      • スキャンデータ料で課金されるので、「期間」「対象イベント」を指定して用途別にイベントデータストアを使い分けるのも良さそう
      • 特に指定しない場合は保持期間内のデータがスキャン対象となるのでeventTime等を指定してスキャン範囲を限定しよう
    • イベントデータストアの料金が$2.5/GBなので、Athenaでの実装に満足している方は継続してAthenaを使ったほうがお財布には優しい

    2022.01.12 追記
    Ingest&Store料金の保存料金が毎月の従量課金であると解釈してコメントしていましたが、正しくは取り込み時の一度でした。詳細は以下記事を参照ください。

  • [訂正記事] CloudTrail Lakeの保存料金はデータ取り込み時の一度だけでした!(毎月の保存料金は発生しません)

    参考情報