CloudTrail とは
公式曰く
AWS CloudTrail は、ユーザーのアクティビティや API コールを追跡して、監査、セキュリティモニタリング、運用上のトラブルシューティングを支援します。
モチベ
イマドキのご時世、IAMユーザーを作成するのはアンチパターンとかいろいろ話をきいて、「そんなに言うんだったらそもそもどんな権限が要求されたとかどこで追跡すんのよ。できんの?」という気持ちになり、「まずはこれ」とウワサをききつけて試した。
いきなりまとめ
証跡作ってみた。記録される・されないイベントがあるので設定をよくみろ。
以下は記録
お気持ち
うーん、コレが有料ってのは割と納得できないんだけど、どうなんですか。いやS3料金はわかりますよ。
1. 有効にしてみる
CloudTrailのページに移動したら、リソースがなんもないせいか自動で「証跡の作成」という画面になったので作成してみた。
2. もう操作ログあるみたい?
2026/07/22に作成したのに、リージョンをいくつか切り替えてCloudTrailのダッシュボードに入ると、すでに「イベント履歴」というものが閲覧できるようになっている。
どんなログがとれてるのか? 1
イベント履歴ページに遷移したところ、かなりいろいろとれている。なるほど。
どんなログがとれてるのか? 2 詳細
ダッシュボードから項目を選択したら、たぶん情報の網羅性高いのであろうJSONが表示できる。これがAPIで取得できる内容なのであろう。これはすごそう。ある程度のことはすぐわかりそう。
ログフィルタがないと大変なことに
デフォルトでフィルタが設定されており「読み取り専用: 値 false」となっている。ログは恐ろしいほど大量にとれるようで、試しにフィルタをクリアしたところ、とてつもない量がselectできた。
とれるログには属性があるので、簡単なルックアップはここで指示できるようだ。
3. ログが表示されない、、、?
手元のCLIで適当なS3バケットにアクセスしてみたが、ログが表示されない?
もしかしたら、デフォルトでは「ダッシュボードにログインしたユーザーのログ」しかみれないのではないか?
(この仮説は間違っていた。IAMユーザー全員のログがとれるが、S3バケットの「作成」はログされるが、アクセスについては別途設定&料金が必要となっている)
Organization Trail かどうかを確認し、設定してみる
英語で「Trails」日本語では「証跡」をCloutTrailダッシュボード左から選択すると、「証跡一覧」が表示され「それがどの属性になっているのか」が表示されるが、デフォルトでポチったせいか、「組織の証跡」が「いいえ」となっており、あくまで自分の証跡だけが確認できているようだ。(ここでいう自分とは、ダッシュボードにログインしているユーザーのことだろう)
設定を開いてONにしてみた。
ONにしてみたが、、、
やっぱり表示されない?なんでだ?ログの配信に時間がかかっているだけだろうか?
Amazon Qにきいてみたところ
いえ、組織証跡が有効でも、CloudTrailダッシュボードのEvent Historyでは他のユーザー(他のアカウント)のログは表示されません。
重要な理解ポイント
組織証跡の動作
✅ ログ収集: 組織内全アカウントのログをS3バケットに集約
❌ ダッシュボード表示: Event Historyは現在のアカウントのみ表示
とのこと。はあ、よくできてんなというべきか。ではS3バケットを直接のぞいたらできてるのであろうか?
どうやらできているようだ。ユーザーごとにフォルダが掘られているのがわかる。
中にはgzでログが保存されており、たぶんこれをあければ中身が読めるのであろう、、、しかしこれは大変だ。検索ツールを使いたくなる気持ちはわかる。
CLIから叩いてみる
# 特定バケットへのアクセス検索
aws cloudtrail lookup-events \
--lookup-attributes AttributeKey=ResourceName,AttributeValue=<bucketname>
で検索してみたが、やはりとれない。
もう少し原因を探ってみる
組織・Organization Trail is not IAMユーザー
まず「Organization Trail」は認識が間違っていた。別のアカウント is 組織に属するAWSアカウントのことで、ここで調べていた別のIAMユーザーのことではなかった。
バケットの作成・削除はログされるがアクセスログは別
「証跡」の設定に「データイベント」という項目があり、これがデータの詳細を表しているらしい。
うーん。「S3にアクセスされたIAMロールがどれかなんてすぐとれるだろ」と楽観視していたが、結構大変だし金もかかるってことか。( データイベント (100,000 件のイベントあたり 0.10 USD) らしいが )
とりあえず、バケットの作成をした、証跡を作成したユーザーは誰か、なんてのはなんとなくとれることはわかったので今日はここまで。
証跡でデータイベントを有効にした場合のみ
- S3オブジェクトの取得・アップロード(GetObject, PutObject)
- Lambda関数の実行詳細
- DynamoDBのアイテム操作
次は
当初のモチベ、権限が必要で、失敗した・成功したというのがtrailで追いかけられるかもうちょっとがんばって調べる。


