Introduction
As organisations expand their cloud infrastructure, AWS Control Tower is increasingly seen as vital for establishing secure, compliant, and scalable multi-account environments. Leveraging AWS best practices, Control Tower automates governance, logging, identity management, and account provisioning.
However, problems can arise when the Control Tower setup fails partway through the process.
Common Errors
- “AWSControlTower could not assume the AWSControlTowerAdmin role”
- “Landing zone drift detected”
- “AWSControlTowerCloudTrailRole access lost”
These failures can occur unexpectedly, even for seasoned cloud architects, because Control Tower relies on several tightly integrated AWS services, such as IAM, AWS Organisations, CloudFormation StackSets, AWS Config, and CloudTrail.
Fortunately, these issues can be diagnosed and resolved by following a structured troubleshooting approach.
This guide outlines what cloud engineers should validate, repair, and verify when AWS Control Tower landing zone setup fails.
Section 1: The Drift Problem
AWS Control Tower automates the deployment of a secure landing zone by creating and managing key governance components, including:
- IAM governance roles
- Service-linked roles
- CloudTrail centralised logging
- AWS Config compliance monitoring
- CloudFormation StackSets for multi-account deployment
- AWS Organisations integration
If any of these components are missing, misconfigured, or only partially created, Control Tower will not complete its setup.
Common Error Scenarios
- Error Type 1: Control Tower Cannot Assume Admin Role
- Example error:AWSControlTower could not assume the AWSControlTowerAdmin role
- This blocks Control Tower from managing governance operations.
- Error Type 2: Missing Service-Linked Role
- Example error:AWSServiceRoleForAWSControlTower cannot be found
- Without this role, Control Tower cannot interact with AWS Organisations and other services.
- Error Type 3: Landing Zone Drift Detected
- Example error:AWS Control Tower no longer has access to AWSControlTowerCloudTrailRole
- This happens when Control Tower loses access to essential governance roles.
Why These Errors Occur
These issues commonly arise due to:
- Interrupted Control Tower deployment
- Internet connectivity loss during setup
- Partial IAM role creation
- Missing service-linked roles
- Incorrect role trust relationships
- Manual modification of Control Tower roles
- Incomplete CloudFormation StackSet configuration
These failures leave the landing zone in an inconsistent state, blocking governance operations.
Section 2: Solving the Issue
Resolving these issues involves validating and repairing critical Control Tower dependencies.
Follow the steps below in sequence:
Step 1: Verify You Are Using the Management Account
Control Tower can only be deployed from the AWS Organisations Management Account.
Run:
aws sts get-caller-identity
Expected result:
Arn: arn:aws:iam:::root
If you are not using the management account, Control Tower setup will fail.
Step 2: Configure the Correct AWS Region
Control Tower is region-specific. Incorrect region configuration prevents service communication.
Set region environment variables:
export AWS_REGION=’us-west-2′
export AWS_DEFAULT_REGION=’us-west-2′
export AWS_PAGER='””‘
Verify region:
aws configure get region
Step 3: Verify AWSControlTowerAdmin Role Trust Policy
Control Tower must be able to assume the governance admin role.
Check role configuration:
aws iam get-role \
–role-name AWSControlTowerAdmin
Expected trust policy:
{
“Effect”: “Allow”,
“Principal”: {
“Service”: “controltower.amazonaws.com”
},
“Action”: “sts:AssumeRole”
}
If this trust relationship is missing or incorrect, Control Tower cannot operate.
Step 4: Ensure Service-Linked Role Exists
Control Tower requires a service-linked role for service integration.
If missing, create it:
aws iam create-service-linked-role \
–aws-service-name controltower.amazonaws.com
This enables Control Tower to manage AWS resources.
Step 5: Verify or Create StackSet Execution Role
Control Tower uses CloudFormation StackSets to deploy governance controls.
Create trust policy file:
cat > trust.json <<EOF
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“Service”: “cloudformation.amazonaws.com”
},
“Action”: “sts:AssumeRole”
}
]
}
EOF
Create role:
aws iam create-role \
–role-name AWSControlTowerStackSetRole \
–assume-role-policy-document file://trust.json
Attach permissions:
aws iam attach-role-policy \
–role-name AWSControlTowerStackSetRole \
–policy-arn arn:aws:iam::aws:policy/AdministratorAccess
Step 6: Repair Landing Zone Drift Issues
If Control Tower reports drift involving governance roles:
Example error:
AWSControlTowerCloudTrailRole inaccessible
Resolution approach:
- Remove incorrect policies
- Remove corrupted roles
- Allow Control Tower to recreate them
Control Tower automatically restores missing governance roles during reset.
Step 7: Verify Organizations Integration
Control Tower must be integrated with AWS Organizations.
Check integration:
aws organizations list-aws-service-access-for-organization
Expected result:
controltower.amazonaws.com enabled
Section 3: Benefits or Outcomes
Following these validation and repair steps restores Control Tower functionality and governance operations.
Key operational outcomes include:
Fully Operational Governance Framework
Control Tower resumes managing:
- IAM governance roles
- Compliance monitoring
- CloudTrail logging
- Multi-account governance
Secure Enterprise Landing Zone Foundation
Critical governance roles become operational:
| Role | Purpose |
| AWSControlTowerAdmin | Governance control |
| AWSControlTowerExecution | Account execution |
| AWSControlTowerStackSetRole | Infrastructure deployment |
| AWSServiceRoleForAWSControlTower | Service integration |
Enterprise-Ready Cloud Architecture
The landing zone becomes ready for:
- Multi-account deployment
- Guardrail enforcement
- Compliance monitoring
- Centralized logging
- Enterprise cloud governance
Section 4: Potential Challenges or FAQs
FAQ 1: Why does Control Tower fail to assume roles?
Cause:
- Missing or incorrect trust relationship
Resolution:
- Verify trust policy includes:controltower.amazonaws.com
FAQ 2: Why does Landing Zone Drift occur?
Cause:
- Manual modification or deletion of Control Tower roles
Resolution:
- Reset landing zone
- Allow Control Tower to recreate roles
FAQ 3: Can required roles be created manually?
Yes, but trust policies must be exact.
Incorrect trust configuration prevents Control Tower from assuming roles.
FAQ 4: How to validate Control Tower role health?
Run:
aws iam list-roles \
–query “Roles[?starts_with(RoleName, ‘AWSControlTower’)]”
Verify required roles exist.
FAQ 5: How to prevent Control Tower setup failures?
Best practices:
- Always deploy from Management Account
- Never interrupt Control Tower setup
- Avoid modifying Control Tower IAM roles manually
- Always verify region configuration
- Ensure AWS Organizations integration is active
Conclusion
AWS Control Tower is a powerful governance framework, but its setup depends on precise IAM role configuration, service integrations, and organizational trust relationships.
When landing zone deployment fails, the issue is almost always related to:
- IAM role trust configuration
- Missing service-linked roles
- StackSet execution role misconfiguration
- Landing zone drift
- AWS Organizations integration
By validating these components systematically, cloud engineers, Architects can restore Control Tower functionality and establish a secure, enterprise-grade landing zone.
Control Tower remains the recommended foundation for secure multi-account AWS environments
Call to Action
If you are deploying AWS Control Tower or building enterprise landing zones, ensure governance roles, service integrations, and organizational trust configurations are validated early.
This approach will prevent deployment failures and ensure scalable cloud governance.
