【AWS Control Tower】ランディングゾーン v3.x へ更新する際のCloudTrailコスト周りの注意点
はじめに
AWS Control Tower について
AWS Control Tower (以降 CT )はAWSの統制に役立つサービスです。
AWSのベストプラクティスを適用した、「複数のAWSアカウントを統制するような基盤(= ランディングゾーン 1 )」を簡単にセットアップしてくれます。 顧客は CTが作成した統制基盤をベースに、負担少なくマルチアカウント戦略をスタートできます。
– 画像: AWS Control Towerを基本から理解する。具体的な活用法を交えて解説 | クラスメソッド
CTが作成・管理するランディングゾーンにはバージョンがあります。 例えば、2023/04/03 時点の最新バージョンは v3.1 です ( v3.1 の参考ブログ )。 ランディングゾーンの更新には、拡張機能や新機能が含まれます。 なので、ランディングゾーンは基本的に最新にしておくのが良いでしょう。
「更新で何が変わるのか」は、以下の公式リリースノートや他アップデートブログなどから確認できます。
AWS組織管理者はランディングゾーン変更内容を把握して、影響が無いか精査する必要があります。
これから話す v3.x 更新 について
特に 2022/07 のランディングゾーン v3.0 は更新点が多いです。 (詳細は以下公式ドキュメントやブログを参照ください。
- AWS Control Tower landing zone version 3.0 - AWS Control Tower
- <アップデート> AWS Control Tower のランディングゾーンバージョン 3.0 がリリースされたので変更点を確認してみた | DevelopersIO
本ブログでは v2.x から v3.0 (および それ以降のバージョン) へ更新した際の、 CloudTrail証跡のコスト周りの考慮点 を説明していきます。
はじめにまとめ
ランディングゾーン v2.x で整備されているCloudTrail証跡は以下のようになっています。 CT管理下のAWSアカウントには「アカウントレベルの証跡」が配置されます。
それが v3.x では以下のように変わります。 CloudTrail証跡は「 組織レベルの証跡 」になります。
つまり、CT管理外のAWSアカウント上に既存証跡があった場合は、 「CloudTrail証跡が複数存在する」ことになります。 管理イベントのS3コピーは 2つ目以降は有料 になるため、コストになります。
以降で詳しく説明します。
前提: 「CT管理下」と「CT管理外」について
前提として、CT設計の1つに「どの組織単位(OU)を CT管理下 にするか」があります。 「 CT管理下のOU にあるAWSアカウント」はCTランディングゾーンの枠組みに入ります。2 (今後、これを単に「CT管理下のAWSアカウント」と呼びます)。
CT管理下のアカウントには以下のようなベースラインが適用されます。
- Config / CloudTrail 設定
- IAMロール設定
- 予防コントロール(SCP) 設定
- 検出コントロール(Config Rules)設定
- など
v2.x の CT管理 CloudTrail 証跡について
ランディングゾーン v2.x のCloudTrail証跡の適用範囲は、 CT管理下のAWSアカウント です。自然ですね。
実装としては「アカウントレベルの証跡 aws-controltower-BaselineCloudTrail
」を個別にCTが展開しています。
そして「CT管理外のAWSアカウント」には、CTは干渉しません。 顧客側でよしなにCloudTrail証跡を設定します。
[補足] 上図の「ログアーカイブアカウント」はCT有効化時に作成されるAWSアカウントです。CloudTrailおよびConfigのログを集中管理します。
v3.x の CT管理 CloudTrail 証跡について
ランディングゾーン v3.x のCloudTrail証跡の適用範囲は、 組織内の全AWSアカウント です。「CT管理下のAWSアカウント」ではないことに注意してください。 実装としては「 組織レベルの証跡 aws-controltower-BaselineCloudTrail
」 をCTが作成しています。
なお v3.0 以降では、「CloudTrail証跡のオプトアウト」オプションが追加されています。 「適用範囲が変わることの影響(後述)」を考慮して用意されたオプションでしょう。
v2.x → v3.x 更新のコスト考慮点
もし組織内の全アカウントがCT管理下である場合は、そこまで影響はありません。 それぞれのアカウントにある「アカウントレベルの証跡」が「組織レベルの証跡」に変わるだけです。
考慮しないといけないのは 「CT管理下」と「CT管理外」で明確に分けた運用 3 をしているケースです。
ランディングゾーンを v2.x から v3.x に更新した際に、 「アカウントレベルの証跡」が「組織レベルの証跡」に変わります。 なので、 「CT管理外のAWSアカウント」に CT管理の証跡が作られます 。 そして以下引用にあるとおり、 「CT管理外のAWSアカウント」にある既存証跡には手を加えません 。
AWS Control Tower does not delete account-level trails for unenrolled accounts.
– 引用: AWS Control Tower landing zone version 3.0 - AWS Control Tower
つまり、 "そのままの状態" で v3.x に更新すると 「CT管理外のAWSアカウントに証跡が複数存在すること になります。
CloudTrail 証跡は 2つ目以降のS3コピーが有料です。
証跡
Amazon S3 に配信された管理イベント: 配信される管理イベント 100,000 あたり 2.00 USD (初回無料コピー後、詳細は AWS 無料利用枠を参照)
– 引用: AWS CloudTrail の料金 | AWS
結果として、 "そのままの状態" では CloudTrailの「Amazon S3 に配信された管理イベント」コストが発生します。
「CT管理外のAWSアカウント」がある状態での v3.x への移行方法について
上記のようなインパクトがあるので、可能であればCloudTrailコストが余分に掛からないようにしたいです。
(注) ただし、AWS環境の運用状況によっては、このコスト増を許容するケースも考えられます。 許容する場合は「 CloudTrailの料金 」と、「これまでの 管理イベント無料コピー(APN1-FreeEventsRecorded など) の使用量」を参考にコスト増を見積もりすることを推奨します。
以降でコスト増を抑えるための 考えられる移行案 を記載します。
[移行案1] CT管理CloudTrail証跡を活用する場合
CT管理CloudTrail証跡(=組織レベルの証跡)を活用する場合です。
「CT管理外AWSアカウント」にある既存証跡の管理イベント記録は、 最終的には停止する必要があります。
ただし「特定期間のCloudTrail証跡が無い」事態は避けないといけません。 それを考慮すると以下のような手順での移行が良いでしょう。
- ランディングゾーンを v3.x に更新してから 最大1日間待つ(= コスト発生を許容)
- 「CT管理外のAWSアカウント」の既存証跡の管理イベント記録をOFFにする
[移行案2] CT管理CloudTrail証跡をオプトアウトする場合
v3.x に更新する際に CT管理CloudTrail証跡をオプトアウトする場合です。
この場合は v3.x 更新 前 に準備 が必要です。 「CT管理下のAWSアカウント」に展開されているCloudTrail証跡が無くなるからです。
同じように「特定期間のCloudTrail証跡が無い」事態を避けるために、 以下のような手順での移行が良いでしょう。
- 「CT管理下のAWSアカウント」へカスタム証跡を展開する
- CloudTrail証跡をオプトアウトした設定で v3.x に更新する
- 【対応不要】 24時間後に「CT管理下のAWSアカウント」のCT管理CloudTrail証跡が削除される
[補足] 3. 【対応不要】...
の部分は、以下 CTドキュメントから確認できます。
When you update to version 3.0, AWS Control Tower deletes the existing account-level trails for enrolled accounts after a 24-hour waiting period.
– 引用: AWS Control Tower landing zone version 3.0 - AWS Control Tower
おわりに
以上、Control Tower のランディングゾーンを v2.x から v3.x へ更新する際のCloudTrailコスト考慮点でした。
Control Tower リソースが 「Control Tower 管理外のAWSアカウント」へ影響を及ぼすことは無い … と思っていると、想定外のコストが発生する可能性があります。
ランディングゾーン更新の際は、公式ドキュメントの変更内容をじっくりと確認して、 影響範囲を精査しましょう。
以上、参考になれば幸いです。