Control Tower環境上でCloudTrailとConfigのログ保持期間をメンバーアカウントごとに分けることができるのか考えてみた

Control Tower環境上でCloudTrailとConfigのログ保持期間をメンバーアカウントごとに分けることができるのか考えてみた

Clock Icon2025.02.04

こんにちは!AWS事業本部の吉田です。

Control Towerやっていますか?

Control Towerは、複数のAWSアカウントを一元管理するためのサービスです。
各メンバーアカウントのログをログアーカイブアカウントに集約する機能は、セキュリティ管理の要の1つとなっています。

そのログアーカイブアカウントについて、
「CloudTrailとConfigのログの保持期間をメンバーアカウントごとに分けて設定することは可能か?」
という質問を受けたことがあります。

CloudTrailに関しては設定次第ですが、Control Towerを利用すると基本的に各メンバーアカウントのCloudTrailとConfigのログを1つのS3バケットに集約することになります。
そのため、すべてのメンバーアカウントのCloudTrailとConfigのログの保持期間は統一されることになります。
(スコープがバケット全体のライフサイクルルールが適用されています。
このライフサイクルルールはControl Towerが管理しているので、触らないことをお勧めします。)

しかし、環境(開発・本番など)やプロジェクトによって各メンバーアカウントのログの保持期間ポリシーが異なることは、往々にしてあるかと思います。

今回は、Control Tower環境上でCloudTrailとConfigのログ保持期間をメンバーアカウントごとに分けることができるのか考えてみました。

結論

技術的には対応可能ですが、基本的にすべてのメンバーアカウントのログの保持期間を統一することを推奨します。
理由として、以下の2点が挙げられます。

  • 作業工数がかかる

現状のControl Towerでは、各メンバーアカウントのログの保持期間を設定することはできません。
そのため、Control Tower以外の部分で設定のカスタマイズが必要となり、作業工数がかかります。
また、簡単にログを集約するというControl Towerのメリットを享受することができません。

  • CloudTrailとConfigは監査・セキュリティ分析に用いられるログのため

開発環境もセキュリティ侵害を受ける可能性があるため、コストが許す限りCloudTrailとConfigのログを長く保持すべきです。
(むしろ開発環境の方がセキュリティが緩くなりがちで、セキュリティ侵害を受ける可能性が高いと思います。)
そのため、作業工数も考慮すると、無理に環境ごとでCloudTrailとConfigのログの保持期間を分けることはないと考えています。

各設定手順

ログの保持期間に関して各メンバーアカウントで細かいポリシーがある場合は、Control Towerの利用は避けた方が無難です。
その前提の上で、各メンバーアカウントのCloudTrailとConfigのログの保持期間を分ける方法について考えてみました。

CloudTrail設定手順

CloudTrailに関しては、Control Tower上でオプトアウト(無効)することができます。
オプトアウトした上で、各メンバーアカウント上で設定作業を行う形となります。

【設定手順】

  • ControlTowerの「CloudTrail 組織レベルの証跡を有効化」を無効化する
  • ログアーカイブアカウントに、メンバーアカウントもしくは環境(開発環境・本番環境など)用のS3バケットを作成する
  • 各メンバーアカウントごとにCloudTrailの証跡を作成する
    • CloudTrailの証跡配置場所に上記で作成したログアーカイブアカウントのS3を指定する

【デメリット】

  • 各リソースの設定・構築工数がかかる
  • アカウントが増えるたびに設定作業が必要となる

【補足】
上記の方法は、メンバーアカウントごとのCloudTrailとConfigのログの保持期間を分けるため、メンバーアカウントごとに設定しています。
作業工数が多くなるため、おすすめはしません。
ただし、CloudWatch Logsのコスト削減のため、Control Tower管理のCloudTrailをオプトアウトすることはあります。
詳しい内容は、下記のブログを参照してください。
(こちらの記事では、Control Tower管理のCloudTrailをオプトアウトした後、管理アカウント上で組織レベルの証跡を作成する流れとなります。)
Control Tower 管理 CloudTrail をオプトアウトして CloudWatch Logs コストを削減

Config設定手順

Configに関しては、Control Tower上でオプトアウトすることができないため、Configの設定を更新することは非推奨です。
代替案として、S3のレプリケーション機能を利用した方法をまとめます。

【設定手順】

  • Control Towerの「ログ用の Amazon S3 バケットの保持期間」を短い方の保持期間で設定する
    • 例えば、開発環境は1年保管、本番環境は5年保管だとすると、開発環境の保持期間に合わせる
  • ログアーカイブアカウントに、メンバーアカウントもしくは環境用のS3バケットを作成する
    • それぞれのS3バケットごとに保持期間を設定します
  • Control Tower有効化時に自動的に作成されるS3バケットにレプリケーション機能を設定する

【デメリット】

  • コストの増加
  • 運用の複雑化
  • 二重管理のリスク

まとめ

今回、紹介している作業は推奨するものではありません。
ただし、お客様の質問を受けて「どのようにしたら対応できるのだろうか」と考えられたことはいい経験だったと思います。
Control Towerはまだまだアップデートが重ねられると思いますので、今後のアップデートに期待です!

以上、AWS事業本部の吉田でした!

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.