複数AWSアカウントのCloudTrailログファイルを一つのS3バケットに集約する

投稿者: | 2018/04/11

AWS CloudTrailはAWSの操作(正確にはAPIコールの呼び出し)を記録するサービスです。誰がどのような操作をしたのかを追うことができるため、監査に役立ちます。
AWSを本格的に利用しているところでは、用途に応じてAWSアカウントを複数作成しているケースが多いかと思います。複数AWSアカウントそれぞれに対してCloudTrailを有効化して操作ログを収集しているのですが、アカウントまたいで検索したい場合があります。本記事は複数AWSアカウントのCloudTrailログファイルを一つのS3バケットに集約する方法を紹介します。

構成

  • アカウントA (AWSアカウントID: 111111111111)
    • CloudTrailの証跡を作成するAWSアカウント
  • アカウントB (AWSアカウントID: 222222222222)
    • CloudTrailの証跡を作成するAWSアカウント
  • アカウントC (AWSアカウントID: 333333333333)
    • CloudTrailログファイルを保存先S3バケットを所有しているAWSアカウント
    • S3バケットのリージョン: 東京(ap-northeast-1)

図にすると以下のようになります。

cloudtrail-aggregation-architecture

S3バケットの作成

アカウントCで作業します。S3バケット名を cloudtrail-aggregate-test とします。
S3バケットポリシーを以下のようにします。

CloudTrailの証跡の作成

アカウントA、B、Cで作業します。
「ストレージの場所」の設定箇所で、「新しいS3バケットの作成」は「いいえ」、「S3バケット」は先ほど作成したS3バケット名を入力してください。

cloudtrail_setting.png

確認

アカウントCにある、cloudtrail-aggregate-test に以下のようなファイルが置かれていればOKです。
AWSLogs以下にアカウントID毎にパスが別れており、

CloudTrailの設定後、cloudtrail-aggregate-test にログファイルが蓄積されれば完了です。

参考

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*