Landing Zone and Platform Foundations on AWS
AWS landing zones on Control Tower, extended where it stops
On AWS the landing zone conversation usually starts with a false choice between AWS Control Tower and the Landing Zone Accelerator. They are not alternatives: Control Tower is the foundational landing zone and the accelerator layers the deeper networking, logging and compliance configuration on top. The more important distinction is that organisation-scope policy on AWS can only take permissions away, so anything that needs to deploy or repair configuration has to be built from Config rules plus automation, or written into accelerator code you then own.
Why AWS
When this is the right platform.
- Account-level isolation is a genuinely strong security boundary. A compromised workload is contained by the account edge rather than by network rules inside a shared subscription.
- AWS Control Tower gives you an opinionated, supported landing zone with dedicated log archive and audit accounts, plus drift detection against the intended baseline.
- Service control policies and resource control policies apply at organizational unit scope and cannot be overridden by an account administrator, which is a hard ceiling rather than a guideline.
- Account Factory makes vending a first-class concept, with an Account Factory for Terraform path where the platform is already Terraform.
- Delegated administration is well established across the security services, so the management account can stay out of day-to-day operations.
Where it is less suited
We would rather say this now than after a migration.
- Service control policies and resource control policies only take permissions away. There is no organisation-scope way to deploy or repair configuration, so remediation has to be built from Config rules plus automation or written into accelerator code.
- AWS Control Tower is opinionated and slow to move. Landing zone updates and account enrolment are long-running batch operations, and anything it does not model has to be built beside it.
- The Landing Zone Accelerator is a substantial codebase that you operate. Version upgrades are real engineering work, and skipping them accumulates skew that eventually blocks the next change.
- Account-level isolation means account sprawl, and several services still need enabling per account and per region unless organisation-wide configuration covers them.
- Region governance is ongoing overhead. Regions have to be opted into and then governed, control coverage varies by region, and an unreviewed region is a real gap rather than a theoretical one.
- Security service naming and packaging has shifted recently, so vendor documentation, blog posts and existing code do not all agree. We confirm current behaviour against your deployed version rather than trusting an article.
Business outcomes
What AWS delivers here.
- An account structure with real boundaries
- Organizational units carrying inherited policy, with workloads separated into their own accounts so a compromise or a runaway cost is contained by the account edge.Agreed measure: Share of production workloads in a dedicated account under the intended organizational unit, verified at handover.
- Guardrails an account admin cannot switch off
- Service control policies and resource control policies at organizational unit scope, applying a permission ceiling that local administrators cannot raise.Agreed measure: Controls enforced at organisation scope, with every exception recorded and dated.
- Accounts vended, not created
- Account Factory producing new accounts pre-enrolled, with baseline controls, identity, logging and network attachment applied before anyone signs in.Agreed measure: Elapsed time from request to a governed account, baselined against your current process.
- An audit record outside the workload
- Organisation-wide API activity centralised into a dedicated log archive account, encrypted with keys the logged teams do not control.Agreed measure: Whether an audit question can be answered from the log archive alone, tested on a sample.
- Central routing instead of a peering mesh
- A transit hub with route table segmentation and shared network constructs, so connectivity scales past the point a peering mesh stops working.Agreed measure: Number of workload-owned internet egress paths and peering connections outside the central pattern.
- Honest ownership of the accelerator
- If the Landing Zone Accelerator is deployed you own a substantial infrastructure-as-code codebase, and we set up the upgrade path rather than leaving you to discover it.Agreed measure: Whether an accelerator release can be taken through your pipeline without hand-editing deployed resources.
Common client problems
What we usually hear first.
Control Tower or Landing Zone Accelerator? Which one do we pick?
Neither, in the sense that this is not a choice. AWS positions Control Tower as the foundational landing zone and the accelerator as an addition on top for the deeper networking, logging and compliance configuration Control Tower does not cover. Teams that run a bake-off lose weeks and usually deploy both anyway. The real question is which parts of the accelerator you need, because deploying all of it means owning all of it.
How do we auto-remediate non-compliant resources across accounts?
This is the genuine gap compared with Azure and it is better to plan for it than be surprised. Service control policies and resource control policies only take permissions away, so there is no organisation-scope equivalent of a policy that deploys or fixes configuration. Remediation has to be built from Config rules plus automation, or written into accelerator code. We scope that as real engineering work rather than a configuration setting.
We are running out of service control policies.
You have hit a quota that catches a lot of designs: service control policies cap at 10 attached per root, organizational unit or account, with a 10,240 character limit per policy document. Resource control policies are tighter again at five per entity and 5,120 characters, and one of those five is taken by the default policy you cannot detach. A design that assumed unlimited policy layering runs into this partway through a programme. The fix is consolidating policies by intent rather than by author, moving detective controls into Config where they do not need to be preventive, and using the organizational unit structure to reduce the layering needed.
Every new account needs the same 15 services enabled per region. It is endless.
That is the structural cost of account-level isolation, and it is exactly what the vending automation and organisation-wide service configuration exist to absorb. Several security services can be enabled and managed across the organisation from a delegated administrator account with auto-enable set per Region, rather than switched on account by account. Where that is not available, the enablement belongs in the account baseline so it happens before handover instead of appearing on a checklist afterwards.
Control Tower operations take forever and we cannot wait.
It is opinionated and slow to move, and landing zone updates and account enrolment are genuinely long-running batch operations. That is a real constraint on your programme plan rather than something to tune away. We sequence work so enrolment batches run off the critical path, and anything Control Tower does not model gets built beside it rather than waited on.
We inherited an accelerator deployment two versions behind. Now what?
Upgrading is real engineering work and skipping versions accumulates skew that eventually blocks the next change you need, so this gets worse with time rather than better. We assess the delta between your deployed version and current, identify local modifications that will conflict, and plan an upgrade path in steps with a tested rollback. Sometimes the honest recommendation is a clean redeploy of specific stacks rather than a sequential upgrade.
How we deliver
Our AWS delivery approach.
- 01
Assessment and advisory
The AWS assessment concentrates on structure, policy quotas and how much accelerator you genuinely need, because all three are awkward to change once workloads depend on them.
- Organisation and account inventory. Existing accounts, organizational units, applied policies and enrolment state, including anything created outside Control Tower.
- Organizational unit design against funding. Structure modelled on how work is funded and regulated rather than the current org chart, since policy and access inherit from it.
- Policy quota budgeting. Service control policy count and size planned against organisation limits, with detective controls kept out of preventive policy where possible.
- Accelerator scope decided. Which parts of the Landing Zone Accelerator you actually need, since deploying it means taking ownership of the codebase and its upgrades.
- Log archive and retention design. Central bucket structure, encryption key ownership and retention by log type, agreed before organisation-wide logging is switched on.
- Region governance plan. Which regions are opted into and how they are governed, because control coverage varies by region and an unreviewed region is a real gap.
- 02
Architecture and implementation
Control Tower first as the foundational landing zone, then only the accelerator components you need on top of it. Vending and central logging are established before workload accounts arrive.
- Control Tower as the foundation. The landing zone established with dedicated log archive and audit accounts, and drift detection against the intended baseline enabled from the start.
- Organizational units before accounts. Hierarchy and inherited policy in place first, so a vended account lands somewhere governed rather than being moved afterwards.
- Vending through Account Factory. New accounts produced as pre-approved configurations, with the Terraform path used where the platform is already Terraform.
- Transit hub with route segmentation. A central router for network and hybrid attachments, with route tables enforcing isolation and shared out to member accounts.
- Logs centralised into the archive account. Organisation-wide API activity and member account log groups streamed to a central bucket the source accounts cannot alter.
- Delegated administration everywhere. Security and posture services operated from a delegated account so the management account is not the day-to-day operations account.
- 03
Security and governance
The AWS model gives you a hard permission ceiling at organisation scope and no way to remediate from the same place. Both facts shape the design.
- Permission ceilings at organisation scope. Service control policies and resource control policies applied to organizational units, setting a limit an account administrator cannot raise.
- Identity Center as the only human route. Workforce sign-in and permission sets granted to groups across member accounts, with long-lived local users removed.
- Remediation built, not assumed. Config rules paired with automation for anything that needs fixing rather than blocking, because organisation policy cannot deploy or repair.
- Log archive immutable to its sources. A dedicated account holding centralised logs, encrypted with customer-managed keys that the logged accounts do not control.
- Organisation-wide service enablement. Posture and vulnerability services turned on across accounts from a delegated administrator rather than per account and per region by hand.
- Management account kept out of use. Delegated administrators for security services, with the management account reserved for the small set of actions that genuinely require it.
- 04
Adoption and enablement
Account sprawl is the predictable consequence of account-level isolation, so the vending path and the account baseline are what keep it manageable.
- Vending faster than a manual request. The Account Factory path timed against creating an account by hand, because if the governed route is slower it will be worked around.
- Accelerator ownership transferred properly. Handover on the codebase, its configuration files and the upgrade process, since you now operate it rather than consume it.
- Account baseline documented. What a vended account arrives with, what the permission ceiling forbids, and how a team requests something outside it.
- Long-running operations planned for. Enrolment and landing zone update durations built into release planning rather than discovered during a go-live weekend.
- Region opt-in process agreed. Who approves a new region and what governance must be in place before a workload may deploy there.
- Decision records handed over. One record per structural choice covering organizational unit design, policy strategy and accelerator scope, with the reasoning kept.
- 05
Managed continuation
The three things that degrade an AWS landing zone are drift, accelerator version skew, and regions that were opted into and then forgotten.
- Drift reported and owned. Control Tower drift findings routed to a named owner, with recurring drift treated as a process failure rather than a technical one.
- Accelerator upgrades on a cadence. Version currency maintained deliberately, because skipped releases accumulate skew that eventually blocks a change you need urgently.
- Policy quota headroom watched. Service control policy count and size tracked against organisation limits before a new control is designed rather than after it fails to attach.
- New account and region conformance. Vended accounts and newly opted-in regions checked against the intended baseline, since coverage varies by region.
- Log archive cost and retention. Central bucket growth and lifecycle policies reviewed monthly, because organisation-wide logging grows with every account added.
- Exception register reviewed. Policy exceptions revisited at their review date and either renewed deliberately or removed.
Reference architecture
The AWS landing zone, layer by layer.
How the pieces fit together on AWS. Every engagement adapts this, and we will tell you which layers you already have.
- 01
Organisation and identity
One organisation, one workforce identity plane, no local IAM users.
- AWS Organizations
- IAM Identity Center
- Organizational units
- 02
Permission ceiling
Guardrails an account administrator cannot raise, inherited by OU.
- Service control policies
- AWS Control Tower controls
- AWS Config
- 03
Vending and remediation
Accounts vended as code, with repair built rather than inherited.
- Account Factory
- Landing Zone Accelerator on AWS
- AWS CDK
- 04
Connectivity
Central routing and inspection shared out to member accounts.
- AWS Transit Gateway
- Amazon VPC
- Resource Access Manager
- 05
Log archive
Audit and platform logs in an account their sources cannot alter.
- AWS CloudTrail
- Amazon S3 log archive
- AWS Security Hub
Across every layer
- Permission sets granted to groups, never to individuals
- Delegated administration so the management account stays out of daily use
- Tag policies enforcing attribution across accounts
- Drift detection with a named owner
Technology reference
The AWS services we build with.
A reference architecture view of the platform services used in this domain, and what each one does in the design.
Foundation and governance
AWS Control TowerSets up and governs the landing zone, orchestrating account structure, baseline controls and drift detection.
AWS OrganizationsThe account hierarchy and the policy plane for service control policies and resource control policies.
IAM Identity CenterWorkforce sign-in and permission sets across member accounts, orchestrated centrally rather than per account.
AWS Identity and Access ManagementWorkload and service roles inside each account, scoped beneath the organisation permission ceiling.
AWS ConfigConfiguration recording and rule evaluation, grouped into conformance packs deployed across the organisation.
Platform as code
AWS CDKThe framework the Landing Zone Accelerator is written in, and therefore what you take ownership of when you adopt it.
AWS CloudFormationThe deployment engine beneath the accelerator and the vending workflow, including organisation-wide stack sets.
TerraformUsed for the account vending path and platform code where the organisation already standardises on Terraform.
AWS Step FunctionsRuns the account provisioning state machine, allowing non-Terraform steps inside the vending workflow.
AWS Systems ManagerHolds conformance pack documents and vended account metadata for downstream customisations to read.
Connectivity
Amazon VPCThe per-account network boundary that attaches to the central transit hub instead of peering to its neighbours.
AWS Direct ConnectPrivate on-premises connectivity terminated centrally and shared to member accounts.
AWS WAFApplication-layer protection for internet-facing workloads, applied from the platform baseline.
AWS ShieldVolumetric protection applied centrally so workloads inherit it rather than configuring it individually.
Logging, posture and operations
AWS CloudTrailThe organisation-wide API audit record, centralised into the log archive account rather than left per account.
Amazon S3The central log bucket in the archive account, the durable destination for organisation-wide audit and service logs.
Amazon CloudWatchMember account log groups, streamed onward to the central archive bucket.
AWS Security HubAggregated findings and baseline checks across accounts, operated from a delegated administrator account.
Amazon GuardDutyThreat detection enabled across the organisation from a delegated administrator account rather than switched on account by account.
Amazon InspectorVulnerability assessment enabled across the organisation from a delegated administrator account rather than per account.
AWS KMSCustomer-managed keys encrypting the centralised logs, with key access separated from the accounts being logged.
AWS BackupBackup plans applied centrally to resources across member accounts through an organisation policy.
AWS Cost ExplorerCost attribution against the account and tagging structure the landing zone establishes.
Product names and icons are trademarks of Microsoft and Amazon Web Services, reproduced unmodified from their official architecture icon libraries to identify the technologies used in these architectures. Their presence does not indicate partnership, certification or endorsement by either vendor.
AWS questions
What people ask about doing this on AWS.
Cost, lock-in and the parts that go wrong, answered before you have to ask twice.
Is AWS Control Tower enough on its own for a landing zone?
For a smaller estate with straightforward networking, often yes. Control Tower gives you the account structure, baseline controls, dedicated log archive and audit accounts, and drift detection, which is a real landing zone. Where it stops is deeper network topology, more comprehensive centralised logging and broader compliance configuration, which is what the Landing Zone Accelerator adds. Start with Control Tower and add the accelerator components you can name a need for.
How many AWS accounts should we have?
More than feels comfortable at first. The account is the strongest isolation boundary AWS gives you, so separating environments and significant workloads into their own accounts is the point rather than an overhead. The platform needs dedicated management, log archive and audit accounts at minimum. What makes a higher count sustainable is vending automation and organisation-wide service configuration, so we design those before arguing about granularity.
Why can't AWS auto-fix non-compliant resources like Azure Policy does?
Because organisation-scope policy on AWS is deliberately subtractive: service control policies and resource control policies remove permissions and cannot grant or deploy anything. It is a clean security model and a genuine functional gap compared with Azure's deployIfNotExists and modify effects. The practical answer is Config rules paired with automation, or remediation written into accelerator code, and either way it is engineering work to build and maintain.
What happens to our existing AWS accounts when we adopt Control Tower?
They can be enrolled into the organisation and brought under governance, but enrolment is a long-running operation and non-conforming accounts often need remediation first. Some accounts turn out to be cheaper to replace than to remediate, particularly where local IAM users, unmanaged networking or region sprawl have accumulated. We assess account by account and are direct about which ones are not worth enrolling.
Are we locked into the Landing Zone Accelerator once we deploy it?
Not locked in, but you are committed to operating it, and that is the part teams underestimate. It is a substantial infrastructure-as-code codebase and upgrades are genuine engineering work. Moving off it means reimplementing what it configured. That is a reason to deploy the components you need rather than all of them, and to keep local modifications minimal and documented so upgrades stay tractable.
What is the biggest cost surprise in an AWS landing zone?
Centralised logging, followed by network transit. Organisation-wide CloudTrail and log streaming into a central bucket grows with every account you add, and the storage lifecycle is easy to leave on defaults. The transit hub carries an hourly attachment cost per network plus data processing, which is predictable but often left out of early estimates. We size both at expected account count rather than at day one.
Related industries
Where this work has the most leverage.
Logistics and Warehousing
Shipment and document automation, proof-of-delivery processing and exception dashboards that let a small team run a large network.
Manufacturing and Distribution
Demand and inventory intelligence, production analytics and supplier automation built on data your planners already trust.
Professional Services
Governed enterprise search, document intelligence and secure copilots that respect matter confidentiality and conflict boundaries.
Free discovery workshop
Start with a landing zones discovery workshop.
Bring one challenge. We will assess whether AWS is the right platform for it before recommending anything.