目次

AWS Control Tower 完全ガイド v2.0

初心者から実務者向けの包括的解説

AWS Control Tower は、「AWS ランディングゾーン(セキュアなマルチアカウント基盤)をベストプラクティスに沿って自動構築・継続管理し、ガードレール(Preventive / Detective Controls)で全アカウントにセキュリティポリシーを強制するフルマネージドサービス」 です。AWS Organizations・IAM Identity CenterCloudTrail・Config・Security Hub・Backup Policy を統合し、Account Factory でアカウント自動プロビジョニング。Proactive Controls(CloudFormation Hooks)でデプロイ前のコンプライアンスチェック。本ドキュメントは Control Tower の概念・ランディングゾーン・ガードレール・運用・2025-2026 動向を体系的に解説する包括的ガイドです。

ドキュメントの目的

本ガイドは以下を対象としています。

  • 初心者向け: マルチアカウント AWS 環境の基本を学びたい方
  • アーキテクト向け: ランディングゾーン設計・セキュアなアカウント構造を構築したい方
  • セキュリティ担当者向け: ガードレール・コンプライアンスコントロール全社適用を実装したい方
  • DevOps / インフラ向け: Account Factory・AFT(Terraform)による自動化を実現したい方
  • 意思決定者向け: 数十〜数百アカウント運用の標準化・セキュリティガバナンス

2025-2026 年の AWS Control Tower エコシステム

  • Proactive Controls 拡張(2024-2025):CloudFormation デプロイ前のコンプライアンスチェック、200+ 組み込みコントロール
  • RCP(Resource Control Policy)拡大:S3・KMS・STS に続き ECR・OpenSearch Serverless 対応
  • AI Services Opt-out Policy:生成 AI 使用を組織レベルで制御・禁止可能
  • Backup Policy 強化:自動バックアップスケジュール一括管理
  • Chatbot Policy(Chat Applications Policy):Slack・Teams から AWS 操作を制御
  • Tag Policy 拡張:リソースタグの統制をより厳密に実装
  • Terraform / CDK 完全統合:Infrastructure as Code でランディングゾーン・アカウント定義

目次

  1. 概要
  2. Control Tower が解決する課題
  3. 主な特徴
  4. アーキテクチャ
  5. コアコンポーネント
  6. 主要ユースケース
  7. 設定・操作の具体例
  8. 類似サービス比較表
  9. ベストプラクティス
  10. トラブルシューティング
  11. 2025-2026 最新動向
  12. 学習リソース・参考文献
  13. 実装例
  14. チェックリスト
  15. まとめ
  16. 参考文献

概要

初心者向けメモ: Control Tower は「複数の AWS アカウントをセキュアに一括管理するサービス」です。AWS Organizations を手動でセキュアに構成するには数週間かかりますが、Control Tower はベストプラクティスに従って数時間で「ランディングゾーン」を自動構築。全アカウントに「ガードレール」(セキュリティルール)を自動適用し、Account Factory でアカウント作成を標準化・自動化できます。

AWS Control Tower 公式定義:

“AWS Control Tower provides a managed service for launching and governing a landing zone on AWS, which is a well-architected, multi-account AWS environment.”

Control Tower の位置づけ

graph LR
    A["AWS マルチアカウント<br/>環境構築"]
    
    subgraph Governance["ガバナンスレベル"]
        Manual["完全手動<br/>(Organizations から<br/>全設定自分で)"]
        CT["Control Tower<br/>(自動構築<br/>ベストプラクティス)"]
        Custom["カスタム<br/>(Control Tower<br/>+ 追加ポリシー)"]
    end
    
    A --> Manual
    A --> CT
    A --> Custom
    
    style CT fill:#e6ffe6
    style Custom fill:#e6f3ff

このサービスを選ぶ理由

なぜ AWS Control Tower か?

理由 詳細
セットアップ時間大幅短縮 手動で数週間かかるランディングゾーン構築を数時間で実現
ベストプラクティス自動適用 AWS Well-Architected Framework / CIS AWS Foundations Benchmark に準拠したガードレール
一元ガバナンス 全アカウントへのセキュリティ・コンプライアンスルール自動強制
Account Factory 自動化 新規アカウント作成プロセス標準化、カスタマイズ可能(AFC / AFT)
Proactive Controls CloudFormation デプロイ前のコンプライアンスチェック、違反リソース作成防止
複数アカウント管理の統一 セキュリティ・ネットワーク・ID 管理を一元化、各チームは管理下で自由に開発

具体的なユースケース

  • エンタープライズの AWS ランディングゾーン構築(開発・ステージング・本番の環境分離)
  • 買収会社の AWS 環境統合・ガバナンス強制
  • 金融・医療・公共セクターのコンプライアンス要件対応
  • マルチリージョン展開時のセキュリティ管理統一

Control Tower が解決する課題

課題 Organizations 手動管理 Control Tower 解決方法
セットアップ複雑性 Organizations・IAM Identity Center・CloudTrail・Config を個別設定、数週間要 ランディングゾーン自動構築、数時間完了
セキュリティルール統一 SCP・Config ルール・CloudTrail ログを個別設定 ガードレール(200+ 組み込み)を全アカウント自動適用
新規アカウント作成プロセス AWS アカウント作成 → Organizations へ追加 → SCP 適用 → IAM Role 設定、手動 Account Factory で承認後、自動プロビジョニング
アカウント別コンプライアンス確認 個別にコンソール確認、検証困難 Compliance Dashboard で一元監視
セキュリティベースラインズレ チーム・時期でルール異なる可能性 ガードレール強制で統一ベースラインを維持
監査ログ管理 各アカウント CloudTrail を個別管理 Log Archive Account に集約自動化
違反検出と対応 Config ルール結果を各アカウントで確認 Detective Control で違反検出・通知自動化
Infrastructure as Code 管理 CloudFormation / Terraform 個別管理 AFT(Account Factory for Terraform)で一元定義

主な特徴

1. ランディングゾーン(Landing Zone)

自動構築される 3-4 アカウント構造

アカウント 用途 自動設定項目
Management Account ランディングゾーン全体・Organization 管理 Organizations Root、Control Tower、ガードレール管理
Log Archive CloudTrail / Config ログ集約 S3 バケット、暗号化、ライフサイクルポリシー
Audit Account GuardDuty・Security Hub・Config 委任 Delegated Administrator 権限
Sandbox OU(初期) 初期ワークロード・開発用 基本的なガードレール設定済み

OU(Organizational Unit)構造

Root
├── Security(Log Archive / Audit Account)
├── Sandbox(初期開発用)
└── Custom OUs(ビジネス部門別 - ユーザーが追加)
    ├── Production
    ├── Development
    └── Finance

2. ガードレール(Controls)

3 つのカテゴリ

カテゴリ 実装方式
Preventive(予防的) SCP ベース、違反操作を事前ブロック 特定リージョン以外のリソース作成禁止、S3 パブリックアクセス禁止
Detective(検出的) Config ルール・Security Hub ベース、違反検出・通知 EC2 パブリック IP 割り当て検出、CloudTrail ログ無効化検出
Proactive(プロアクティブ) CloudFormation Hooks、デプロイ前のコンプライアンスチェック S3 バケット暗号化必須チェック、CloudFormation テンプレート検証

ガードレールの義務付けレベル

レベル 説明 無効化
Mandatory(必須) Control Tower が必ず適用、デフォルト有効 無効化不可
Strongly Recommended(強く推奨) AWS 推奨、デフォルト有効 有効化/無効化可能(非推奨)
Elective(選択的) 組織の要件に応じて選択、デフォルト無効 有効化/無効化可能

3. Account Factory

アカウント自動プロビジョニング

  • テンプレートベース:承認済みテンプレートから選択
  • カスタマイズ:AFC(Account Factory Customization)で追加 CloudFormation テンプレート / Config ルール を自動展開
  • Terraform 統合:AFT(Account Factory for Terraform)で IaC 管理

デフォルトで設定される項目

  • AWS アカウント作成・Organizations への追加
  • IAM Identity Center ユーザー・グループ作成
  • SCP / RCP 自動適用
  • CloudTrail ログ配置
  • Config ルール有効化

4. Proactive Controls(CloudFormation Hooks)

CloudFormation デプロイ前のコンプライアンスチェック

テンプレート作成
    ↓
aws cloudformation deploy
    ↓
Proactive Control Hook(Preventive)がチェック
    ↓
コンプライアンス違反検出 → デプロイ中止
コンプライアンス準拠 → デプロイ続行
    ↓
リソース作成

Proactive Control の例

  • S3 バケット:デフォルト暗号化必須
  • EC2 インスタンス:IAM Role 必須
  • RDS:マルチ AZ・バックアップ有効化必須
  • KMS:キーローテーション必須

アーキテクチャ

ランディングゾーン全体構成

graph TD
    A["Root(Management Account)"]
    
    subgraph "Security OU"
        LogArchive["Log Archive Account<br/>(CloudTrail / Config ログ)"]
        Audit["Audit Account<br/>(GuardDuty / Security Hub)"]
    end
    
    subgraph "Sandbox OU"
        Sand["初期開発アカウント"]
    end
    
    subgraph "Custom OUs(ユーザー追加)"
        Prod["Production Accounts"]
        Dev["Development Accounts"]
    end
    
    A --> "Security OU"
    A --> "Sandbox OU"
    A --> "Custom OUs"
    
    A -->|SCP / RCP| "Security OU"
    A -->|SCP / RCP| "Sandbox OU"
    A -->|SCP / RCP| "Custom OUs"
    
    A -->|CloudTrail 集約| LogArchive
    A -->|GuardDuty 委任| Audit
    
    "Security OU" --> A
    "Sandbox OU" --> A
    "Custom OUs" --> A
    
    style A fill:#ff9999
    style LogArchive fill:#99ccff
    style Audit fill:#99ccff
    style Prod fill:#99ff99
    style Dev fill:#ffff99

コアコンポーネント

1. Organizations(組織階層管理)

Root:最上位、全 OU・Account のポリシー適用基点

OU(Organizational Unit):階層的な Account グループ分け

  • Security:ログ・監査・セキュリティツール集約
  • Sandbox:初期開発・テスト用
  • Production:本番ワークロード
  • Development:開発・検証環境
  • Finance:財務・経営層専用

Account:個別 AWS アカウント

2. IAM Identity Center(SSO)

全アカウントへのシングルサインオン

  • ユーザー / グループ管理(AWS Managed Directory または外部 IdP 連携)
  • 権限セット(Permission Set):各アカウントでの IAM Role に相当
  • セッション期間:デフォルト 12 時間(カスタマイズ可)

デフォルト権限セット

  • AdministratorAccess:フル管理権
  • ReadOnlyAccess:読み取りのみ
  • カスタム権限セット:組織ポリシー定義

3. CloudTrail(監査ログ)

Organization Trail:全 Account / 全 Region の API 呼び出しを記録

  • Log Archive Account の S3 バケットに集約
  • S3 サーバーサイド暗号化
  • MFA Delete 有効化

4. Config(リソース検証)

Organization Config Recorder:全 Account のリソース状態を記録

  • Config ルール自動適用
  • Audit Account へ集約
  • Config Aggregator で一元監視

5. Backup Policy(自動バックアップ)

2025年新機能:Organizations レベルでバックアップスケジュール定義

  • サービス別バックアップ周期(RDS / EBS / EFS / DynamoDB)
  • リソースタグベースの差別化設定

6. RCP(Resource Control Policy)

2025年拡大:S3 / KMS / STS に続き、以下対応

  • ECR(コンテナイメージレジストリ)
  • OpenSearch Serverless
  • Glue(データ統合)

主要ユースケース

1. 新規 AWS 環境のセキュアな構築

シナリオ

  • スタートアップが AWS を初めて導入
  • エンタープライズが AWS クラウドネイティブ化開始
  • 数十〜数百アカウント運用の計画

実装フロー

1. Control Tower ランディングゾーン初期化
   (Management / Log Archive / Audit Account 自動作成)

2. OU 階層設計(Security / Production / Development など)

3. ガードレール有効化
   (Mandatory / Strongly Recommended)

4. Account Factory テンプレート定義

5. ビジネスユーザーがセルフサービスでアカウント作成

2. 既存 AWS 環境への Control Tower 適用(Bring Your Own OU)

シナリオ

  • 既に複数アカウント運用中
  • 組織として ガバナンス統一が必要

課題と対策

  • 既存アカウント SCP 競合:Control Tower が既存 SCP を尊重
  • Delegated Administrator 移行:既存から Control Tower へ段階的移行
  • カスタムグループポリシー:Control Tower と共存可能

3. コンプライアンス要件対応

シナリオ

  • 金融・医療・公共セクターのコンプライアンス監査対応
  • PCI DSS / HIPAA / FedRAMP 準拠

実装内容

  • Proactive Controls で違反リソース作成防止
  • Detective Controls で違反検出・ログ記録
  • 全 CloudTrail ログ検索可能(Log Archive)
  • Security Hub で CIS / NIST フレームワーク準拠状況一元監視

4. マルチリージョン・マルチアカウント展開

シナリオ

  • グローバル企業の地域別 AWS 環境
  • リージョンごとの規制要件対応

実装方法

  • 各リージョンで Control Tower ランディングゾーン(独立)
  • Organizations は全リージョン共通で一元管理
  • SCP / RCP / ガードレール:リージョン別カスタマイズ

設定・操作の具体例

CLI 例 1:Control Tower ランディングゾーン初期化

# AWS マネジメントコンソール から「Launch a landing zone」クリック
# CLI は後続の Account Factory 操作に使用

# ランディングゾーン状態確認
aws controltower list-landing-zones \
  --region us-east-1

# 出力例
# {
#   "landingZones": [
#     {
#       "arn": "arn:aws:controltower:us-east-1:111111111111:landing-zone/abc123",
#       "status": "ACTIVE"
#     }
#   ]
# }

CLI 例 2:Account Factory でアカウント作成(Service Catalog)

# Account Factory Product を検索
aws servicecatalog search-products \
  --filters FullTextSearch=account \
  --region ap-northeast-1

# Account Factory テンプレートで新規アカウント作成
aws servicecatalog provision-product \
  --product-id prod-xxxxxxxxxxxxx \
  --provisioning-artifact-id pa-xxxxxxxxxxxxx \
  --provisioned-product-name "team-a-prod-account" \
  --provisioning-parameters '[
    {"Key": "AccountName", "Value": "Team A Production"},
    {"Key": "AccountEmail", "Value": "teamA+prod@company.com"},
    {"Key": "ManagedOrganizationalUnit", "Value": "Production"},
    {"Key": "SSOUserEmail", "Value": "admin@company.com"},
    {"Key": "SSOUserFirstName", "Value": "Admin"},
    {"Key": "SSOUserLastName", "Value": "User"}
  ]' \
  --region ap-northeast-1

# 出力:RecordId、アカウント作成進行中ステータス

CLI 例 3:ガードレール有効化

# Control Tower コンソール → Organizations → Controls

# コマンドラインからのガードレール有効化は限定的
# (主にコンソール UI で実施)

# 有効なガードレール一覧確認
aws controltower list-controls \
  --region us-east-1

CLI 例 4:Organizations SCP 管理(Control Tower 統合)

# Control Tower が自動生成する SCP を確認
aws organizations list-policies \
  --filter SERVICE_CONTROL_POLICY \
  --region us-east-1

# カスタム SCP 追加(Control Tower と共存)
aws organizations create-policy \
  --content '{
    "Version": "2012-10-17",
    "Statement": [
      {
        "Effect": "Deny",
        "Action": [
          "ec2:TerminateInstances"
        ],
        "Resource": "*",
        "Condition": {
          "StringEquals": {
            "aws:PrincipalOrgID": "o-xxxxxxxxxx"
          }
        }
      }
    ]
  }' \
  --description "Prevent EC2 instance termination" \
  --type SERVICE_CONTROL_POLICY \
  --region us-east-1

CLI 例 5:Account Factory for Terraform(AFT)

# AFT リポジトリで account-request.tf を定義
# GitHub / CodeCommit に commit → AFT パイプライン自動実行

# account-request.tf 例
cat > account-request.tf << 'EOF'
module "new_account" {
  source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"

  control_tower_parameters = {
    AccountName              = "team-b-dev"
    AccountEmail             = "teamb+dev@company.com"
    ManagedOrganizationalUnit = "Development"
    SSOUserEmail             = "admin@company.com"
    SSOUserFirstName         = "Admin"
    SSOUserLastName          = "User"
  }

  account_tags = {
    Team        = "TeamB"
    Environment = "Development"
    CostCenter  = "CC-1001"
  }

  account_customizations_name = "dev-customizations"

  depends_on = [
    aws_organizations_organization.org
  ]
}
EOF

# AFT パイプライン実行(CodeCommit push トリガー)
git add account-request.tf
git commit -m "Add Team B Development Account"
git push origin main

SDK 例(Python)

import boto3

# Organizations API を使用(Control Tower 統合)
orgs = boto3.client('organizations', region_name='us-east-1')

# OU 一覧取得
response = orgs.list_organizational_units_for_parent(
    ParentId='r-abcd'  # Root ID
)

for ou in response['OrganizationalUnits']:
    print(f"OU: {ou['Name']} ({ou['Id']})")

# OU 内のアカウント一覧
accounts = orgs.list_accounts_for_parent(
    ParentId='ou-1234-xxxxxxxx'
)

for account in accounts['Accounts']:
    print(f"Account: {account['Name']} ({account['Id']})")

# SCP ポリシー作成
policy_doc = {
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Deny",
            "Action": "s3:DeleteBucket",
            "Resource": "*"
        }
    ]
}

orgs.create_policy(
    Content=json.dumps(policy_doc),
    Description="Prevent S3 bucket deletion",
    Type="SERVICE_CONTROL_POLICY"
)

IaC 例(CloudFormation StackSet)

AWSTemplateFormatVersion: '2010-09-09'
Description: 'Control Tower - StackSet for multi-account deployment'

Resources:
  ConfigBucketPolicy:
    Type: AWS::S3::BucketPolicy
    Properties:
      Bucket: !Ref ConfigBucket
      PolicyText:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: config.amazonaws.com
            Action: s3:GetBucketVersioning
            Resource: !GetAtt ConfigBucket.Arn

  ConfigBucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: !Sub 'config-logs-${AWS::AccountId}'
      VersioningConfiguration:
        Status: Enabled
      PublicAccessBlockConfiguration:
        BlockPublicAcls: true
        BlockPublicPolicy: true
        IgnorePublicAcls: true
        RestrictPublicBuckets: true
      ServerSideEncryptionConfiguration:
        - ServerSideEncryptionByDefault:
            SSEAlgorithm: AES256

  # StackSet で全アカウントに展開
  GlobalStackSet:
    Type: AWS::CloudFormation::StackSet
    Properties:
      StackSetName: control-tower-baseline
      Capabilities:
        - CAPABILITY_NAMED_IAM
      PermissionModel: SERVICE_MANAGED
      AutoDeployment:
        Enabled: true
        Retain: true
      OperationPreferences:
        MaxConcurrentPercentage: 100
      StackInstancesGroup:
        - DeploymentTargets:
            OrganizationalUnitIds:
              - ou-prod-xxxxx
              - ou-dev-xxxxx
          Regions:
            - ap-northeast-1
      TemplateBody: |
        {
          "AWSTemplateFormatVersion": "2010-09-09",
          "Resources": {
            "Example": {
              "Type": "AWS::CloudFormation::WaitConditionHandle"
            }
          }
        }

IaC 例(Terraform + AFT)

# variables.tf
variable "account_name" {
  description = "Account name"
  type        = string
}

variable "account_email" {
  description = "Account email"
  type        = string
}

variable "ou_name" {
  description = "Organizational Unit name"
  type        = string
}

# main.tf
terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 5.0"
    }
  }
}

provider "aws" {
  region = "ap-northeast-1"
}

# Account Factory リクエスト
module "account_factory_request" {
  source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"

  control_tower_parameters = {
    AccountName              = var.account_name
    AccountEmail             = var.account_email
    ManagedOrganizationalUnit = var.ou_name
    SSOUserEmail             = "admin@company.com"
    SSOUserFirstName         = "Admin"
    SSOUserLastName          = "User"
  }

  account_tags = {
    Terraform   = "true"
    Environment = "production"
    CreatedBy   = "terraform"
  }

  account_customizations_name = "standard-customizations"
}

output "account_id" {
  value       = module.account_factory_request.account_id
  description = "Created AWS Account ID"
}

類似サービス比較表

観点 AWS Control Tower Azure Landing Zone GCP Cloud Foundation Toolkit AWS Organizations(手動)
自動化レベル 高(ランディングゾーン自動構築) 中(一部手動) 低(Terraform テンプレート) 低(手動設定)
セットアップ時間 数時間 1-2 日 1-2 週間 2-4 週間
ガバナンス機能 SCP / RCP / ガードレール 200+ Azure Policy / Management Groups GCP Organization Policy SCP 手動管理
アカウント自動化 Account Factory + AFT Subscription vending Project Factory 手動作成
コンプライアンス対応 Proactive Controls(デプロイ前チェック) Policy definitions Policy enforcement 別途実装
マルチアカウント管理 Organizations 統合 Management Group 階層 Resource Hierarchy Organizations 統合
SSO / Identity IAM Identity Center 統合 Azure AD / Entra Cloud Identity IAM 手動管理
監査・ログ CloudTrail + Config + Security Hub 統合 Azure Monitor + Audit Log Cloud Logging + Cloud Audit Logs 個別設定
Cost(ランディングゾーン) 無料(各サービス利用料別) 無料(各サービス利用料別) 無料(テンプレート) 無料
推奨用途 新規 AWS 導入・エンタープライズ Azure 専用環境 GCP 専用環境 既存複雑な環境

ベストプラクティス

チェックリスト(優先順)

✅ 推奨事項

  • [ ] Control Tower を最初に導入:新規 AWS 環境なら最初のステップに
  • [ ] OU 構造を慎重に設計:最初の 3-4 層が推奨(Security / Production / Development / Sandbox)
  • [ ] Mandatory ガードレール は全有効:AWS が強制するものは無効化しない
  • [ ] Strongly Recommended ガードレール も有効化推奨:セキュリティ要件に応じて判断
  • [ ] Account Factory テンプレートを最小化:初期テンプレートで本当に必要な項目のみ
  • [ ] AFC / AFT で Customization 管理:CloudFormation / Terraform で IaC 化
  • [ ] Proactive Controls を有効化:CloudFormation デプロイ前のコンプライアンスチェック
  • [ ] CloudTrail / Config ログを長期保存:Log Archive S3 に 7 年〜 最低 1 年保持
  • [ ] IAM Identity Center で SSO 統一:各アカウントの個別ユーザー管理廃止
  • [ ] Delegated Administrator 活用:各 OU で Audit Role を持つ専任アカウント設定
  • [ ] 定期 Compliance Dashboard 確認:月 1 回以上ガードレール違反確認

❌ アンチパターン

アンチパターン 問題 代替
全ガードレール有効化 正当な操作もブロック、開発効率低下 要件に応じて Elective は慎重に
Bring Your Own OU での既存環境移行 SCP 競合・権限ズレ・移行リスク 新規環境なら最初から Control Tower
Account Factory を使わずアカウント手動作成 標準化なし、ガバナンス適用漏れ Account Factory 経由の統一
Proactive Controls 無視 コンプライアンス違反リソース作成 CloudFormation Hook で事前チェック
Log Archive アカウント削除 監査ログ喪失、コンプライアンス不対応 Log Archive は必ず保持
OU 構造頻繁な変更 SCP 再適用漏れ、権限ズレ 初期設計を慎重に、変更は最小化
Organizations 管理アカウント移行 Root アカウント権限管理困難 Management Account は変更しない

トラブルシューティング

症状 原因 解決策
ランディング゙゙ディングゾーン作成失敗 Organizations セットアップ未完了 / メールアドレス既使用 Organizations 有効化確認、新メールアドレス使用
Account Factory で「Permission Denied」 IAM Role / Service Catalog 権限不足 管理アカウント で AWSServiceCatalogAdmin ポリシー確認
Proactive Control がコンプライアンス違反検出しない Control 有効化されていない / CloudFormation StackSet 未使用 Control Dashboard で有効状態確認、StackSet で展開
既存 SCP と Control Tower ガードレール競合 SCP 重複定義 既存 SCP 削除、Control Tower ガードレール に統一
Account Factory テンプレート変更反映されない Service Catalog Product 更新未反映 Service Catalog コンソール → Product 更新確認
Log Archive S3 容量超過 CloudTrail / Config ログ削減なし ライフサイクルポリシー で Glacier 移行・Intelligent-Tiering
IAM Identity Center ユーザーが Account アクセスできない Permission Set 割り当て不足 管理アカウント → IAM Identity Center → 権限セット確認
AFT パイプライン実行されない CodeCommit リポジトリパス不正 / IAM Role 権限不足 CodePipeline 実行履歴確認、IAM Role ポリシー確認
Audit Account で GuardDuty / Security Hub 有効化されない Control Tower Delegated Administrator 設定不足 Management Account → Delegated Administrator で Audit Account 指定

2025-2026 最新動向

Proactive Controls 拡張

CloudFormation Hooks による デプロイ前コンプライアンスチェック

  • 2024-2025年新コントロール追加:200+ 組み込みコントロール
  • カスタム Hooks 対応:組織固有のコンプライアンス ルール実装可能
  • 複数 Hook 組み合わせ:複雑なコンプライアンス条件も定義可能

RCP(Resource Control Policy)拡大

  • 2025年新対応:ECR・OpenSearch Serverless・Glue
  • リソース単位制御:特定 S3 バケット・KMS キー への組織レベル制御

AI Services Opt-out Policy

2025年新機能:生成 AI 使用を組織レベルで制御

{
  "Statement": [
    {
      "Sid": "DisableGenAIServices",
      "Effect": "Deny",
      "Action": [
        "bedrock:*",
        "sagemaker:CreateAutoMLJob"
      ],
      "Resource": "*"
    }
  ]
}

Backup Policy 強化

2025年新機能:自動バックアップスケジュール一括管理

  • サービス別周期:RDS 毎日・EBS 週 1 回など
  • 保持期間統制:データ保護要件に基づく自動ポリシー
  • リソースタグベース:タグで差別化設定

Chatbot Policy(Chat Applications Policy)

2025年新機能:Slack・Teams からの AWS 操作制御

  • 許可アクション制限:Chatbot から実行可能な API 制限
  • チャネル単位制御:Team チャネル別の権限差別化

Terraform / CDK 完全統合

AWS CDK for Control Tower(開発中)

# AWS CDK で ランディングゾーン定義
from aws_cdk import aws_controltower as ct

landing_zone = ct.LandingZone(
    stack, "MyLandingZone",
    organizational_unit="ou-prod",
    management_account="123456789012",
    guardrails=[
        "ct-aws-pr-compute-ec2-volume-encryption-enabled",
        "ct-aws-pr-storage-s3-public-access-block"
    ]
)

学習リソース・参考文献

公式ドキュメント

  1. AWS Control Tower User Guide

  2. AWS Control Tower Controls Reference

  3. Account Factory for Terraform(AFT)

AWS ブログ・ホワイトペーパー

  1. AWS Cloud Operations Blog - Control Tower

    • 運用事例・ベストプラクティス
  2. Well-Architected Framework - Multi-Account Strategy

    • Control Tower を活用した推奨アーキテクチャ

学習リソース

  1. A Cloud Guru - AWS Control Tower Deep Dive

    • ハンズオンコース
  2. Linux Academy / Pluralsight - Multi-Account AWS

    • Organizations・Control Tower 統合コース

OSS / コミュニティ

  1. AWS Landing Zone Accelerator(ALZ)

    • Control Tower を拡張した高度なランディングゾーン テンプレート
  2. Terraform AWS Control Tower Module

    • Community 開発の Terraform モジュール

実装例

例 1:3 層 OU 構造(Production / Development / Sandbox)

Root
├── Security(自動)
│   ├── Log Archive Account(自動)
│   └── Audit Account(自動)
├── Production OU
│   ├── prod-account-1
│   ├── prod-account-2
│   └── SCP:リージョン制限・S3 パブリックアクセス禁止
├── Development OU
│   ├── dev-account-1
│   ├── dev-account-2
│   └── SCP:本番環境削除操作禁止のみ
└── Sandbox OU
    ├── sandbox-account-1
    └── SCP:デフォルト設定(ユーザー自由)

実装手順

  1. Control Tower ランディングゾーン初期化
  2. AWS Organizations コンソール → 上記 OU 階層構築
  3. OU ごとに SCP / ガードレール カスタマイズ
  4. Account Factory テンプレート → OU ごとにカスタマイズ

例 2:Account Factory for Terraform(IaC 統合)

# GitHub リポジトリ:account-requests/

# account-requests/team-a-prod/main.tf
module "account_request" {
  source = "github.com/aws-ia/terraform-aws-control_tower_account_factory"

  control_tower_parameters = {
    AccountName              = "Team A Production"
    AccountEmail             = "teamA+prod@company.com"
    ManagedOrganizationalUnit = "Production"
  }

  account_tags = {
    Team        = "TeamA"
    Environment = "production"
    Terraform   = "true"
  }

  account_customizations_name = "team-a-customizations"
}

output "account_id" {
  value = module.account_factory_request.account_id
}

# GitHub Actions トリガー → CodePipeline → AFT パイプライン

例 3:Proactive Controls カスタマイズ

# Control Tower Customizations for Control Tower(CfCT)
region: ap-northeast-1
version: 2021-03-15

resources:
  - name: org-baseline
    resource_file: templates/org-baseline.yaml
    deploy_method: stack_set
    deployment_targets:
      organizational_units:
        - Production
        - Development

  - name: security-controls
    resource_file: templates/security-controls.yaml
    deploy_method: stack_set
    deployment_targets:
      organizational_units:
        - Production
    parameters:
      - key: EnableMFADelete
        value: "true"

チェックリスト

ランディングゾーン初期化前

  • [ ] Organizations 有効化確認
  • [ ] ランディングゾーン作成用メールアドレス準備(Log Archive / Audit 用)
  • [ ] 既存 SCP・IAM ポリシー確認(Control Tower と競合しないか)
  • [ ] OU 階層設計確定(Security / Production / Development / Sandbox など)

ランディングゾーン初期化後

  • [ ] Management Account で SSO ユーザー作成確認
  • [ ] Log Archive Account の CloudTrail S3 バケット確認
  • [ ] Audit Account での GuardDuty / Security Hub 有効化確認
  • [ ] デフォルトガードレール(Mandatory)有効確認
  • [ ] Account Factory テンプレート確認・カスタマイズ

運用開始後

  • [ ] 月 1 回:Compliance Dashboard 確認
  • [ ] 月 1 回:CloudTrail / Config ログ監査
  • [ ] 四半期ごと:ガードレール見直し(新しいコントロール追加検討)
  • [ ] 半年ごと:OU 構造見直し(新しいビジネス要件対応)
  • [ ] 年 1 回:Account Factory テンプレート更新

まとめ

AWS Control Tower は 「マルチアカウント AWS 環境のランディングゾーンを自動構築・継続管理し、組織全体にセキュリティ・コンプライアンスポリシーを一元強制するサービス」 です。Organizations 手動管理なら数週間かかるセットアップを数時間で実現し、Account Factory でアカウント作成を標準化・自動化。Proactive Controls でデプロイ前のコンプライアンスチェック、Detective Controls で違反検出・通知を自動化します。

Control Tower が向いている場合

  • 新規 AWS 導入:初期セットアップが最短
  • エンタープライズ化:数十〜数百アカウント運用
  • コンプライアンス重視:金融・医療・公共セクター
  • クラウドネイティブ転換:セキュア基盤を最初に構築

既存複雑な環境の場合

  • Bring Your Own OU で段階的移行
  • Organizations 既存ポリシーと共存
  • Control Tower Customizations で拡張

2025-2026年の RCP 拡大・AI Services Opt-out Policy・Backup Policy 強化により、Control Tower はさらに多様なコンプライアンス要件に対応可能になります。


最終更新:2026-04-26 バージョン:v2.0