【初心者向け】始めての AWS Control Tower

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

はじめに

こんにちは、アプリケーションサービス本部 ディベロップメントサービス1課の北出です。
普段の案件では、マルチアカウントの設計や、運用をすることはあまりなく、アプリケーションの開発がほとんどなのですが、最近初めて Organization や Control Tower を使うことになりました。
初心者の状態からなので、今回は初心者目線で AWS Control Tower やマルチアカウント環境とはどういうものなのかについて勉強できればと思います。

AWS Control Tower とは

AWS の公式ドキュメントは こちら になります。
Control Tower とは、AWSのベストプラクティスに沿ったマルチアカウント環境の構築をしやすくする、AWS Organization の拡張機能になります。
AWS Organizations、AWS Service Catalog、AWS IAM Identity Center などの複数のAWSサービスの機能を組み合わせてマルチアカウント環境のセットアップができます。

Control Tower の有効化

AWS Control Tower の有効化は、AWSコンソールから1時間程度で完了できます。

前提条件

  1. 管理アカウント: AWS Organizations の管理アカウントでの作業が必要
  2. メールアドレス: 共有アカウント用の一意のメールアドレスが必要
  3. 権限: 管理者権限が必要

有効化手順

ステップ1: 共有アカウントのメールアドレス作成

Control Tower は以下のアカウントを自動作成します:

  • ログアカウント: すべてのアカウントのログを集約
  • 監査アカウント: セキュリティとコンプライアンスの監査用

それぞれに一意のメールアドレスが必要です。

ステップ2: ランディングゾーンの設定と起動

  1. AWS Control Tower コンソールにアクセス
  2. 「Set up landing zone」を選択
  3. リージョンの選択(ホームリージョンの設定)
  4. 組織単位(OU)の設定
    • ステップ1 で述べたログアカウントと監査アカウントは同じOUに作成されます。このOU名を設定できます。
    • 追加設定で、この段階でOUを追加で作成することができます。一般的には、 Sandbox OU として、追加のアカウントの最初の配置先となるOUを作成することが推奨されているそうです。
  5. 共有アカウントの設定
    • 自動作成されるログアカウントと監査アカウントのアカウント名の設定ができます。
    • この段階で、Control Tower の有効化時に組織全体のCloudTrailがログアカウントに一元化する設定ができます。その場合のログを格納するS3バケットのライフサイクルを設定できます。

ステップ3: レビューとセットアップ

設定内容を確認し、ランディングゾーンのセットアップを開始します。この処理には通常20-60分程度かかります。

有効化後の状態

AWS Control Tower を有効化すると、以下のような環境が自動的に構築されます。

作成されるアカウント構造

  • 管理アカウント: 既存のアカウントがそのまま管理アカウントとして機能
  • ログアカウント: Security OU 配下に作成され、全アカウントのログを集約
  • 監査アカウント: Security OU 配下に作成され、監査とコンプライアンス確認用

組織単位(OU)の構造

Root (管理アカウント)
├── Security OU
│   ├── ログアカウント
│   └── 監査アカウント
└── Sandbox OU

信頼されたアクセス

信頼されたアクセス とは、管理アカウントが配下のメンバーアカウントに代わって、メンバーアカウントのAWSサービスを設定できます。
これによって、CloudTrailの証跡を各アカウントに作成して、ログアカウントに一元化したり、メンバーアカウントへのアクセスを Identity Center に集約するといったマルチアカウント環境が実現できます。

AWS Control Tower の有効化により、以下のAWSサービスが組織内で信頼されたアクセスとして自動的に有効化されます:

  • AWS Organizations: マルチアカウント管理の基盤
  • AWS IAM Identity Center: 統合認証とアクセス管理
  • AWS CloudTrail: API呼び出しの監査ログ
  • AWS Config: リソース設定の監視と評価

委任された管理者

上記の信頼されたアクセスで、管理アカウント上で、様々なAWSサービスを組織全体にわたって設定できるようになります。
しかし、管理アカウントにすべての機能を集約することは推奨されていません。最上位にある管理アカウントはSCP(サービスコントロール)などのガードレールの適用外になり、適切な運用が難しくなるためです。
対応として、委任された管理者という機能で、管理アカウントからメンバーアカウントに信頼されたアクセスのサービスを委任することができます。

例えば、Control Tower有効化後の状態で、AWS CloudTrailは ログアカウントに委任されています。これによって、組織全体の証跡が管理アカウントではなく、ログアカウントで管理することができるようになります。
そのため、AWS Organization および Control Tower では、適切にOUとアカウントを作成し、メンバーアカウントに委任することを推奨します。
例えば、以下のようにID管理アカウントを追加作成して、IAM Identity Center の権限を委任する構成が考えられます。

Root
├── Security OU
│   ├── ログアカウント (CloudTrail)
│   └── 監査アカウント (Config)
├── Infrastructure OU
│   └── ID管理アカウント (IAM Identity Center)
└── Sandbox OU

コントロール

コントロール(ガードレール)は、AWS環境全体の継続的なガバナンスを提供する高レベルなルールです。
子OUやメンバーアカウントに適用して、セキュリティ的に危険なリソースの作成などをあらかじめ防止して組織のガバナンスを高めることができます。

コントロールの種類

予防的コントロール - ポリシー違反につながるアクションを禁止 - Service Control Policy(SCP)を使用して実装 - ステータス: 「強制」または「無効」 - 例: パブリック読み取りアクセスを持つS3バケットの作成を禁止

検出的コントロール - アカウント内のリソースの非準拠を検出 - AWS Config ルールを使用して実装 - ステータス: 「クリア」、「違反」、または「無効」 - 例: 暗号化されていないEBSボリュームの検出

プロアクティブコントロール - リソースのプロビジョニング時に事前チェック - AWS CloudFormation Hooks を使用 - 例: 作成前にS3バケットの設定を検証

ガイダンスレベル

  • 必須(Mandatory): すべてのアカウントで自動適用
  • 強く推奨(Strongly Recommended): セキュリティのベストプラクティス
  • 選択的(Elective): 組織の要件に応じて選択

デフォルトで有効化されるコントロール

デフォルトでは、Control Towerが作成したリソースの変更・削除ができないようなコントロールだけが設定されています。

必須コントロールは自動的に有効化され、以下のような基本的なセキュリティとガバナンスを提供: - CloudTrail の設定保護 - Config の設定保護 - IAM ロールの変更制限 - ルートアクセスキーの使用禁止

次にすべきこと

セットアップが完了したら、以下のステップを実施することをお勧めします。

1. セキュリティの強化

  • MFA の有効化
  • IAM Identity Center ユーザーのMFA設定

追加のコントロール有効化 - 強く推奨されるコントロールの確認と有効化 - 組織の要件に応じた選択的コントロールの検討

2. アカウント管理

Account Factory の活用 - 新しいアカウントのプロビジョニング - アカウントテンプレートのカスタマイズ - アカウントのライフサイクル管理

3. ユーザーとアクセス管理

Identity Center の設定 - ユーザーとグループの作成 - 権限セットの定義とカスタマイズ - 外部IDプロバイダーとの連携(必要に応じて)

メンバーアカウントのルートアクセスの一元化

4. 監視とコンプライアンス

ダッシュボードの活用 - 定期的なコンプライアンス状況の確認 - 非準拠リソースの対応 - ドリフト検出の監視

ログとモニタリング - CloudTrail ログの分析体制構築 - セキュリティインシデント対応プロセスの整備 - 自動化された監視とアラートの設定

5. 継続的な改善

定期的な更新 - ランディングゾーンの定期更新 - 新しいコントロールの評価と適用 - ベストプラクティスの継続的な適用

まとめ

今回は初めて Control Tower を使ったので、有効化したらどうなるのかといったことを紹介しました。
AWS Control Tower は、規範的なベストプラクティスに従って、 AWS マルチアカウント環境をセットアップして管理するものとは聞いていたので、有効化したらそれだけでベストプラクティスに沿ったマルチアカウント環境が作られると思っていたのですが、実際はベストプラクティスまでの第一歩を踏み出させてくれるといった印象でした。初期状態では、作成されるアカウントもログアカウントと監査アカウントのみで、サービスもあまり有効化されておらず、ガードレールもControl Towerの作成したリソースが変更されないようにのみとなります。
Control Tower を有効化してから、どのように組織構成を設計、運用していくかが腕の見せどころとなりそうで、まだまだ勉強すべきことはたくさんありそうです。
次回はControl TowerのIaCでの管理や、次にすべきことの詳細などに踏み込んで話せたらと思います。

北出 宏紀(執筆記事の一覧)

アプリケーションサービス本部ディベロップメントサービス1課

2024年9月中途入社です。 毎朝1時間資格勉強継続中です。