How a 120-Engineer SaaS Company Migrated from One AWS Account to a Multi-Account Landing Zone

A B2B SaaS company collapsed security blast radius and achieved compliance by adopting AWS Organizations, Control Tower, and SCPs — learning hard lessons about OU design and SCP ordering along the way.

Infrastructure · intermediate · 12 min read · 2314 words · By Sandip Das · Published

What this covers

  1. The Situation
  2. The Problem
  3. Constraints
  4. Options Considered
  5. The Solution
  6. Implementation
  7. Results
  8. What Went Wrong Along the Way
  9. Lessons Learned
  10. Apply It Yourself

Key numbers

MetricBeforeAfter
IAM users with long-lived access keys3400
Untagged AWS spend35%3%
Mean time to detect a misconfiguration~4 days11 minutes
SOC 2 audit blockers140
Time to provision a new AWS account2-3 days22 minutes

Key components

  • AWS Control Tower — Bootstraps the landing zone, provisions Log Archive and Audit accounts, and deploys baseline guardrails across all enrolled accounts.
  • AWS Organizations SCPs — Preventive guardrails that enforce hard boundaries (no root user actions, no CloudTrail disabling) at the OU level, applying to every account beneath them.
  • Account Factory for Terraform (AFT) — GitOps pipeline that provisions new AWS accounts on demand via Terraform, applying baseline customisations consistently and reproducibly.
  • IAM Identity Center — Replaces all IAM users with federated, short-lived sessions; engineers authenticate once and assume roles in any account without long-lived credentials.
  • Centralised Networking Account — Owns the Transit Gateway and Route 53 Resolver, preventing CIDR conflicts and giving the platform team a single pane for cross-account connectivity.
  • Log Archive Account with S3 Object Lock — Provides an immutable, tamper-proof audit trail that satisfies SOC 2 log retention requirements even if any other account is compromised.

The Situation

The organisation is a 120-engineer B2B SaaS company selling workflow-automation software to mid-market financial services firms. Their platform runs entirely on AWS: roughly 400 EC2 instances, 60-odd RDS databases, a handful of EKS clusters, and several hundred Lambda functions. The engineering team is split across a platform squad (8 engineers), three product squads, a data squad, and a security engineer who joined 14 months before the migration. Everything — production, staging, development, CI/CD tooling, and the data warehouse — lived in a single AWS account, account ID ending in …4471, which the team had been calling "the monoaccount" with increasing dread.

The rest of this case study — the trade-offs, the scaling numbers and the build prompt — is available to LearnXops members. Create an account or see membership.

Topics: aws, multi-account, control-tower, organizations, scp, landing-zone

Related case studies

Browse all case studies