[アップデート]CloudTrailで高度なイベントセレクターがサポートされ、記録対象のデータイベントを絞ってコスパよく利用できるようになりました

CloudTrailのデータイベントを高度なイベントセレクターを使用して必要なものだけに絞ることが可能になりました。コストを抑えて目的のログだけ利用できます。
2020.12.08

こんにちは、臼田です。

みなさん、証跡管理していますか?(挨拶

今回はCloudTrailのアップデートにより、高度なイベントセレクターがサポートされたので紹介します。

AWS CloudTrail provides more granular control of data event logging through advanced event selectors

概要

CloudTrailはAWSのAPI実行履歴を記録するサービスです。

管理イベントとデータイベントをそれぞれ別々に選択して記録することが可能です。

管理イベントは通常記録されるもので、ほとんどのAWS操作が対象です。通常記録自体は無料です。複数記録設定を行うと別料金がかかります。

データイベントはS3オブジェクトへの操作やLambdaの実行が対象です。これらはいわゆるデータプレーンの処理として別枠で記録されます。これらはイベントあたりに料金がかかります。利用用途によってはかなりの数のAPIが記録されるため、既存ではデータイベントの記録は強めのセキュリティ要件や具体的な活用用途がなければあまり記録しないことが多いです。

これまではデータイベントを有効化する際には、S3とLambdaをそれぞれ記録するかどうかと、S3はread系とwrite系を記録するかどうかを選択できるのみでした。

今回のアップデートでは、このデータイベントで高度なイベントセレクターを適用することにより、イベントソース、記録するS3バケットやAPIの種類などで絞ることができるようになりました。

つまり、記録したい対象を絞ることが可能です。これにより求めるAPIのみ記録でき、課金の単位であるイベント記録数を減らすことが可能です。嬉しいですね。

やってみた

それではやっていきましょう。今回は新しい証跡を作成して見ていきます。

証跡作成を進めていくとイベントを選択する場所があるので「データイベント」を選択します。下の方に「高度なイベントセレクターに切り替えます」というボタンが出てきたので切り替えましょう。

データイベントの設定画面が変わりました。「ログセレクターテンプレート」により絞り込みができます。

「ログセレクターテンプレート」をカスタムにすると高度なイベントセレクターが現れます。

「高度なイベントセレクター」ではフィールドとして3種類選択できます。readOnly, eventName, resource.ARNです。オペレーターはEqualsNotEquals前方一致などが利用できます。

例えば以下のように、特定のバケット(resource.ARNで前方一致でS3バケットのARN)を指定して、PutObjectのみ記録するなどが可能です。

設定後、AthenaなどでS3に記録されているイベントを確認すれば絞られていることが確認できます。データイベントはCloudTrailのコンソールなどで直接確認することはできないため、実際にS3に記録されている内容を確認する必要があります。

まとめ

CloudTrailで高度なイベントセレクターを利用して記録する対象のデータイベントを絞ることができるようになりました。

全てのデータイベントを記録したくない場合、より的確に対象のログを絞れるため、コストを抑えて利用することができます。特定のデータイベントの記録だけS3やCloudWath Logsに出すということもできますので他の仕組みとの連携もやりやすくなりそうですね。

是非活用しましょう!