📝

[小ネタ] CloudTrail のイベントソース一覧に存在しないイベントソースの確認方法

2025/02/23に公開

各サービスの CloudTrail に関するドキュメントを確認しましょう。

CloudTrail のイベントソース検索について

View event history - AWS CloudTrail

to view recent CloudTrail management events, choose Event source, and specify cloudtrail.amazonaws.com. For information about the events a service logs to CloudTrail, refer to the service's API Reference.

CloudTrail ではイベントソースを指定して検索することで、特定のサービスに関する記録を確認できます。
例えば、EC2 に関するイベントを確認する場合にはイベントソースに ec2.amazonaws.com を指定します。

コンソール上でイベントソースの一覧を確認できますが、実はこの一覧に存在しないサービスもあります。

例えば、Amplify はコンソールのイベントソース一覧には存在していません。
このようにコンソールから確認できないサービスのイベントソース名を確認する方法として、各サービスの CloudTrail に関するドキュメントを確認する方法があります。

確認してみた

上述の Amplify で確認してみます。
「Amplify CloudTrail」で検索すると Amplify Hosting のドキュメントのうち、CloudTrail に関する記載のあるドキュメントがヒットします。
Logging Amplify API calls using AWS CloudTrail - AWS Amplify Hosting

上記ドキュメントにはサンプルの記録が記載されているため、サンプルの記録から eventSource を確認します。

{
    "eventVersion": "1.08",
    "userIdentity": {
        "type": "IAMUser",
        "principalId": "AIDACKCEVSQ6C2EXAMPLE",
        "arn": "arn:aws:iam::444455556666:user/Mary_Major",
        "accountId": "444455556666",
        "accessKeyId": "AKIAIOSFODNN7EXAMPLE",
        "userName": "Mary_Major",
        "sessionContext": {
            "sessionIssuer": {},
            "webIdFederationData": {},
            "attributes": {
                "mfaAuthenticated": "false",
                "creationDate": "2021-01-12T05:48:10Z"
            }
        }
    },
    "eventTime": "2021-01-12T06:47:29Z",
    "eventSource": "amplify.amazonaws.com",
    "eventName": "ListApps",
    "awsRegion": "us-west-2",
    "sourceIPAddress": "192.0.2.255",
    "userAgent": "aws-internal/3 aws-sdk-java/1.11.898 Linux/4.9.230-0.1.ac.223.84.332.metal1.x86_64 OpenJDK_64-Bit_Server_VM/25.275-b01 java/1.8.0_275 vendor/Oracle_Corporation",
    "requestParameters": {
        "maxResults": "100"
    },
    "responseElements": null,
    "requestID": "1c026d0b-3397-405a-95aa-aa43aexample",
    "eventID": "c5fca3fb-d148-4fa1-ba22-5fa63example",
    "readOnly": true,
    "eventType": "AwsApiCall",
    "managementEvent": true,
    "eventCategory": "Management",
    "recipientAccountId": "444455556666"
}

上記サンプルの記録より、eventSource が amplify.amazonaws.com であることがわかりました。
このイベントソース名を CloudTrail で指定すると、Amplify に関する記録を確認できます。

ドキュメントにも存在しないイベントソースの確認方法

実は上記の方法でも特定できないイベントソースがあります。
例えば、inspector2.amazonaws.com というイベントソースは Inspector の CloudTrail に関するドキュメントには記載されていません。
Logging Amazon Inspector API calls using AWS CloudTrail - Amazon Inspector

コンソールやドキュメントから確認できないイベントソースについては、以下の方法で確認できる可能性があります。

  1. CloudTrail のルックアップ属性を「読み取り専用」に設定
  2. 読み込みイベントの場合は true, 書き込みイベントの場合は false を指定
  3. 確認したいサービスにアクセスした時間でフィルタリング
  4. フィルタリング結果からイベントソースを確認

inspector2.amazonaws.com については上記の方法で特定しました。

その他の方法

有志のユーザーが AWS のサービスプリンシパル一覧を GitHub で公開しているため、以下の GitHub
から確認する方法もあります。
List of AWS Service Principals

ただし、上述の inspector2.amazonaws.com は含まれていなかったため、すべてのプリンシパルが網羅されているわけではない点と、AWS の公式情報ではない点にはご注意ください。

まとめ

今回は CloudTrail のイベントソース一覧に存在しないイベントソースの確認方法を紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion