消えた AWS リソースを誰が・いつ削除したか確認する方法を教えてください

2022.04.21

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

ECS でアプリを稼働させています。先日、アプリに接続できなくなったと社内から問い合わせがあり確認したところ、ECS クラスターごと消えていました。誰がいつ削除したか確認する方法を教えてください。
なお、AWS Config を確認しましたが、サポートされていないリソースでした。

どう対応すればいいの?

CloudTrail のイベント履歴をご確認ください。

CloudTrail Event 履歴でのイベントの表示 - AWS CloudTrail

CloudTrail コンソールで過去 90 日間の運用およびセキュリティインシデントのトラブルシューティングを行うには、[イベント履歴] を表示します。リージョンごとに、AWS アカウントでのリソース (IAM ユーザーまたは Amazon EC2 インスタンスなど) の作成、変更、または削除に関連するイベントを参照できます。

CloudTrail は AWS マネジメントコンソールや AWS CLI などから実行されたイベントを収集するサービスで、AWS アカウントを作成すると自動的に有効化されます。ユーザーが行なった操作に限らず、Lambda による処理などの AWS サービスによって実行された操作も記録されるため、リソースに対して行われた操作を調査する際に役立てることができます。

そのため、CloudTrail のイベント履歴から ECS クラスターのイベントを確認することで、いつ? 誰によって? 削除されたか確認ができます。

注意:現時点ですべての AWS のサービスのすべてのイベントが CloudTrail に記録されるわけではありません。CloudTrail が対応するイベントは CloudTrail のサポートされているサービスと統合をご確認ください。

CloudTrail を確認する前に

ほどんどのリソースはリージョンごとに管理されるため、マネジメントコンソールで違うリージョンを選択していないかもご確認ください。
例えば、バージニア北部を選択した状態では、東京リージョンで作成したリソースは表示されません。

リージョンを選択する - AWS Management Console

作成した AWS リソースがコンソールに表示されない場合、コンソールには別のリージョンのリソースが表示されている場合があります。一部のリソース (Amazon EC2 インスタンスなど) は、特定のリージョンで作成されます。これらを表示するには、リージョンセレクターを使用してリソースを作成したリージョンを選択します。

やってみた

CloudTrail コンソールを開き、「イベント履歴」をクリック。

「読み取り専用」をクリックし、「イベント名」を選択

検索ボックスに消えたリソースを削除するイベント名※を入力します。

※イベント名は各サービスの API Reference から確認できます(例:ECS の場合

いつ? 誰が? が削除したかの情報が確認できます。
今回の場合は、2022年3月1日に hato というユーザーが ECS クラスターを削除したようです。

イベント名をクリックすると、より詳細な情報(例:IPアドレス)が確認でき、下部の「イベントレコード」から AWS マネジメントコンソールや AWS CLI といった情報も確認できます。

イベントを探す際の検索条件

リソースの名前が把握できている場合は、「リソース名」による検索も可能です。

リソース名やイベント名のほか、「イベントソース」(サービス)からも検索できます。

その他、時間範囲による検索もご利用ください、

参考資料