AWS Control Tower Landing Zone

Enterprise-grade Terraform automation for deploying AWS Control Tower with comprehensive governance, security, and compliance controls.

Get Started View on GitHub


🚀 Features

Multi-Account Architecture

Secure, scalable organizational structure with automated account vending

35+ Service Control Policies

Comprehensive governance controls for security and compliance

Zero Trust Networking

Network Firewall with stateful inspection and deny-by-default rules

Automated Operations

Drift detection, state backups, and account bootstrapping

Cost Optimization

AWS Budgets, anomaly detection, and lifecycle policies

Secrets Management

AWS Secrets Manager integration for sensitive data

Comprehensive Testing

8 test suites with 50+ OPA policy rules

Extensive Documentation

20+ guides covering all aspects of deployment and operations


📊 Project Status

Component Status Completion
Core Infrastructure ✅ Complete 100%
Security & Compliance ✅ Complete 100%
Networking ✅ Complete 100%
Account Vending ✅ Complete 100%
Cost Optimization ✅ Complete 100%
Secrets Management ✅ Complete 100%
Testing Framework ✅ Complete 100%
Documentation ✅ Complete 100%
Best Practices ⏳ Partial 85%

Overall Status: ✅ Production Ready


🎯 Quick Start

Prerequisites

Ensure you have AWS Organizations enabled and Terraform 1.6+ installed before proceeding.

# Required
- AWS Organizations enabled
- Terraform >= 1.6.0
- AWS CLI >= 2.0
- Management account access

# Recommended
- jq, tfsec, terraform-docs, make

Installation

# 1. Setup pre-commit hooks
./scripts/setup-pre-commit.sh
./scripts/setup-git-secrets.sh

# 2. Deploy backend (first time only)
cd examples/terraform-backend
terraform init && terraform apply
terraform output -raw backend_config_hcl > ../../backend.hcl
cd ../..

# 3. Initialize and deploy
terraform init -backend-config=backend.hcl
make plan
make apply

Control Tower deployment takes 60-90 minutes. Plan accordingly.


📚 Documentation

Getting Started

Architecture & Design

Operations


🏗️ Architecture

┌─────────────────────────────────────────────────────────────┐
│                    Management Account                        │
│  ┌────────────────────────────────────────────────────────┐ │
│  │              Control Tower Landing Zone                │ │
│  │  • GuardDuty  • Security Hub  • AWS Config            │ │
│  │  • CloudTrail • Network Firewall • Transit Gateway    │ │
│  └────────────────────────────────────────────────────────┘ │
└──────────────────────────┬───────────────────────────────────┘
                           │
        ┌──────────────────┴──────────────────┐
        │                                     │
┌───────▼────────┐                   ┌────────▼───────┐
│  Security OU   │                   │  Workload OUs  │
│                │                   │                │
│  • Log Archive │                   │  • Production  │
│  • Audit       │                   │  • Non-Prod    │
│  • Security    │                   │  • Development │
└────────────────┘                   └────────────────┘

🔒 Security Features

  • 35+ Service Control Policies - Comprehensive governance controls
  • GuardDuty - Threat detection across all accounts
  • Security Hub - CIS and AWS Foundational standards
  • AWS Config - Configuration compliance tracking
  • Network Firewall - Stateful packet inspection
  • KMS Encryption - All data encrypted at rest
  • IAM Access Analyzer - Resource access analysis
  • VPC Flow Logs - Network traffic monitoring

💰 Cost Estimate

Component Monthly Cost Notes
Control Tower $0 No charge
GuardDuty $5-10 Per account
Security Hub $5-10 Per account
AWS Config $10-20 Per account
Network Firewall $350+ Per AZ
Transit Gateway $36+ Per attachment
NAT Gateway $32-96 Per gateway
Total (Single Account) $450-550 Approximate

Cost optimization features can reduce costs by 20-30% in non-production environments.


🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Run tests: make test-all
  5. Submit a pull request

📞 Support

For issues and questions:


📄 License

This project is licensed under the MIT License - see the LICENSE file for details.


Built with ❤️ using Terraform, AWS Control Tower, and AWS Organizations


Back to top

Copyright © 2024. Distributed under the MIT License.

This site uses Just the Docs, a documentation theme for Jekyll.