CloudTrail Insightsで従来のAPIコールレートの他、APIエラー率に関する測定と検知が出来るようになりました

2021.11.16

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

いわさです。

CloudTrail InsightsはCloudTrailのデータを使って、通常と異なるアクティビティが確認された際に「いつもと違うけど大丈夫か?」と教えてくれる機能です。

そんなCloudTrailへ新機能が追加されました。アナウンスは以下です。

CloudTrail Insightsのダッシュボードは高頻度で普段私は見ないですし、何がどうなったのか文面見るだけだとわかりませんでしたので、過去のDevIO記事や公式ドキュメントの日本語・英語を比較してどういう変化が起きたのかを確認してみました。

余談ですが、「なんかアップデートされたみたいだけどそもそもアップデート前がわからんぞ...」みたいな時は、英語ドキュメントとそれ以外の言語のドキュメントを比較すると良いです。(アップデート直後に限る)
AWSのサービスも一般的な流れで英語ドキュメントが最初に更新されて、少し経ってから日本語ドキュメントが更新されるので、英語ドキュメントにだけ最新仕様が反映されていたりします。

何が変わったのか

従来までは「APIコールレート」という、書き込みAPIがベースラインより乖離している場合にInsightイベントが発生していました。
今回、このイベントタイプに「APIエラー率」が追加されました。

証跡有効化画面から有効出来ます。

APIエラー率の追加

エラーコードを生成する管理API呼び出し回数の測定値。エラーは、API呼び出しが失敗した場合に表示されます。

エラー率についてもベースラインが作成され、エラーレートの急増を検出することが出来ます。
これによって、アクセス許可の見直しやサービスクォーターの申請、不正なリソースの検出に役立てることが出来ます。

Insights画面のカラム追加

CloudTrail Insigtsのリストページにエラー率に関連していくつかのカラムが追加されています。
リスト上はコールレートとエラーレートとイベントレコードが混在するので、Insightタイプフィールドで区別することが出来ます。

カラムは追加されましたが、フィルタリング条件への指定は現時点では出来ません。

CSV上でもApiCallRateInsightフィールドで判別が可能です。

Insightsグラフでエラーレートの状況確認が可能に

従来までもAPI呼び出し数が確認できていましたが、通常の呼び出しとエラー発生数を同時に表示することが出来ます。
下記例では、DescribeVpcsに対して、特定時間にInvalidVpcID.NotFoundエラーが発生していたことが確認出来ます。

追加情報についてもエラー用にInsightタイプや1分あたりのエラー情報と変更されています。
参考までに、下記がAPIコールレートイベントの追加情報です。

AWS CLIからの設定方法

CloudTrail InsightsはAWS CLIから有効化することも可能です。
下記記事に追記しておきました。

まとめ

本日はCloudTrail Insightsに追加された APIエラーレート機能について紹介しました。
ベースラインの構築におそらく通常のCloudTrail Insightsと同様に有効化から数時間〜数十時間かかると思いますのでご注意ください。
私は5日かかってようやくイベントレコードが発生しました一安心です。

ちなみに上記イベントレコードは、VPCピアリングを削除後に即VPCも削除し、その状態でVPCピアリング画面を表示させたときに繰り返し発生したエラーになります。
普段使っているCLIプロファイルを読み取り権限にしたり色々試してみたのですが結構発生させるのが難しかったです。

コールレートよりもおそらく低頻度な発生になると思いますので、CloudTrail Insights自体の有効化する判断であれば、エラーレートについても有効化するのが良いかと思います。