[アップデート]カスタマイズ性が強化されたCloudTrail Lake ダッシュボードを使ってみた

[アップデート]カスタマイズ性が強化されたCloudTrail Lake ダッシュボードを使ってみた

Clock Icon2025.04.15

あしざわです。

先日CloudTrail Lake のリソースベースポリシーを使って、イベントデータストアへクロスアカウントでクエリを実行するブログを書きました。

https://dev.classmethod.jp/articles/update-cloudtrail-lake-event-data-store-resource-based-policy/

このアップデートは2024年11月に発表された以下のAWS What's newブログの情報を元にしています。

https://aws.amazon.com/jp/about-aws/whats-new/2024/11/aws-cloudtrail-lake-analytics-cross-account-data-access/

このWhat's new ブログには、本記事の主題となるダッシュボード機能に関するアップデート情報が含まれています。

個人的にまだ試せていない機能だったので、今回のブログではダッシュボード機能についてフォーカスして検証してみます。

これまでのダッシュボード

2023年のアップデートで、CloudTrail Lake にダッシュボードが追加されています。

https://dev.classmethod.jp/articles/update-aws-cloudtrail-lake-dashboard/

リリース当時のダッシュボードはウィジェットは固定、ダッシュボードの元になるクエリは閲覧できるものの変更できず、ソースはイベントデータストア毎に分割、データを更新するためには都度クエリを実行する必要がありました。

image.png
[アップデート] AWS CloudTrail Lake にダッシュボード機能が追加されましたより

クエリを用意しなくても期間だけを指定するだけで利用できる点はとても便利でしたが、クエリをカスタマイズしたり、好きなウィジェットを配置することはできませんでした。

概要の紹介 & やってみた

CloudTrail Lake のダッシュボードは、CloudTrail コンソールの Lake > ダッシュボードから利用できます。

image.png

今回追加されたダッシュボードに関する機能は以下3つの想定です。

  • マネージドダッシュボード
  • カスタムダッシュボード
  • ハイライトダッシュボード

※カスタムダッシュボードはWhat's new への記載がなかったため、このアップデート以前に追加された可能性もありますが、DevIO 内に関連するブログがなかったので含めています。

ここからは各機能を紹介しながら、AWS マネジメントコンソールでそれぞれのダッシュボードを実際に触ってみます。

マネージドダッシュボード

主題について、 AWSが管理しており、IAM Activity やOrganizations Activity など用途に応じて構成されるダッシュボード です。ユーザーは用途に応じてダッシュボードを選択するだけでそのまますぐ使い始められます。

image.png

今回はUser activity dashboard を選択してみます。

image.png

ダッシュボード名を選択すると、コストが発生することに同意するボタンが出てきます。

image.png

同意すると、ダッシュボードのリソースベースポリシーを設定するための許可設定画面が表示されます。

image.png

デフォルトでは全てのイベントデータストが選択されていましたが、必要に応じて設定を変更しましょう。

リソースベースポリシーには以下のような定義が設定されるようです。

{
  "Sid": "CloudTrailLakeDashboardPermissionsPolicy",
  "Effect": "Allow",
  "Principal": {
    "Service": "cloudtrail.amazonaws.com"
  },
  "Action": "cloudtrail:StartQuery",
  "Resource": "<EventDataStore Arn>",
  "Condition": {
    "StringLike": {
      "AWS:SourceArn": [
        "<Dashboard Arn>"
      ],
      "AWS:SourceAccount": [
        "123456789012"
      ]
    }
  }
}

確認をクリックすると、すぐにダッシュボードが表示されました。

image.png

左上で表示させる画面のデータソースとなるイベントデータストアを選択し、右上で期間を設定するようです。

期間設定はこのような画面から行えます。CloudTrail イベント履歴の期間設定に似ていますね。

image.png

User activity dashboardではその他以下のデータが確認できます。

  • User activity trends by user ARN
  • User activity trends by API
  • Most recent user activity
  • Top users with errors
  • Top users with AccessDenied errors
  • Top users making destructive actions
  • Top users changing IAM policies
  • Top actions performed by potential IAM privileged users

いくつか表示されないウィジェットもありました。指定した期間に一致するデータがなかったのだと思います。

image.png

ウィジェットの元になるクエリは表示・編集が可能なようです。

image.png

クエリを表示させてみました。CloudTrail Lake のクエリエディタに似ています。

image.png

クエリを編集して実行してみたところ、右タブにクエリ結果やコマンド出力が更新されましたが、ウィジェットのクエリ自体を編集できるわけではなさそうです。

記載のある注意書きからもわかります。

Updating a query
Any changes to the query will not be applied to the widget on the managed dashboard. You can save the query as a widget on a new or existing custom dashboard.

image.png

カスタムダッシュボードに追加をクリックすると、追加先のカスタムダッシュボードが選択できました。マネージドダッシュボードをカスタムしたい時はカスタムダッシュボードを使う必要がありそうです。

image.png

なお、マネージドダッシュボードは全部で14種類あります。それらをダッシュボード名と説明のセットでまとめたものが以下です。
※AWSマネジメントコンソール上から得られる情報をそのまま使っています

ダッシュボード名 説明
User activity dashboard このダッシュボードでは、ユーザーアクティビティのトレンドを可視化し、上位のアクティブユーザー、ユーザーのトラフィックパターン、アクセス拒否エラーが発生したユーザー、最近のユーザー操作、破壊的なアクティビティや IAM ポリシーの変更を行ったユーザー、特権ユーザーアクションなどの主要領域に関するインサイトを提供します。意図しないユーザーアクションやセキュリティリスクの検出に役立ちます。
Security monitoring dashboard このダッシュボードには、上位のアクセス拒否イベント、失敗したコンソールログイン試行とそれらに関連付けられる IP アドレス、ルートユーザーコンソールログイン試行、破壊行為、クロスアカウントアクセス、その他のセキュリティを重視する重要なウィジェットなど、セキュリティに重点を置いた重要なウィジェットが一元的に表示されます。インシデントを迅速に検出して対応できるため、全体的なセキュリティ体制が強化されます。
S3 data events dashboard S3 データイベントを収集するイベントデータストアの場合、このダッシュボードでは、使用のトレンド、最もアクセスされている S3 オブジェクト、トップ S3 ユーザー、上位の S3 アクションなど、S3 データプレーン API アクティビティを可視化できます。これらのインサイトは、S3 の使用状況の監査、異常の検出、運用上またはセキュリティ上のリスクの軽減に役立ちます。
Resource changes dashboard このダッシュボードでは、リソース管理アクティビティを包括的に把握し、サービス全体のプロビジョニング、削除、変更のトレンドをモニタリングできます。CloudFormation を介した手動による変更、S3 バケットや KMS アクセスなどのポリシーへの変更など、重要な変更が強調表示されます。
Overview dashboard このダッシュボードには、読み取りおよび書き込み管理イベントアクティビティ、イベント別の最もアクティブなユーザー、リージョン、サービス、上位スロットリングイベント、一般的なエラーの概要が表示されます。
Organizations activity dashboard CloudTrail Lake に組織イベントデータストアを持つお客様向けに設計されたこのダッシュボードでは、アクティブなメンバー、アカウント管理、アクセスパターン、ポリシーの変更、最もよく使用されているサービスや API に関するインサイトなど、組織の活動やトレンドを把握することができます。
Management events dashboard アクセス拒否イベント、破壊行為、コンソールサインインイベント、ユーザー別の上位エラー、TLS バージョンの使用状況、ユーザー別の古い TLS 呼び出しに関するインサイトが表示されます。
Lambda data events dashboard Lambda データイベントを収集するイベントデータストアの場合、このダッシュボードでは、上位ユーザー、頻繁に呼び出される関数、一般的な API エラーなど、Lambda データプレーン API アクティビティを可視化できます。これらのインサイトは、Lambda の使用状況の監査、異常の検出、運用上またはセキュリティ上のリスクの軽減に役立ちます。
Insights events dashboard このダッシュボードは、Insights イベントを収集するイベントデータストアでのみ使用できます。このダッシュボードでは、Insights イベントのタイプ別の全体的な内訳と、これらのイベントタイプを生成している上位のユーザーとサービスを確認できます。さらに、Insights イベントの 1 日あたりの数と、Insights メトリクスの 30 日間の履歴ビューも表示されます。
IAM activity dashboard このダッシュボードでは、よく使用される IAM API、API エラー、IAM エンティティの変更、上位呼び出し元の IP アドレスが可視化され、意図しない IAM アクションやコンプライアンス上の問題を特定できます。
Error analysis dashboard このダッシュボードには、サービス、API、ユーザー、エラーコード、スロットリング API にわたるエラートレンドに関する包括的なインサイトが表示されます。この可視性により、潜在的な可用性の問題を迅速に特定して、トラブルシューティングできます。
EC2 activity dashboard このダッシュボードでは、API のトレンド、アクセスエラー、上位のインスタンスランチャー、セキュリティの変更、ネットワークの変更などの EC2 管理アクティビティを包括的に把握できます。これらのインサイトは、セキュリティリスクと運用上の問題を特定するのに役立ちます。
DynamoDB data events dashboard DynamoDB データイベントを収集するイベントデータストアの場合、このダッシュボードでは、使用状況のトレンド、上位 API、ユーザーとテーブルを含むスロットリングパターンなど、DynamoDB データプレーン API アクティビティを可視化できます。これらのインサイトは、DynamoDB の使用状況の監査、異常の検出、運用上またはセキュリティ上のリスクの軽減に役立ちます。
Data events overview dashboard このダッシュボードには、全体的なアクティビティのトレンド、上位のサービス、API、リージョン、スロットルデータプレーン API、主要なデータプレーンユーザーなど、イベントデータストア内のデータイベントが一元的に表示されます。このビジュアライゼーションは、お客様がデータプレーン API のアクティビティをモニタリングして監査やトラブルシューティングを行う際に役立ちます。

個人的に気になったのはSecurity monitoring dashboardです。

このダッシュボードでは以下のようなIAMやCloudTrail、Security Groupに関するセキュリティ上に怪しい挙動を検知できるようです。

  • Top access denied events
  • Failed ConsoleLogin attempts
  • Failed ConsoleLogin attempts by IP address
  • Root user ConsoleLogin attempts
  • Destructive actions
  • Top cross-account access
  • Users who disabled MFA
  • Recent EC2 SecurityGroup and NetworkAcl changes
  • Potential CloudTrail disabling actions

私の検証環境では残念ながら何も表示されませんでした。。。

image.png

カスタムダッシュボード

これは ユーザー自身でサンプルウィジェットもしくはSQLクエリから作成したウィジェットを組み合わせて作成できるダッシュボード です。

独自のダッシュボードを作成から始めていきます。

image.png

各種情報を入力してダッシュボードを作成します。リソースベースポリシーはマネージドダッシュボードのものと同じでした。

image.png

作成直後のカスタムダッシュボードがこちら。見ての通り、空ですね。

image.png

サンプルウィジェットを追加をクリックすると、下からこのような選択欄が生えてきました。

image.png

今回は検証環境でも何か表示されそうな Top IAM APIsを選択して、追加してみました。

使用可能なデータなしで表示されましたね。

image.png

クエリを表示から確認したところ、デフォルトでは直近1日が指定範囲になっており1レコードも検出されなかったようです。

image.png

クエリのWHERE句を変更・特定の1週間に期間を伸ばし、ダッシュボードに追加をクリックしました。

image.png

ウィジェットのタイトルを指定し、アップデートします。

image.png

結果、ウィジェットが追加されましたが何も表示されませんでした。

image.png

一旦カスタムダッシュボードを保存しました。保存したダッシュボードがこちらです。

image.png

手動でデータを表示させるときは左上のグルグルボタンをクリックしました。右の更新は自動更新設定のようでした。

image.png

すると、以下のように1weekのウィジェットには想定通り1レコード表示されるようになりました。

image.png

ここで、日付の指定がウィジェット内のクエリで指定したWHERE句に影響を与えるのか、少し気になりました。

日付を2025年4月6日 00:00:00 (UTC+9) — 2025年4月13日 23:59:59 (UTC+9)に更新してからカスタムダッシュボードに追加したウィジェットのクエリを後から確認してみます。

カスタムしていないサンプルウィジェット「Top IAM APIs」のWHERE句は、以下のように日付に合わせて変更されていました。

WHERE 
    eventSource = 'iam.amazonaws.com'
    AND eventCategory = 'Management'
    AND eventTime > timestamp '2025-04-05T15:00:00.000Z'
    AND eventTime < timestamp '2025-04-13T14:59:59.000Z'

対してカスタムしたウィジェットである「Top IAM APIs for 1week」のWHERE句は変わらず、そのままでした。

WHERE 
    eventSource = 'iam.amazonaws.com'
    AND eventCategory = 'Management'
    AND eventTime > timestamp '2025-04-08T14:09:20.140Z'
    AND eventTime < timestamp '2025-04-14T14:09:20.140Z'

カスタムしたウィジェットで指定するWHERE句については、別途検討する必要がありそうです。

その他、アクション欄からは終了保護の設定が行えることがわかりました。作成して運用していくダッシュボードにはこの設定を入れていきたいですね。

image.png

ダッシュボードを編集をクリックすると、再度更新可能な画面となります。

アクションから新しいウィジェットを作成をクリックします。

image.png

すると、クエリエディタが表示されました。内容は先ほど追加したカスタムダッシュボードのクエリのままですね。どうやらクエリエディタの内容は自動で保持されるようです。

image.png

このクエリを編集してダッシュボードに追加すれば、自作したクエリを追加できそうです。

サンプルウィジェットを11個追加した状態で、カスタムダッシュボードを保存しようとしたところ、以下のようなエラーとなりました。

image.png

ウィジェットの数はデフォルトでは最大10個までであると確認できました。

ハイライトダッシュボード

ハイライトもAWS管理のダッシュボードですが、マネージドダッシュボードとは アカウント毎に関連するウィジェットが自動で構成される点 が異なります。

マネジメントコンソールから初めてアクセスすると、以下のような同意画面が表示されます。

image.png

他のダッシュボードと同じく、イベントデータストアを選択しリソースベースポリシーの許可設定を追加します。

image.png

イベントデータストアのポリシーはこれまでのものと同じでした。

ダッシュボードのポリシーは以下です。cloudtrail:StartDashboardRefreshというダッシュボードの更新に関する設定が必要なようですね。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "cloudtrail.amazonaws.com"
      },
      "Action": [
        "cloudtrail:StartDashboardRefresh"
      ],
      "Resource": "<Dashboard Arn>",
      "Condition": {
        "StringEquals": {
          "AWS:SourceArn": "<Dashboard Arn>",
          "AWS:SourceAccount": "123456789012"
        }
      }
    }
  ]
}

同意後、しばらくは以下のような更新の保留画面が表示されます。

image.png

時間がかかるので、既にハイライトが有効な別のアカウントで確認してみましょう。

こちらが該当アカウントのハイライトです。

image.png

このアカウントのハイライトは、以下のウィジェットで構成されていました。

  • アクティビティの概要
  • アクティビティの要約 - プレビュー
  • Total account activity
  • Destructive actions
  • Failed console login attempts
  • Access denied events
  • Throttled API calls

アクティビティの概要では、以下のような直近のAWSアカウント上のCloudTrailの状況がわかります。Console logins やAWS services used は地味に気になりそうな情報で良いですね。

  • Failed API calls:514
  • Destructive actions:0
  • Regions accessed:17
  • Total account activity:6764
  • Console logins:4
  • AWS services used:7

アクティビティの要約は、概要を生成AIによってレビューしたもののようです。この環境では以下のような結果が生成されていました。

The results show that there were no throttling errors, delete/terminate actions, access denied errors, or failed console login attempts during the specified 24-hour period. All event counts are zero across all time intervals. This suggests that during this time, there were no significant security issues or API usage problems detected in the AWS account. However, the general management events query shows varying levels of activity throughout the day, with peaks of 180 events in a 5-minute interval at 06:00 and 164 events at 08:45 on 2025-04-14.

(Claude 3.7 Sonnetによる機械翻訳)
結果によると、指定された24時間の期間中にスロットリングエラー、削除/終了アクション、アクセス拒否エラー、またはコンソールログイン失敗の試みはありませんでした。すべての時間間隔においてイベント数はゼロです。これは、この期間中、AWSアカウントにおいて重大なセキュリティ問題やAPI使用上の問題が検出されなかったことを示しています。ただし、一般的な管理イベントのクエリでは、一日を通して様々なレベルの活動が見られ、2025年4月14日の06:00には5分間隔で180イベント、08:45には164イベントのピークが記録されています。

データだけ見てもわからないことがありますが、このようにAIでデータを分析し・自然言語で説明してくれるのは便利そうです。

別のアカウントだとどのようなウィジェットとなるのか気になるので、後ほど更新中のアカウントに関するものを追記してみようと思います。

(後日追記:別アカウントで確認したハイライト)

乞うご期待

参考:ハイライトの無効化

ハイライトとこれまでのダッシュボードの異なる点は、ハイライトが常に自動更新されることです。他のダッシュボードだと手動更新もしくは自動更新を明示的に設定する必要がありました。

そのため、有効化中はクエリのスキャンにかかるコストが毎日発生することになります。

コストが気になる場合は、ハイライトの無効化が必要です。

ハイライトの無効化は、終了保護を無効化した後に行います。

image.png

無効化すると、最初の同意画面に戻りました。

image.png

まとめ

以上、「CloudTrail Lake のダッシュボード機能を使ってみた」についてまとめました。

新しいCloudTrail Lake のダッシュボードは、以前と比較するとかなりカスタム性が高くなっているため、自組織のニーズに合わせたお好みのダッシュボードに仕上げられそうです。

CloudTrail ダッシュボードの運用は、以下のようによりマネージドなダッシュボードから初め、イメージを掴んでいく流れが良いと思います。

  1. ハイライトの有効化からスタート
    • 初期段階で CloudTrail ダッシュボードの基本機能を把握
    • 設定不要で重要なイベントを自動的に可視化してくれるため、運用イメージを掴みやすい
  2. マネージドダッシュボードでの検討
    • AWS が事前に用意した分析視点を活用
    • セキュリティ、コンプライアンス、運用効率などの観点から必要な情報を確認
    • 自組織に必要なダッシュボード要件を明確化する
  3. カスタムダッシュボードへの移行
    • 必要なウィジェットだけを集約し、組織固有のニーズに合わせたダッシュボードを構築する
    • 要件に応じて、独自のクエリを追加する

以上です。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.