AWS Config アグリゲータで組織内の CloudTrail ローカル証跡とイベントセレクター・Insights 設定の有無を確認してみた

AWS Config アグリゲータで組織内の CloudTrail ローカル証跡とイベントセレクター・Insights 設定の有無を確認してみた

AWS Organizations配下のCloudTrail運用を効率化したい方へ。AWS Configアグリゲータの高度なクエリを使って、組織内のローカル証跡を一括調査し、削除前の影響確認に必要な証跡を自動抽出する方法をご紹介します。
2026.09.14

はじめに

AWS Organizations 配下の複数アカウントで AWS CloudTrail を運用している場合、組織証跡を作成していても、各メンバーアカウントに個別の証跡(以下、ローカル証跡)が残っていることがあります。

組織証跡は、管理イベントだけでなく、データイベント、ネットワークアクティビティイベント、CloudTrail Insights イベントも記録できます。一方で、組織証跡で記録しているイベント種別と、メンバーアカウントのローカル証跡で記録しているイベント種別が重複している場合、ローカル証跡は不要になっている可能性があります。

ただし、ローカル証跡にのみ設定されているイベントがある場合は注意が必要です。たとえば、組織証跡では管理イベントのみを記録し、ローカル証跡ではデータイベント、ネットワークアクティビティイベント、または CloudTrail Insights イベントを記録している場合、ローカル証跡を削除すると必要なログを取得できなくなる可能性があります。

  • データイベント
  • ネットワークアクティビティイベント
  • CloudTrail Insights イベント

cm-hirai-screenshot 2026-07-03 17.52.23
CloudTrail の証跡では、管理イベントのほかにデータイベント、Insights イベント、ネットワークアクティビティイベントなどを設定できる

そこで今回は、不要なローカル証跡を整理・削除するための事前調査として、AWS Config アグリゲータの Advanced Query(以降、高度なクエリ)を使用して、組織内に存在するローカル証跡を横断的に一覧化し、カスタムイベントセレクターまたは CloudTrail Insights イベントの設定有無から、管理イベント以外を記録している可能性がある証跡を抽出してみます。

高度なクエリは、AWS Config が記録しているリソース設定情報を SQL 形式で問い合わせる機能です。アグリゲータと組み合わせることで、中央アカウントから複数アカウント・複数リージョンのリソース設定を確認できます。

なお、この記事では、カスタムイベントセレクターまたは CloudTrail Insights イベントの設定有無に絞って確認しています。
カスタムイベントセレクターが設定されている場合は、イベントセレクターの詳細を確認し、実際に記録しているイベント種別を確認する必要があります。

https://docs.aws.amazon.com/config/latest/developerguide/querying-AWS-resources.html

前提

今回は以下を前提とします。

  • AWS Organizations 配下で複数アカウントを運用している
  • 組織証跡を作成済み
  • AWS Config アグリゲータを作成済み
  • AWS Config アグリゲータで組織内アカウントのリソース設定を集約している
  • AWS Config で AWS::CloudTrail::Trail が記録対象になっている
  • AWS Config の高度なクエリを実行できる権限がある

本記事では、AWS Config アグリゲータを作成しているアカウントから操作します。

確認したいこと

今回確認したいことは以下の2点です。

  • 組織内に存在するローカル証跡を一覧化する
  • ローカル証跡のうち、カスタムイベントセレクターまたは CloudTrail Insights イベントが設定されており、個別確認が必要なものを抽出する

本記事では、組織証跡ではなく、各 AWS アカウントに個別に作成されている証跡をローカル証跡と呼びます。

AWS Config の高度なクエリを開く

AWS Config コンソールから [高度なクエリ] に遷移し、[新しいクエリ] をクリックします。

cm-hirai-screenshot 2026-07-03 17.43.27
AWS Config の高度なクエリ画面で新しいクエリを作成する

その後、作成済みのアグリゲータを指定し、クエリを入力して実行します。

cm-hirai-screenshot 2026-07-03 13.57.34
作成済みのアグリゲータを指定し、クエリを入力して実行する

今回は、AWS Config アグリゲータに集約された AWS::CloudTrail::Trail の設定情報を確認します。

ローカル証跡をすべて出力する

まず、ローカル証跡をすべて出力します。

AWS Config の高度なクエリで以下を実行します。

SELECT
  accountId,
  awsRegion,
  resourceId,
  resourceName,
  configuration.name,
  configuration.trailARN,
  configuration.homeRegion,
  configuration.isOrganizationTrail,
  configuration.isMultiRegionTrail,
  configuration.hasCustomEventSelectors,
  configuration.hasInsightSelectors,
  configuration.s3BucketName
WHERE
  resourceType = 'AWS::CloudTrail::Trail'
  AND configuration.isOrganizationTrail = false

このクエリでは、resourceType = 'AWS::CloudTrail::Trail' のリソースから、configuration.isOrganizationTrail = false のものだけを抽出しています。

主な確認項目は以下です。

項目 確認内容
accountId 証跡が存在する AWS アカウント ID
awsRegion AWS Config が記録しているリージョン
configuration.name CloudTrail 証跡名
configuration.trailARN CloudTrail 証跡 ARN
configuration.homeRegion 証跡のホームリージョン
configuration.isOrganizationTrail 組織証跡かどうか。false のものがローカル証跡です
configuration.isMultiRegionTrail マルチリージョン証跡かどうか
configuration.hasCustomEventSelectors カスタムイベントセレクターが設定されているか
configuration.hasInsightSelectors CloudTrail Insights イベントが設定されているか
configuration.s3BucketName CloudTrail ログの配信先 S3 バケット

このクエリにより、組織内アカウントに存在するローカル証跡を一覧化できます。

実行後、出力はコンソール上で確認できます。必要に応じて、結果を CSV または JSON 形式でエクスポートすることもできます。

cm-hirai-screenshot 2026-07-03 17.49.09
クエリ実行結果をコンソール上で確認し、CSV または JSON 形式でエクスポートできる

たとえば、以下のような結果を確認できます。
アカウント ID は例示です。

accountId awsRegion 証跡名 isOrganizationTrail isMultiRegionTrail hasCustomEventSelectors hasInsightSelectors
111111111111 ap-northeast-1 Members false true false false
222222222222 ap-northeast-1 app-prd-trail false true false false
222222222222 ap-northeast-1 s3-data-trail false true true false

このように、各メンバーアカウントに存在するローカル証跡を一覧で確認できます。

カスタムイベントセレクターまたは Insights が設定されたローカル証跡を抽出する

次に、カスタムイベントセレクターまたは CloudTrail Insights イベントが設定されているローカル証跡を抽出します。

SELECT
  accountId,
  awsRegion,
  resourceId,
  resourceName,
  configuration.name,
  configuration.trailARN,
  configuration.homeRegion,
  configuration.isOrganizationTrail,
  configuration.isMultiRegionTrail,
  configuration.hasCustomEventSelectors,
  configuration.hasInsightSelectors,
  configuration.s3BucketName
WHERE
  resourceType = 'AWS::CloudTrail::Trail'
  AND configuration.isOrganizationTrail = false
  AND (
    configuration.hasCustomEventSelectors = true
    OR configuration.hasInsightSelectors = true
  )

このクエリでは、ローカル証跡のうち、以下のどちらかに該当するものを抽出しています。

  • configuration.hasCustomEventSelectors = true
  • configuration.hasInsightSelectors = true

hasCustomEventSelectors は、CloudTrail 証跡にカスタムイベントセレクターがあるかどうかを示します。

https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_Trail.html

CloudTrail のイベントセレクターでは、管理イベントやデータイベントの設定を制御できます。ドキュメントでは、特定のイベントセレクターを指定せずに作成された証跡は、デフォルトで読み取り・書き込みの管理イベントを記録し、データイベントは記録しないと説明されています。

https://docs.aws.amazon.com/awscloudtrail/latest/APIReference/API_EventSelector.html

そのため、hasCustomEventSelectors = true の証跡は、データイベントやネットワークアクティビティイベントを記録している可能性があります。

ただし、カスタムイベントセレクターや高度なイベントセレクターは、管理イベントのみを対象として、読み取り・書き込みの種別やイベントソースなどをカスタマイズするためにも使用できます。そのため、hasCustomEventSelectors = true であることだけでは、データイベントやネットワークアクティビティイベントを記録しているとは断定できません。

実行結果

今回の環境では、カスタムイベントセレクターまたは CloudTrail Insights イベントが設定されており、削除前に個別確認が必要なローカル証跡として、以下のような結果が得られました。
アカウント ID は例示です。

accountId awsRegion 証跡名 hasCustomEventSelectors hasInsightSelectors
111111111111 ap-northeast-1 cad-backup-test true true
222222222222 ap-northeast-1 s3-data-trail true false
222222222222 ap-northeast-1 s3-test-trail true false
222222222222 ap-northeast-1 test_cloudtrail true false

この結果から、上記の証跡は、カスタムイベントセレクターまたは CloudTrail Insights イベントが設定されており、削除前に詳細を確認すべきローカル証跡として扱います。

hasCustomEventSelectors = true の証跡については、データイベントやネットワークアクティビティイベントを記録している場合に加え、管理イベントの記録条件のみをカスタマイズしている場合もあります。そのため、イベントセレクターの内容を個別に確認します。

一方で、このクエリに表示されなかったローカル証跡は、以下の状態です。

configuration.hasCustomEventSelectors = false
configuration.hasInsightSelectors = false

この場合、カスタムイベントセレクターと CloudTrail Insights イベントは設定されていません。

CloudTrail では、イベントセレクターを明示的に設定していない証跡は、デフォルトで読み取り・書き込みの管理イベントを記録し、データイベントは記録しません。また、ネットワークアクティビティイベントを記録するには、高度なイベントセレクターを設定する必要があります。

そのため、今回の確認観点では、データイベント、ネットワークアクティビティイベント、CloudTrail Insights イベントを個別に記録している可能性が低い証跡として扱えます。

結果の見方

hasCustomEventSelectors = true の場合

hasCustomEventSelectors = true の場合、証跡にカスタムイベントセレクターが設定されています。

この値だけでは、具体的にどのイベントを記録しているかまでは分かりません。
たとえば、以下のような設定が含まれている可能性があります。

  • データイベントを記録している
  • ネットワークアクティビティイベントを記録している
  • 管理イベントの読み取り・書き込み条件をカスタムしている
  • 高度なイベントセレクターを使っている

そのため、hasCustomEventSelectors = true の証跡は、必要に応じて CloudTrail コンソールや AWS CLI でイベントセレクターの詳細を確認するのがよさそうです。

CloudTrail CLI のドキュメントでは、イベントセレクターや Insights セレクターを確認するコマンドについても説明されています。

https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-additional-cli-commands.html

hasInsightSelectors = true の場合

hasInsightSelectors = true の場合、CloudTrail Insights イベントが有効化されています。

CloudTrail Insights イベントは、通常の管理イベントとは別に、有効化した場合に記録されるイベントです。
そのため、ローカル証跡削除前には、その証跡で Insights を利用している理由を確認した方がよいです。

どちらも false の場合

以下のように、hasCustomEventSelectorshasInsightSelectors がどちらも false の場合を考えます。

hasCustomEventSelectors = false
hasInsightSelectors = false

この場合、カスタムイベントセレクターと CloudTrail Insights イベントは設定されていません。

CloudTrail では、イベントセレクターを明示的に設定していない証跡は、デフォルトで読み取り・書き込みの管理イベントを記録し、データイベントは記録しません。また、ネットワークアクティビティイベントを記録するには、高度なイベントセレクターを設定する必要があります。

そのため、今回の確認観点では、データイベント、ネットワークアクティビティイベント、CloudTrail Insights イベントを個別に記録している可能性が低い証跡として扱えます。ただし、ローカル証跡を削除する前には、組織証跡側のイベントセレクターと比較し、必要なイベントを組織証跡で記録できていることを確認します。

まとめ

AWS Config アグリゲータの高度なクエリを使って、組織内に存在する CloudTrail のローカル証跡を横断確認しました。

configuration.isOrganizationTrail = false を条件にすることで、ローカル証跡を一覧化できます。

また、configuration.hasCustomEventSelectorsconfiguration.hasInsightSelectors を確認することで、カスタムイベントセレクターまたは CloudTrail Insights イベントが設定されており、削除前に個別確認が必要な証跡を抽出できます。

組織証跡を利用している環境でローカル証跡の整理を検討する場合、まずは AWS Config アグリゲータで横断的に棚卸しし、例外になりそうな証跡だけ個別確認する進め方がよさそうです。

この記事をシェアする

AWSのお困り事はクラスメソッドへ

関連記事