Control Tower
π What is AWS Control Tower?¶
AWS Control Tower is a service that helps you set up and govern a secure, multi-account AWS environment based on best practices. It's ideal for large organizations or teams needing multi-account management, security, and compliance enforcement.
π§ Core Components of Control Tower¶
-
Landing Zone: A well-architected, multi-account AWS environment.
-
Organizations: AWS Control Tower uses AWS Organizations to manage accounts.
-
Organizational Units (OUs): Group AWS accounts logically (e.g., Dev, Prod).
-
Guardrails: Preconfigured policies to enforce security, compliance, and operations.
-
Account Factory: Automates the creation of new AWS accounts within Control Tower.
-
Service Catalog: Uses Service Catalog for provisioning new accounts.
π Types of AWS Control Tower Guardrails¶
β By Purpose¶
-
Preventive: Blocks actions using SCPs (e.g., disallow public S3 access).
-
Detective: Monitors actions using AWS Config (e.g., detect unencrypted buckets).
π§ By Enforcement¶
-
Mandatory: Always ON (e.g., canβt disable AWS Config).
-
Strongly Recommended: Optional but advised (e.g., block public S3).
-
Optional: Use based on needs (e.g., detect instance types).
π§© Examples¶
| Type | Example |
|---|---|
| Preventive | Disallow public access to S3 |
| Detective | Detect root user without MFA |
| Mandatory | Disallow disabling CloudTrail |
π Step-by-Step AWS Control Tower Tutorial¶
π Prerequisites¶
-
A management AWS account with admin privileges.
-
AWS Organizations enabled.
-
No existing conflicting AWS Config rules or SCPs.
ποΈ 1. Landing Zone Setup¶
-
Sign in to the AWS Management Console (Root/Org Admin account).
-
Go to AWS Control Tower console.
-
Click Set up Landing Zone.
-
Select your region (Control Tower is regional).
-
Configure the following:
-
Audit account: For centralized logging.
-
Log archive account: For storing logs (CloudTrail, Config, etc.).
-
-
Select guardrails to enforce (can be mandatory or elective).
-
Click Set up Landing Zone. It takes ~1 hour.
π§± 2. Account Factory: Create New Accounts¶
-
Go to Service Catalog > Account Factory.
-
Choose Enroll account or Provision new account.
-
Fill in:
-
Account email
-
Display name
-
Organizational Unit
-
SSO user details
-
-
Account will be provisioned and automatically set up with VPC, logging, and guardrails.
π§― 3. Guardrails: Enforce Policies¶
Control Tower provides:
-
Mandatory guardrails (non-removable)
-
Elective guardrails (you choose)
Examples:
-
Disallow public S3 buckets
-
Enable logging for all accounts
-
Prevent changes to IAM policies
You can enable guardrails per OU via the Control Tower dashboard.
π§βπ» 4. Manage Organizational Units (OUs)¶
-
From Control Tower, go to Organizational Units.
-
Create OUs like:
-
Dev -
Staging -
Prod
-
-
Apply appropriate guardrails per OU.
π 5. Monitoring and Security¶
Control Tower integrates with:
-
CloudTrail for auditing
-
AWS Config for compliance
-
AWS Security Hub, GuardDuty, and SNS for security alerts
Audit logs are automatically centralized in the log archive account.
π€ 6. Extend with Customizations (Optional)¶
Use Customizations for AWS Control Tower (CfCT) to:
-
Deploy custom CloudFormation stacks to accounts automatically
-
Enforce extra configurations like tags, permissions, or resources
GitHub repo: https://github.com/aws-samples/aws-control-tower-customizations
π§ Best Practices¶
-
Create separate accounts for Dev, Test, Prod.
-
Never use the root account for daily operations.
-
Use OUs to manage different environments.
-
Enable all mandatory and necessary elective guardrails.
-
Use the Account Factory to provision accounts β not manually.
-
Monitor your environments via CloudTrail and Config.
π Helpful Resources¶
Would you like a visual diagram of the architecture or a bash script to automate some of these steps?