AWS 道場コース / 第5章 Athenaで監査ログをSQL解析

Athenaで監査ログをSQL解析する

S3上のログをCatalog経由でSQL検索し、スキャン量と結果出力を意識して調査する。

TL;DR — この章で学ぶこと

  1. AthenaはCatalogのテーブルを読む
  2. WHEREで読むデータを絞る
  3. 結果出力先とコストを管理する

01AthenaはCatalogのテーブルを読む

何がこの仕組みの入口になるか? — AthenaはCatalogのテーブルを読むを、構成図の矢印から読み解く。

AthenaはCatalogのテーブルを読むの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では 何がこの仕組みの入口になるか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

02WHEREで読むデータを絞る

どのサービスが責任を持つか? — WHEREで読むデータを絞るを、構成図の矢印から読み解く。

WHEREで読むデータを絞るの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では どのサービスが責任を持つか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

03結果出力先とコストを管理する

失敗時にはどこへ戻る/進むか? — 結果出力先とコストを管理するを、構成図の矢印から読み解く。

結果出力先とコストを管理するの図解
図の読み方: 左から入力、中央が判断・制御、右が到達先。矢印は処理または検証が進む向きを示す。

何を学ぶか

実務では 失敗時にはどこへ戻る/進むか? を先に確認する。設定値だけでなく、入力と出力の境界を明確にする。

結論

  1. AthenaはS3を直接テーブル化するのではなく、Glue Data Catalogのテーブル定義を使ってファイルを読む。
  2. 対象日時・prefix・パーティションをWHERE句で絞る。SELECT *のまま広い期間を読むと、調査のたびに不要なデータまでスキャンする。
  3. クエリ結果もS3へ出る。結果出力場所、保持、アクセス権を決め、監査基盤そのものの運用対象にする。