AWS Control Tower ensures your accounts conform to company-wide policies. It provides the simple way to setup and govern an multi-account environment.
Features
- Setup a new account using a multi-account strategy
- Integrate directly with AWS Organizations service
- Automatically set up AWS Organizations to manage accounts and SCP(Service Control Policies)
- Provide the dashboard to manage accounts and monitor compliance
AWS Control Tower vs. AWS Organizations
AWS Control Tower and AWS Organizations – AWS Organizations (amazon.com)
- AWS Organizations is the service to manage multiple accounts through a single root account.
- AWS Control Tower extends the AWS Organizations by applying preventive and detective guardrails to keep your accounts from divergence form best practices.
Setup
- AWS Organization
- Organization Units (OUs)
- Service Control Policies (SCPs)
- Shared Accounts
- Management account
- Log Archive account
- Audit account
Landing Zone
A Landing Zone is an automatically provisioned multi-account environment that is secure and compliant.
It consists of
- AWS Organization
- Organization Units (OU)
- Service Control Policies (SCP): Preventive actions to disallow non-secure policies
- Account Factory
- IAM Identity Center
- Guardrails & AWS Config
- Detective actions to identify non-compliance resources, such as untagged resources
Account Factory
Features
- Automatically provision accounts
- Create pre-approved configurations for AWS accounts in your Organization
- VPC Settings, subnets, regions…
- Use AWS Service Catalog to provision resources for a new account
- Events
- You can catch the “CreateManagedAccount” event in the EventBridge rule and send it to SNS or Lambda
# Event
{
"version": "0",
"detail-type": "AWS Service Event via CloudTrail",
"source": "aws.controltower",
"account": "XXXXXXXXXXXX",
...
"detail": {
"eventVersion": "1.05",
"eventSource": "controltower.amazonaws.com",
"eventName": "CreateManagedAccount",
"eventType": "AwsServiceEvent",
"serviceEventDetails": {
"createManagedAccountStatus": {
"organizationalUnit":{
"organizationalUnitName":"Custom",
"organizationalUnitId":"ou-XXXX-l3zc8b3h"
},
"account":{
"accountName":"LifeCycle1",
"accountId":"XXXXXXXXXXXX"
},
"state":"SUCCEEDED",
...
}
}
Account Factory Customization (AFC)
- Custom Blueprint
- CloudFormation Template
- as a Service Catalog product
- Only 1 blueprint can be deployed to the account
- CloudFormation Template
Account Factory for Terraform (AFT)
- You can provision accounts using the account request Terraform file (account-request.tf).
- CodePipeline can be used to orchestrate the CI/CD pipeline.
module "aft" {
...
# Optional Feature Flags
aft_feature_enterprise_support = false
aft_feature_delete_default_vpcs_enabled = false
}
Detecting Policy Violations
You can detect and remediate policy violations.
Guardrail
- Provides on-going governance of your landing zones (environments)
- Detective – using AWS Config
- Preventive – using SCPs (Service Control Policies)
- Levels
- Mandatory
- ex) Disallow public Read access to the Log Archive account
- Strongly Recommended
- Optional
- Based on AWS Best Practices
- ex) Enable EBS encryption
- Elective
- Optional
- Commonly used practices
- ex) disallow delete actions without MFA in S3
- Mandatory
Migrating Existing Account to Control Tower
- Move the target account to the unregistered OU (Organization Unit)
- From the Organization Management account
- Create an IAM role “AWSControlTowerExecution”
- Evaluation – Deploy the AWS Config “Conformace Packs”
- Evaluate the result of the conformance packs
- Remove the Config delivery and recoder
- Move the account to the target OU under the Control Tower
