Amazon QuickSightのアクセスログをAWS CloudTrail、Amazon Athenaを使って可視化する

QuickSightのAPIログをQuickSightで可視化してみました
2022.12.09

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

こんにちは、ネクストモード株式会社 のまつです。
今回、Amazon QuickSightを既にご利用いただいているお客様から「各ダッシュボードのアクセス状況を可視化したい」というご相談を受けました。
こちらのご要望を、AWS CloudTrail、Amazon Athenaを使用してQuickSightのAPIログを解析し、解析結果をさらにQuickSightで表示させる、という構成で実現しましたので、本エントリで紹介したいと思います。

はじめに

構成図


QuickSightのダッシュボードへアクセスをすると、AWS CloudTrailにAPIログが記録されます。CloudTrailの証跡を有効化していればS3バケットにログが保存されますので、そのS3バケットからAthenaテーブルを作成・分析し、分析結果をQuickSightで表示させる、という構成となります。順に手順を説明します。

CloudTrailの有効化、ログバケットの指定

QuickSightのログはCloudTrailの「GetDashboard」というイベント名で残ります。 また「GetDashboard」は管理イベントなので、管理イベントを有効にし証跡を作成します。

  • CloudTrailのコンソールに行き、証跡の作成をクリック

  • デフォルトで管理イベントは有効になっているのでそのまま作成

QuickSightの権限設定

次にQuickSightのダッシュボード上でセキュリティとアクセスの箇所から権限の設定をします。
QuickSightで可視化するためにQuickSight上でCloudTrailのログバケット、Athenaのアクセスを有効にします。

  • QuickSightの右上のアイコンから「QuickSightの管理」を選択
  • 「セキュリティとアクセス権限」から「Amazon Athena」と「Amazon S3(CloudTrailのログバケット)」にチェックを入れて保存

Athenaテーブルの作成

AthenaでS3に対してクエリを叩けるようにAthenaテーブルの作成を行います。こちらはCloudTrailのコンソールから作成できます。

  • CloudTrailのコンソールから「イベント履歴」⇒「Athenaテーブルの作成」をクリック

  • 「ストレージの場所」に、作成したCloudTrailのログバケットを指定し「テーブルを作成」をクリック

これによりS3バケットに対してSQLライクなクエリが叩けるようになります。

ダッシュボード作成

  • QuickSightに戻り、「分析」⇒ 画面右上の「新しい分析」⇒ 新しいデータセット ⇒ Athena を選択

  • 任意のデータソース名を入力いただき、ワークグループは指定がなければ[primary]のままで、「データソースを作成」をクリック

  • テーブルは作成したCloudTrailのログバケットを指定し、「カスタムSQLを使用」を選択

  • 任意の名前を入力いただき、本文にSQL文を入力して「クエリの確認」をクリック

(SQLの例については以下のブログを参考にさせていただきました)

  • SPICEを利用するかデータクエリを直接実行するか選択し、「Visualize」をクリック
  • QuickSightでのグラフを好きなように作成していただく
  • ご希望のダッシュボードの表示形式を適宜編集していただく

以上となります

最後に

本日は、QuickSightのアクセスログを可視化する方法を整理いたしました。現状QuickSightのみだとアクセスログが取れないので CloudTrail, Athenaを使いましたが、これらを駆使することで様々なログを取ることができるので非常に便利ですね。

参考

ネクストモードについて

ネクストモード株式会社は東日本電信電話株式会社とクラスメソッド株式会社で設立したクラウドカンパニーです。 「クラウドであたらしい働き方を」というメッセージを掲げ、さまざまなクラウド技術や製品を組み合わせて企業の働き方の当たり前を変えていくことを目指しています。 クラウドやSaaSのご利用に関してお困りごとがあれば、ネクストモードまでぜひお問い合わせください。