[アップデート]AWS CloudTrail LakeのイベントデータストアをAthenaで検索できるようになりました! #AWSreInvent
データアナリティクス事業本部 機械学習チームの鈴木です。
AWS CloudTrail LakeデータのAmazon Athenaによるzero-ETL分析というアップデートが発表されました!
アナウンスされた機能について
イベントデータストア作成時に自動で検索用のテーブルを作成し、GlueデータカタログおよびLakeFormationのテーブルをAthenaから検索できるという機能になります。
CloudTrail LakeはOrganization内の複数アカウントのイベントデータを集約してクエリ実行できるのが強みの一つで、もともとコンソールからクエリを実行する機能もついていました。
今回のアップデートにより、イベントデータストア用のテーブルの検索に対して、LakeFormationによるアクセス制御を行うことができるようになりました。LakeFormationの枠組みの中で、監査用のユーザーや集計用のジョブにきめ細かなアクセス制御を行い、データを参照してもらうことができる点が嬉しい点として挙げられると思います。
やってみた
イベントデータストアの作成
まずCloudTrailの画面から、CloudTrail Lakeにアクセスしました。
イベントデータストアの作成
から新しくイベントデータストアを作成しました。
ステップ1を進めていきます。
ページの半ばにLake query federation
の欄があるのでチェックを入れて有効化しました。
IAMロールを選ぶ画面が出てくるので、新しいものを作成しました。Athenaがこのロールを使ってイベントデータストアにアクセスします
後は管理イベントの書き込みAPIアクティビティだけを記録する設定でイベントデータストアを作成しました。
作成したイベントデータストアの画面を見ると、Lake query federation
の欄で有効になっていることと、IAMロールやGlueテーブルの情報が見られました。
アタッチされたIAMロールの信頼ポリシーは以下のようになっていました。LakeFormationに対して許可を与える形となっているようでした。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "LakeFederationTrustEntity", "Effect": "Allow", "Principal": { "Service": "lakeformation.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "自分のアカウントID" } } } ] }
なお、イベントデータストアを削除するときはLake query federation
を無効化してからする必要がありました。
Athenaからのクエリ
Athenaを開くと、早速aws:cloudtrail
というGlueデータベースが作成されていたので、その下にあるイベントデータストアのIDのテーブルに対して検索を実行しました。
今回は件数を確認し、9件あることを確認しました。
スキーマが分かりやすいようにGlueテーブルの画面から確認したスキーマは以下のようになっていました。
これはCloud Trailのデータのスキーマですね。
件数があっているか、イベントデータストア側でも検索してみて、9件であることを確認しました。
LakeFormationからみたテーブル
LakeFormationからもテーブルができていることを確認しました。LF-Tagなどを使ってアクセス制御ができますね。
最後に
AWS CloudTrail LakeのイベントデータストアをAthenaで検索できるようになったので、設定方法と簡単な使い心地を紹介しました。
参考になりましたら幸いです。