📝

CloudTrail での個人的な調査方法 3 つ

2022/09/20に公開

仕事でもプライベートでもトラブルシューティングの際にチェックする CloudTrail について、個人的な調査方法 3 つをまとめてみました。

CloudTrail とは

AWS CloudTrail(ユーザーアクティビティと API 使用状況の追跡)| AWS

一言で説明すると、「AWS 上での操作履歴を記録するサービス」です。
いつ、どこから、誰が、何の操作をしたのかが記録されるので、トラブルシューティングでは高確率でチェックします。

CloudTrail の詳細については、上記 AWS 公式ドキュメントをご覧ください。

調査方法

大きく分けて以下の 3 つの調査方法で調査することが多いです。

  1. エラーコードを確認する
  2. 調査範囲を絞る
  3. JSON でダウンロードして確認する

以下、1 つずつ説明していきます。

1. エラーコードを確認する

CloudTrail ではデフォルトではエラーコードを表示する設定になっていないので、設定でエラーコードを表示します。

上記のように設定することで、エラーコードの列が表示されます。
これでどの操作でエラーになったのかを確認することができます。

エラーが発生していた場合には以下のように表示されます。

上記の場合、CreateLogGroup という操作において、ResourceAlreadyExistsException というエラーが発生していたことがわかります。

そのため、トラブルシューティングとしては、ResourceAlreadyExistsException についての原因や解決策を調査していきます。

トラブルシューティングにおいて、エラーの有無やエラーの内容について知ることは非常に重要なので、まずは CloudTrail のエラーコードを確認できるように設定しています。

2. 調査範囲を絞る

CloudTrail ではイベント履歴の内容を絞ることができます。

デフォルトでは、「読み取り専用」というフィルター名で、値が「false」になっています。
これは、読み取り専用ではないイベント、つまり書き込みイベントを表示しているという意味です。

逆に、「読み取り専用」が「true」だと、読み取り専用イベントを表示しているという意味になります。

どのイベントが読み取り専用なのかどうかは、AWS 公式ドキュメントに記載されています。

読み取り専用かどうか以外にも、よく使うフィルターとしては、「イベント名」、「イベントソース」、「リソース名」があります。

詳細は AWS 公式ドキュメントに記載されていますが、ざっくり説明すると以下のような内容です。

・イベント名: 実行された操作や API
・イベントソース: どの AWS サービスに関するイベントか
・リソース名: EC2 インスタンス ID などのリソース名

初期段階でイベント名が絞れていれば AWS 公式ドキュメントも確認しつつ、イベント名でエラーの有無を調べます

一方、イベント名が分からない場合には、イベントソースを選択し、広い範囲から調べていくこともあります。

リソース名が分かっているときにはリソース名から調べ始めることもあります。

また、イベントの種類に関するフィルターだけではなく、日付でのフィルターも可能です。
日付のフィルターには大きく分けて相対時間 (Relative) と絶対時間 (Absolute) の 2 種類があります。


・相対時間 (Relative): 現在時刻を基準にした時間範囲
・絶対時間 (Absolute): 特定の日付の時間範囲

例えば、現在時刻が午前 9:00 の場合に、相対時間で 1 時間を選択すると、午前 8:00 ~ 午前 9:00 までのイベント履歴が表示されます。

一方、絶対時間は特定の日付の時間範囲なので、現在時刻とは関係なく、9/1 0:00 ~ 9/19 23:59 という特定の時間範囲を指定することができます。

上記のイベントフィルターや日付のフィルターを組み合わせて、調査範囲を絞ることが多いです。

JSON でダウンロードして確認する

イベントや日付を絞っても、コンソールで確認することが大変な場合もあります。
そんな時には、「イベントをダウンロード」から、JSON 形式でダウンロードします。

ダウンロード後に、テキストエディタの文字列検索でイベント名やエラーについて検索します。
コンソールでは 10 ページ以上ある場合などにはよく使用する方法です。

ただし、イベント量が多いと JSON や CSV のダウンロードに時間がかかる場合があるので、ダウンロードする場合でもある程度イベントなどは絞った方がよいです。

まとめ

今回は CloudTrail について、個人的な調査方法 3 つをまとめてみました。

  1. エラーコードを確認する
  2. 調査範囲を絞る
  3. JSON でダウンロードして確認する

基本的な内容だとは思いますが、どなたかの参考になれば幸いです。

参考資料

Discussion