A landing zone is the secure, multi-account foundation everything else on AWS sits on: Organizations OUs, guardrails (SCPs), central CloudTrail and Config logging, Security Hub and GuardDuty, single sign-on through IAM Identity Center, and the network spine. Most teams should start with AWS Control Tower and extend it. This page covers what a good one looks like, how Control Tower, the Landing Zone Accelerator and DIY Terraform compare, and a reference design you can copy.
A landing zone is not a product and not a single service. It is a well-architected, multi-account environment your applications land in, set up so every new account is governed, logged and locked down from the first minute.
It bundles five things teams otherwise bolt on late: accounts under AWS Organizations, preventive guardrails through Service Control Policies (SCPs), central tamper-resistant logging (CloudTrail and AWS Config delivered to a dedicated log-archive account), central security findings (Security Hub and GuardDuty), and federated human access through IAM Identity Center so nobody has long-lived IAM users. The network spine usually comes with it.
Why many accounts instead of one with tags? In AWS the account is the strongest isolation and billing boundary. An SCP on the production OU can make it impossible to disable CloudTrail, even for an account admin. A leaked credential or a bad IaC apply stays inside one account. And per-account billing is the cleanest cost signal AWS gives you.
More accounts means more to provision, which is exactly what a landing zone automates: Control Tower's Account Factory (or LZA, or your Terraform) makes a fully governed new account a minutes-long, templated step. Split along the seams that matter: production vs non-production, security tooling vs the workloads it watches, shared infrastructure vs app teams, and a throwaway sandbox.
Keep the management (payer) account empty: no workloads, no day-to-day IAM users, no app data. It holds the keys to the whole organization, so the fewer reasons anyone has to log into it, the better. Control Tower enforces this by design.
Organizational Units (OUs) are how you apply policy to groups of accounts at once. SCPs attach to OUs and flow down to every account inside, so the OU layout is a security decision. This is the common default, drawn from AWS's multi-account guidance:
A young startup can launch with Security (log archive and audit), one Shared-Services account, Prod and Staging workload accounts and a Sandbox, and grow into the rest. Model your security and environment boundaries in OUs, not your org chart.
Preventive guardrails make an action impossible. Detective guardrails flag a misconfiguration. A real landing zone uses both.
Preventive guardrails are SCPs. An SCP does not grant permissions; it caps them, and no IAM policy inside the account can override an SCP deny. A typical starter set:
Detective guardrails are AWS Config rules and Security Hub controls that check resources against a baseline (CIS AWS Foundations, AWS Foundational Security Best Practices) and raise a finding on drift: a public bucket, an open SSH port, an unrotated key. Control Tower ships a managed library of both kinds; LZA and Terraform builds wire the equivalents explicitly. The design question is the same: what must be impossible, and what must be visible.
Centralization turns a pile of accounts into a governed estate: every account ships its audit trail and security findings to one place workload teams cannot tamper with.
For compliance, "show me that logging is central, immutable and complete, and threat detection is on everywhere" is the first question SOC 2, ISO 27001, HIPAA and PCI assessors ask. A landing zone answers it with a screenshot.
CloudTrail records who did what; AWS Config records resource configuration and its history. Both are enabled org-wide and delivered to the Log Archive account. Because the logs live in a different account and an SCP forbids touching them, an attacker in an application account cannot erase their tracks. That is what makes the trail trustworthy enough for an auditor.
GuardDuty watches CloudTrail, VPC flow logs and DNS logs for signs of compromise. Security Hub collects GuardDuty findings, Config results and its own standards checks into one prioritized view. Enable both org-wide with the Audit account as delegated administrator, so every finding lands in one queue. Inspector and Macie plug into the same pattern.
Two concerns cut across every account: how people get in, and how accounts talk to each other.
Connect IAM Identity Center to your identity provider (Okta, Entra ID, Google Workspace or its built-in directory) and define permission sets (ReadOnly, PowerUser, Admin) mapped to groups across accounts. Engineers sign in once and get short-lived role credentials. No access keys in dotfiles, and disabling someone in your IdP removes their access to every account at once.
Each workload account has its own VPC (a spoke) attached to a central Transit Gateway (the hub) in the Network account, which routes between them and out through central egress. This beats a mesh of VPC peering past a handful of VPCs. Shared DNS, egress and VPC endpoints live in the hub. Start with a couple of VPCs and add the Transit Gateway when peering gets awkward; the landing zone reserves the address space so growth stays clean.
Most teams should start with Control Tower. A regulated or complex estate may need LZA. A platform team with the staff to maintain it may go pure Terraform or OpenTofu.
AWS Control Tower is the managed, opinionated front door. It sets up Organizations, the Log Archive and Audit accounts, a curated library of preventive and detective controls, IAM Identity Center and Account Factory. You give up some flexibility for a known-good, AWS-supported baseline in days, with AWS maintaining the controls.
The Landing Zone Accelerator on AWS (LZA) is a configuration-driven deployment (CloudFormation and CDK) for heavier requirements: public sector, healthcare, finance, multi-Region or sovereign needs, controls mapped to specific frameworks. More explicit than Control Tower and more to operate: you own a large config repo and pipeline.
DIY Terraform or OpenTofu (Terraform is BSL-licensed since 2023; OpenTofu is the open fork) gives total control as code, and you maintain the account vending and control mapping Control Tower would maintain for you. Without dedicated platform engineers it tends to become a system one person understands. A common middle path: Control Tower owns the governed baseline, and Terraform or OpenTofu manages everything inside the accounts.
Built on Control Tower, extended with your own IaC. Management account: Organizations, billing and Control Tower only; root locked with hardware MFA. Security OU: Log Archive (org-wide CloudTrail and Config, write-only, long retention) and Audit (Security Hub and GuardDuty delegated admin). Infrastructure OU: Network (Transit Gateway hub, shared VPC, Route 53 Resolver, central egress) and Shared-Services (CI/CD, ECR, images). Workloads OU: Prod (region-deny, encryption required, no public ingress) and Non-Prod (dev and staging), one account per app and environment. Sandbox OU: disposable accounts with a hard budget.
Identity is IAM Identity Center federated to your IdP with three starter permission sets. Guardrails are the Control Tower mandatory and strongly recommended controls plus a few custom SCPs (region-deny, deny-disable on security services, deny-root), and Security Hub runs CIS and AWS FSBP so SOC 2 evidence collects itself. A two-person team can run it, and the fiftieth account is as governed as the first.
Too early and it is ceremony; too late and you retrofit under audit pressure.
You do not need one yet for a solo prototype in a single account with no customer data and no compliance timeline. Turn on CloudTrail and GuardDuty, avoid the root user, set a billing alarm, and build the landing zone when the second account, first hire or first customer contract arrives.
A landing zone is a routine engagement for a good AWS partner. The alternative is hiring and ramping a platform engineer, which takes months.
CloudRoute matches you with one vetted AWS partner with the right track record: Control Tower, LZA, SOC 2, or your source platform if you are migrating. We reply within 24 hours; your matched partner reaches out within 5 business days. The deliverable is the organization itself (OU structure, guardrails, central logging and security, IAM Identity Center wired to your IdP, the network spine) handed over with documentation and, where it fits, IaC.
Who pays: a landing zone on its own is normal paid work. AWS funding that a partner can file comes through three routes: MAP when you migrate to AWS, POC when you test something, and incremental workload (IW) funding when you launch new work on AWS. If you are migrating, AWS's MAP page describes a Mobilize phase where you build your operational foundation, so your matched partner checks whether your migration qualifies: typically $50K to $150K for startups. Depends on the workload; AWS approves. CloudRoute is free for startups; partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself: AWS Activate Founders ($1,000 to start, up to $5,000) if no investor backs you, or AWS Activate Portfolio (up to $200,000) with the Org ID from an Activate Provider. A consulting partner cannot file Activate for you, and credits pay for AWS usage, not a partner's invoice. See the startup path.
Control Tower for most, LZA for regulated or complex estates, DIY Terraform or OpenTofu when you have a platform team and a reason.
| Dimension | AWS Control Tower | Landing Zone Accelerator (LZA) | DIY Terraform / OpenTofu |
|---|---|---|---|
| What it is | Managed, opinionated AWS service | Config-driven AWS Solutions deployment (CloudFormation, CDK) | Your own IaC modules |
| Time to baseline | Days | 1–3 weeks | 3–8+ weeks |
| Flexibility | Opinionated; some layouts fight it | High; explicit config | Total |
| Ongoing maintenance | Low: AWS maintains controls | Medium to high: you own the config repo | High: you maintain all of it |
| Account vending | Account Factory (built in) | Config-driven account creation | You build it (for example AFT) |
| Best fit | Most startups and mid-market | Regulated, multi-Region, complex estates | Platform teams with staff to maintain it |
| Can combine? | Yes: baseline, then your IaC inside | Yes: can layer on Control Tower | Often used inside a Control Tower baseline |
You fill in a short form: what you run today, what you want to move, test or build, your stage and your region.
We read your answers and pick one vetted AWS consulting partner that fits the work, the stack and the region. We reply within 24 hours; your matched partner reaches out within 5 business days.
Your matched partner scopes the work with you. Then it checks which partner-filed funding fits: MAP if you are moving to AWS, POC if you want to test something, or incremental workload (IW) funding if you are already on AWS and launching new work.
If the work qualifies, the partner files the funding request with AWS. AWS reviews it and decides. The amount depends on the workload.
CloudRoute is free for startups. Partners pay CloudRoute a monthly membership plus 10% of AWS-approved funding.
AWS Activate credits are separate, and you apply for them yourself. Use Activate Founders if no investor backs you. Use Activate Portfolio with the Org ID or invite from your VC, accelerator, incubator or angel group if it is an Activate Provider. A consulting partner cannot apply for Activate on your behalf.
CloudRoute matches you with a vetted AWS partner who sets up the multi-account baseline, guardrails, logging, identity and network spine, handed over documented. If you are migrating to AWS, the partner also checks MAP funding: typically $50K to $150K for startups. Depends on the workload; AWS approves.