AWS

【AWS】Control TowerでCloudTrailログを全アカウント集約する手順

AWSを複数アカウントで運用していると、「誰が・いつ・どのアカウントで・何をしたか」を追跡できず、監査やインシデント対応で困った経験はありませんか?

CloudTrailを各アカウントで個別に有効化していると、ログが分散してしまい、横断的な調査に時間がかかります。特にAWS Organizationsで10アカウント以上を管理している環境では、ログ集約の仕組みなしでは運用が回りません。

この記事では、AWS Control Towerを使って全アカウントのCloudTrailログを一元管理する手順を解説します。設定後にハマりがちなポイントや、ログ保管コストを抑えるコツも合わせて紹介するので、これからマルチアカウント運用を始める方の参考になれば幸いです。

まずControl Towerってなに?

一言でいうと、AWSの複数アカウントをまとめて管理するためのサービスです。

AWSを組織で使い始めると、「アカウントが増えてきたけど、どう管理すればいいの…?」「全アカウントに同じセキュリティ設定を入れたいけど、毎回手動でやるの…?」といった悩みが出てきます。

Control Towerは、そんなマルチアカウント運用の課題を、ベストプラクティスに沿った形で自動化してくれます。新規アカウントを作るときも、初期設定が自動で適用されるので、運用がぐっと楽になります。

Control Towerと操作ログの集約先

Control Towerの初期設定の一つに、CloudTrailの有効化、つまりユーザーの操作ログの集約があります。

管理アカウントでControl Towerを有効化する際に、ログの集約先として「ログアグリゲータ」と呼ばれるアカウントを指定します。イメージとしては、次のような構成になります。

Securityアカウントでは、CloudTrailのログ保管に加え、GuardDutyやCSPMといったセキュリティサービスも併せて運用しています。

一般的にはログの改ざん防止の観点から、ログ保管用とセキュリティ運用用でアカウントを分離するのがAWSのベストプラクティスです。ただし、本記事では小〜中規模での運用を想定し、S3のオブジェクトロック(コンプライアンスモード)でログの改ざん防止を担保した上で、Securityアカウントに兼用する構成にしています。コンプライアンス要件が厳しい環境では、別アカウントへの分離を推奨します。

Control Towerのセットアップ手順

構成のイメージが掴めたところで、実際にControl Towerをセットアップしていきましょう。

「AWS Control Towerの有効化」をクリックします。

環境タイプの選択

新規にフルでセットアップするので、「充実した環境を設定したい」を選択します。

こちらを選ぶと、OUの作成、ログアーカイブ・監査アカウントの発行、CloudTrailの集約設定などが一括で自動構築されます。これからマルチアカウント環境を作る場合は、基本的にこちらでOKです。

項目充実した環境を設定したい既存の環境があり、AWSが管理するコントロールを有効化したい
別名フルセットアップControls-Only モード
ランディングゾーン構築✅ あり(OU、ログアーカイブ/監査アカウント、CloudTrail集約等を自動構築)❌ なし(既存環境をそのまま使う)
向いている環境これからマルチアカウント環境を作る/まっさらなAWSアカウントすでにOrganizations・Config・CloudTrail等を独自に構築済み

ホームリージョンの選択

ホームリージョンは初期値のままにします。今回の場合、アジアパシフィック(東京)とします。

新規アカウントに対して自動でルールを適用したいので、「自動アカウント登録をオンにする」にチェックを入れます。

この機能を有効にすると、Control Tower配下のOUにアカウントを移動するだけで、そのOUに紐づくベースライン設定やコントロール(ガードレール)が自動で適用されます。新規アカウントを作成するたびに手動で登録作業をする必要がなくなるので、運用がぐっと楽になります。

OUの設定

サンドボックスのチェックボックスは外します。今回は本番運用を想定した最小構成で進めるため、開発・検証用のSandbox OUは作成しません(必要に応じて後から追加可能です)。なお、Securityのチェックは強制で外せない仕様になっています。

サービス統合のデフォルトOU

「サービス統合のデフォルトOU」 とは、Control Towerが管理するサービス統合(Security Hub、GuardDuty、Configなど)の対象とするデフォルトのOUを指定する設定です。簡単に言うと、「Control Towerのサービス統合機能を、どのOU配下のアカウントに自動適用するか」 を決める項目です。

AWS CloudTrail有効化

「AWS Cloudtrail を有効化する」を選択します。

CloudTrail 管理者」にて、CloudTrailログを集約する先のアカウントを指定します。

ログをS3に保存する際の暗号化方式を選択します。チェックなしでも暗号化されるので、コンプライアンスなどの特別の要件がなければ、チェックなしでも問題ないです。

設定動作
チェックなし(デフォルト)S3のデフォルト暗号化(SSE-S3)で暗号化
チェックありカスタマー管理のKMSキー(CMK)で暗号化

CloudTrailログ本体とCloudTrailログバケットへのアクセス記録の保管期間を設定します。

項目中身主な用途
ログ用のS3バケットCloudTrailの操作ログ本体監査・インシデント調査
アクセスログ用のS3バケット「ログ用バケット」へのアクセス記録ログバケット自体の不正アクセス検知

AWS Configを無効化します。有効化する場合はCloudTrailとは別のアカウントを用意する必要があります。

AWS Configを無効にすると、AWS IAM Identity CenterとAWS Backupも無効になります。

レビューと有効化

次へのボタンを進むと、確認ページに移り、設定に問題がないか確認します。

「AWS Control Towerの有効化」ボタンを押すと、AWS Control Towerが始まります。

設定後の確認

Control Towerの設定が完了すると、ログ集約先のアカウントに移動してS3を確認すると、バケットが自動で作成されています。筆者が実際に確認したところ、以下の2つのバケットができていました。

まとめ

今回は、AWS Control TowerでCloudTrailログを一元管理する方法を紹介しました。

マルチアカウント運用を続けていると、「ログがどこにあるか分からない」「アカウントごとに設定がバラバラ」といったカオスな状態に陥りがちです。Control Towerはそんな課題を、ベストプラクティスに沿った形で一気に解決してくれます。

Control Tower自体は無料で使えるので、まずは試してみるのもアリです(ただし裏で動くサービスには課金されるので注意)。

この記事が、これからControl Towerを導入する方の参考になれば幸いです。

-AWS
-, ,