Amazon Web Services ブログ
AWS Control Tower で既存のログアーカイブアカウントと監査アカウントを使用する
AWS Control Tower は、AWS のベストプラクティスに従ってランディングゾーンをセットアップし、お客様の AWS 環境を構築・統制する最も簡単な方法をマネージドに提供します。AWS Control Tower は、複数の AWS サービス (AWS Organizations, AWS CloudFormation StackSets, Amazon Simple Storage Service (Amazon S3), IAM Identity Center (Successor to AWS Single Sign-On), AWS Config, AWS CloudTrail) をオーケストレーションして、30 分以内にランディングゾーンを構築します。さらに、ベストプラクティスを担保するよう、予防的および発見的統制 (ガードレール) を設定します。
AWS Control Tower を導入する際、監査アカウントとログアーカイブアカウントという 2 つの共有 AWS アカウントが自動で作成されます。
- ログアーカイブアカウントは、ランディングゾーンに登録された組織単位 (OU) 内の全ての登録済みアカウントの全ログ情報にアクセスする必要があるユーザーチームのためのものです。
- 監査アカウントは、AWS Control Tower によって利用可能となる監査情報へのアクセスを必要とするユーザーチームのためのものです。また、このアカウントは、コンプライアンス目的の監査を支援するために、お客様の環境に対する自動監査を実行するサードパーティツールのアクセスポイントとしても使用することができます。
AWS Control Tower がこれらのアカウントを作成するために、お客様はそれぞれのアカウント用に一意な E メールアドレスを用意する必要があります。セットアップが完了すると、お客様は新しい AWS アカウントを作成したり、既存のアカウントを AWS Control Tower の管理下に置くことができます。詳しくは、「AWS Control Tower における AWS アカウントについて」というドキュメントをご覧下さい。
これまでランディングゾーンを独自で構築してきた多くのお客様は、既に自前のログアーカイブアカウントとセキュリティアカウントを持っており、それらを再利用したいというご要望をお持ちでした。既存のログアカウントが使用可能になることで、ログと config aggregator を自前のアカウントに統合することができます。
この投稿では、AWS Control Tower を導入する際に、既存の監査アカウントまたはログアーカイブアカウントを再利用する方法を紹介します。この機能を使用すると、お客様は既存アカウントで行った AWS ネイティブまたはサードパーティ統合を変更するために必要な時間と労力を削減することができます。
ユースケースの概要
以下のユースケースは、既存の AWS アカウントを AWS Control Tower のログアーカイブアカウントと監査アカウントとして使用したいというケースです。
AWS Organizations の管理アカウントと組織内のすべてのメンバーアカウントのイベントを記録できる AWS CloudTrail の組織の証跡 (organization trail) の機能を使用していると仮定します。理想的には、同じアカウントを用いて、AWS CloudTrail と AWS Config のログを AWS Control Tower とともに利用したいではずです。特に、このアカウントでログの後処理のためのサードパーティー統合を行っている場合はそうでしょう。そして今、AWS Control Tower のデプロイ時にこれらのアカウントをそれぞれ監査アカウントとログアーカイブカウントとすることができます。
別のユースケースとしては、AWS Security Hub や AWS GuardDuty などその他の AWS サービスの委任管理者となっている既存アカウントをお持ちで、そのアカウントを AWS Control Tower の監査アカウントとして用いたい場合があります。
考慮事項
先に進む前に考慮すべき事項は次の通りです。
- 「既存のセキュリティアカウントまたはログアカウントを使用する際の考慮事項」を確認して下さい。
- AWS Control Tower は、これらのアカウントを、デプロイの一部として作成する OU に移動します。
- AWS Control Tower は、既にお持ちの Config aggregator に加えて、独自の Config aggregator を作成します。
- AWS Control Tower に登録したい他のアカウントに AWS Config を既にデプロイしていて、かつ AWS Control Tower でその同じ AWS Config recorder と delivery channel を依然継続使用したい場合は、AWS Control Tower をデプロイする前にこちらの手順を実行する必要があります。
前提条件
先に進む前に、以下の前提条件を満たしている必要があります。
- AWS Control Tower をデプロイするための前提条件を満たしていること。
- 既存のコアまたは共有アカウントが、既に AWS Organizations の組織に属していること。
- 本機能に使用したいアカウントから AWS Config recorder と AWS Config delivery channel を削除すること。 これは、AWS Control Tower で管理したいすべてのリージョンで行う必要があります。
既存のアカウントを使用して Control Tower をデプロイするための手順
以下の手順で、既存のアカウントを用いて Control Tower をデプロイすることができます。
- AWS マネジメントコンソールで AWS Control Tower にアクセスします。
- ランディングゾーンの選択 (Set up landing zone) を選択します。
- 料金を確認し、リージョンを設定します。
- OU を設定します。
- 既存のアカウントの使用 (Use existing account) を選択します (以下の図 1 のスクリーンショットを参照)。
ここで、ログアーカイブアカウントの AWS アカウント ID を入力します。
図 1. ログアーカイブアカウントのアカウント ID を入力し、既存のアカウントを使用するための設定を示しています。
ここで、監査アカウントの AWS アカウント ID を入力します。
図 2. 監査アカウントの AWS アカウント ID を入力し、既存のアカウントを使用するための設定を示しています。
- 次へを選択します。
- 最後にサービスのアクセス許可 (Service permissions) を確認し、準備ができたら 「私は、AWS リソースを管理する目的で、および私に代わってルールを適用する目的で、AWS Control Tower がアクセス許可を使用することを了承しています。」(“I understand the permissions AWS Control Tower will use to administer AWS resources and enforce rules on behalf my behalf”) を選択します。
- 選択を確定し、デプロイを開始するには、ランディングゾーンの設定 (Set up landing zone) を選択します。
AWS Control Tower が完全にデプロイされると、上記の手順で使用したアカウントが AWS Control Tower に登録され、AWS Control Tower ダッシュボードに登録済み (Enrolled) と表示されていることが確認できます。以下の図 3 のスクリーンショットは、AWS Control Tower で利用するように設定した既存アカウントの security 及び log-archive が、AWS Control Tower のコアアカウントとして登録されていることを示しています。
図 3. Control Tower がデプロイされ、既存の監査及びログアカウントが Control Tower で使用されていることを示しています。
以下の図 4 のスクリーンショットは、指定した既存のログアカウントに、AWS Control Tower による追加の CloudTrail 証跡が作成されている様子を示しています。図 4 を見ると、AWS Control Tower のデプロイ前から存在していた my-log-account-cloudtrail と、AWS Control Tower が追加でデプロイした aws-controltower-BaselineCloudTrail という 2 つの CloudTrail 証跡が表示されていることが確認できます。また、この 2 つの証跡の S3 バケットが異なっていることもわかります。
図 4. Control Tower のデプロイ時に指定した既存のログアカウントに、Control Tower 独自の CloudTrail 証跡が作成されていることを示しています。
同様に、次の図 5 のスクリーンショットでは、AWS Control Tower の導入前にデプロイしていた my-custom-aggregator と、AWS Control Tower が既存の監査アカウントにデプロイした aws-controltower-GuardRailsComplianceAggregator という 2 つの AWS Config aggregator が確認できます。
図 5. Control Tower のデプロイ時に指定した既存の監査アカウントに、Control Tower 独自の AWS Config aggregator が作成されていることを示しています。
シナリオの例
AWS Athena を用いて、アカウントレベルの CloudTrail ログデータを分析する既存のソリューションを持っていると仮定しましょう。次のステップでは、既存のログソリューションを AWS Control Tower とともに用いることができるように変更する方法を説明します。
まず、組織の管理アカウントで、既存のログアカウントを指定して AWS Control Tower をセットアップします。すると、AWS Control Tower 管理下の全てのアカウントでアカウントレベルの CloudTrail 証跡が作成され、既存のログアカウントに aws-controltower-logs-<Account ID>-<Region>
という S3 バケットが作成されます。ランディングゾーンのセットアップが完了したら、AWS Control Tower が作成したログバケットに CloudTrail のログが入力されていることを確認します。
図 6. Control Tower のデプロイ時に指定した既存のログアカウントに、Control Tower 独自の Cloudtrail 証跡が作成されていることを示しています。
CloudTrail コンソールで、イベント履歴 (Event History) を選択し、Athena テーブルを作成 (Create Athena Table) を選択し、ドロップダウンメニューで正しいバケットを選択し、「テーブルを作成」(“Create Table”) を選択します。
図 7. ログの S3 ロケーションを入力して Athena テーブルを作成する様子を示しています。
また、既存の証跡が格納されていたバケットから、AWS Control Tower が作成したCloudTrail 及び Config ログ用の S3 バケットに、ログをコピーすることもできます。これで、AWS Control Tower による CloudTrail ログ (既存アカウントに保存) を使用するよう、ソリューションを変更できました。
ソリューションが期待通りに動作することを確認したら、ログの重複を避けるために以前の CloudTrail 証跡を無効化することもできます。
まとめ
今回の記事では、AWS Control Tower をデプロイする際に、既存のログアカウントやセキュリティアカウントを再利用して、AWS Control Tower の監査アカウントやログアーカイブアカウントとする方法を学びました。そのため、既存のアカウントで行ったサードパーティ等の統合を再設定する必要はなく、これらのアカウントから過去のログやデータをインポートすることに悩む必要もありません。
この機能の詳細をより学びたい場合は、「AWS Control Tower における AWS アカウントについて」と「既存の AWS アカウントを登録する」をお読み下さい。
著者について
Gaurav Gupta
Gaurav Gupta は、AWS Control Tower チームの Sr. Product Manager で、AWS Control Tower のコア機能に取り組んでいます。余暇には、ビリヤード、読書、旅行をしています。
Fahad Mohammad
Fahad Mohammad は、AWS Control Tower のソフトウェアエンジニアです。彼は、お客様が AWS 上で構築するためのスケーラブルで効率的なシステムを作ることに情熱を注いでいます。仕事以外の時間は、家族や友人と過ごしたり、料理をしたり、運動したりするのが好きです。
本ブログの翻訳はソリューションアーキテクトの山田が担当しました。原文はこちらのリンクから参照できます。