【AWS Control Tower 解体新書】 CloudTrail統合編

記事タイトルとURLをコピーする

AWS Control Tower 解体新書-CloudTrail統合編
AWS Control Tower 解体新書-CloudTrail統合編

はじめに

未来の自分のためなら、今の自分を棄てる覚悟がある

こんにちは、矢田です。

今回は、実案件のなかで触れる機会のあったControl Towerの機能について、解説します。

「Control Towerとは?」については以下の記事をご覧ください。

blog.serverworks.co.jp

本記事ではControl TowerでCloudTrail統合を有効にした際、自動で作られるリソースやその設定内容を解説します。あわせて、あえてこの連携機能を使わない(オプトアウトする)ことを検討すべきケースについてもご紹介します。

用語解説

AWS CloudTrail

AWSアカウント内のAPIコールや操作履歴を記録するサービスです。「誰が」「いつ」「何をしたか」を追跡でき、セキュリティ監査の重要な情報となります。

組織証跡(Organization Trail)

AWS Organizations配下のすべてのアカウントのイベントを一元的に記録するCloudTrailの機能です。管理アカウントから設定することで、メンバーアカウント個別にトレイルを作成する必要がなくなります。

管理イベント(Management Events)

AWSリソースに対する管理操作を記録するイベントです。例えば、IAMリソースの作成・変更、EC2インスタンスの起動・停止、S3バケットの作成などが該当します。S3オブジェクトへのアクセス履歴などを記録したい場合は、別途データイベントを有効化する必要があります。

ログアーカイブアカウント

AWS Control Towerが管理する共有アカウントの一つで、組織全体のログを集約・保管する専用アカウントです。CloudTrailやAWS Configのログの保存先として使用されます。

Landing Zone 4.0 から柔軟度が向上

Landing Zone 4.0の設定画面
Landing Zone 4.0の設定画面

Control TowerのLanding Zone 4.0(2025年11月リリース)から、統合管理するサービスを選択的に有効化・無効化できるようになりました。 これによって、要件次第で不要なものを統合しない(「オプトアウト」と表現されます)という選択肢が生まれ、柔軟なランディングゾーンの構築が可能となりました。

次のサービス統合をそれぞれ明示的に有効化・無効化を選択できるようになっています。 以前のバージョンでは、CloudTrail統合は暗黙的に有効化されていました。

  • CloudTrail統合
  • AWS Config統合
  • セキュリティロール
  • IAM Identity Center
  • AWS Backup

CloudTrail統合の詳細設定

CloudTrail統合の詳細設定(Landing Zone 4.0)
CloudTrail統合の詳細設定(Landing Zone 4.0)

Control TowerのLanding Zone設定画面でCloudTrail統合を有効化する際、以下の3つの設定項目があります。

アカウント

CloudTrailログの保存先となるS3バケットを作成するアカウント(ログアーカイブアカウント)を指定します。

KMS キーの暗号化

CloudTrailログの暗号化に使用するKMSキーのARNを指定します。S3バケットに保存されるCloudTrailログファイルが、指定したKMSキーで暗号化されます。なお、指定しない場合は、Amazon S3のデフォルト暗号化(SSE-S3)が適用されます。

ログの Amazon S3 バケット設定

CloudTrailログを保存するS3バケットと、そのアクセスログ用バケットのライフサイクル(保持期間)を設定します。具体的には以下の2つの値を指定できます。

設定項目 説明
ログバケットの保持日数(retentionDays) CloudTrailログファイルを保持する日数です。指定した日数を経過したオブジェクトは自動的に削除されます。例えば365日と設定すれば、1年間ログを保持した後に自動削除されます。
アクセスログバケットの保持日数(retentionDays) ログバケットへのアクセス記録を保持する日数です。ログバケット本体とは別の保持期間を設定できます。

ポイント: 保持日数は、組織のセキュリティポリシーやコンプライアンス要件を確認したうえで適切な値を設定しましょう。

CloudTrail統合で作成されるリソース

Control Towerの設定からCloudTrail統合を有効化すると、以下のリソースが自動的に作成・設定されます。 それぞれの詳細設定を確認していきます。

1. CloudTrail 組織証跡

Control Towerによって作成された組織証跡
Control Towerによって作成された組織証跡

まず組織の管理アカウントにCloudTrailの組織証跡が作成されます。

項目 内容
証跡名 aws-controltower-BaselineCloudTrail
記録対象 管理イベントのみ(データイベントは含まれない)
マルチリージョン すべてのガバナンスリージョンでイベントを記録
対象アカウント 組織内のすべてのアカウント(管理アカウントおよびメンバーアカウント)
ログファイルの検証 有効(ログの改竄を確認するためのダイジェストファイル作成)

ポイント: 組織証跡は管理イベントのみを記録します。データイベント(S3オブジェクト単位のアクセスログやLambda関数の実行ログなど)を記録したい場合は、別途、証跡を新規作成する必要があります。

組織証跡の記録対象イベント
組織証跡の記録対象イベント

2. S3バケット(ログアーカイブアカウント内)

ログアーカイブアカウント内に、以下の2つのS3バケットが作成されます。

バケット名 用途
aws-controltower-logs-{アカウントID}-{xxxx} CloudTrailログの保存用バケット
aws-controltower-s3-access-logs-{アカウントID}-{xxxx} 上記の保存用バケットへのアクセス記録

ログ保存用S3バケット

バケット名: aws-controltower-logs-{アカウントID}-{xxxx}

バケットポリシーの主な設定:

  • SSL/TLS通信のみ許可(HTTP通信を拒否)

  • CloudTrailサービスからのログ配信を許可

  • aws:SourceOrgID条件により、自組織からのログのみ受け入れ

ライフサイクルルール:

  • Control Towerの設定値「ログバケットの保持日数」で指定した日数でオブジェクトが自動削除(非現行バージョンへ移行)されます

ログ保管用バケットのライフサイクルルール
ログ保管用バケットのライフサイクルルール

ポイント: Control Towerの設定画面で「保持日数(retentionDays):90日」と設定した場合、90日経過したログファイルが自動的に非現行バージョンに移行され、その後、さらに90日経過後に、完全削除されることになります。

アクセスログ用S3バケット

ログ保存用S3バケットへのアクセスログを記録するための、別のS3バケットが作成されます。

バケット名: aws-controltower-s3-access-logs-{アカウントID}-{xxxx}

バケットポリシーの主な設定:

  • SSL/TLS通信のみ許可(HTTP通信を拒否)

ライフサイクルルール:

  • Control Towerの設定値「アクセスログバケットの保持日数」で指定した日数でオブジェクトが自動削除されます

ポイント: アクセスログ用バケットは、ログバケットへの「誰がいつアクセスしたか」を記録するためのものです。CloudTrailのログへのアクセス履歴はセキュリティ監査やコンプライアンス要件の観点から保管することが推奨されます。

3. CloudWatch Logsロググループ(管理アカウント内)

Control Towerが作成したCloudTrailの組織証跡は、CloudWatch Logsへのログ出力も設定されます。管理アカウント内にロググループが作成されます。

ロググループ名: aws-controltower/CloudTrailLogs-{xxxx}-{xxxx}

ポイント: CloudTrailのCloudWatch Logsへの出力設定は、CIS AWS Benchmarkの要件などがある場合に必要な設定になります。

CIS AWS ベンチマーク v1.2.0 - AWS Audit Manager

4. IAMロール

CloudTrailからCloudWatch Logsへログを配信するために、AWSControlTowerCloudTrailRoleというIAMロールが作成されます。信頼先のプリンシパルとしてCloudTrailサービスが指定、許可ポリシーとしてCloudWatch Logsへ配信するための権限が設定されます。

AWSControlTowerCloudTrailRole
AWSControlTowerCloudTrailRole

リソース構成の全体像

以下に、CloudTrail統合で作成されるリソースの全体像をまとめます。

リソース 作成先アカウント 説明
CloudTrail 組織証跡 管理アカウント 組織全体の管理イベントを記録
ログ保存用S3バケット ログアーカイブアカウント CloudTrailログの保存先
アクセスログ用S3バケット ログアーカイブアカウント ログバケットへのアクセス記録
CloudWatch Logsロググループ 管理アカウント リアルタイム監視用
IAMロール(CloudTrailRole) 管理アカウント CloudTrail→CloudWatch Logs配信用

オプトアウトを検討するケース

ログの保管要件が複雑な場合

Control Tower が作成したS3バケットの設定変更を行うと、Control Towerのドリフトが発生します。そのため、アカウントやOU単位で異なる保持期間を設定したい場合や、保存したログを任意のタイミングで S3 Glacier(保管料が安価なアーカイブ用のストレージクラス)に移行したいなど、細かなライフサイクル管理が必要な場合は、個別にS3バケットとライフサイクルルールを設計する必要があります。

『請求代行サービス AWS Control Tower 利用オプション』 をご利用のお客様へ

弊社提供の『請求代行サービス AWS Control Tower 利用オプション』をご利用のお客様につきましては、CloudTrail 証跡における管理イベントの記録が有効である必要がございますのでご留意ください。詳細については、以下リンクをご参照ください。

CloudTrail 証跡の管理イベント記録について

※ リンクの閲覧には、カスタマーポータルへのログインが必要です

まとめ

AWS Control TowerのCloudTrail統合は、マルチアカウント環境における管理イベントログを簡単に一元管理できる仕組みです。

ポイント

  1. 作成されるリソース: 組織証跡、ログ保存用S3バケット、アクセスログ用S3バケット、CloudWatch Logsロググループ、IAMロールが自動作成される
  2. 記録対象: 管理イベントのみ。データイベントが必要な場合は追加のトレイルが必要
  3. 柔軟性: Landing Zone 4.0から統合の有効化・無効化を選択できるようになり、組織のニーズに合わせた構成が可能となった

組織のセキュリティ要件や既存の環境の設定を考慮して、Control TowerのCloudTrail統合を活用するか、個別に組織証跡などを構成するかを判断するとよいでしょう。それでは、またお会いしましょう。