Moving from One AWS Account to a Multi-Account Structure

A staged migration approach for separating AWS workloads into governed accounts without treating the move as a disruptive all-at-once rebuild.

A single AWS account is often the fastest way to prove a product or begin a cloud programme. The difficulty appears later: production and development permissions overlap, billing ownership becomes unclear, security evidence sits beside ordinary workloads, and every new control risks affecting everything at once.

Moving to multiple accounts can create stronger boundaries, but it is not a database-only migration or a weekend reorganisation. Account IDs appear in IAM policies, encryption keys, container registries, deployment roles, DNS, monitoring, backups and third-party integrations. A safe programme treats the move as a sequence of workload transitions supported by a new operating foundation.

Define the reason for separation

Do not start by drawing a deep organisational-unit tree. State which risks or operating problems account separation must solve. Common drivers include production isolation, delegated team ownership, central security evidence, regional restrictions, acquisition separation, customer requirements and clearer cost allocation.

Turn each driver into a design decision. For example, “separate production” should explain who can access the account, how deployments enter it, which logs leave it, where secrets are stored and how incidents are handled. A new account with the same shared administrator credentials and manual deployment process creates little meaningful isolation.

Inventory dependencies before moving resources

Build a dependency register for each workload. Include:

  • source repositories and deployment pipelines;
  • IAM users, roles, trust policies and identity-provider mappings;
  • VPCs, subnets, routes, private endpoints, DNS zones and certificates;
  • databases, object stores, queues, registries and encryption keys;
  • monitoring, log destinations, alert routes and backup vaults;
  • secrets, licence restrictions and third-party allowlists;
  • account IDs embedded in configuration or automation;
  • business downtime and data-loss tolerance.

Classify dependencies as portable, replaceable or coupled. Some resources can be recreated from infrastructure code; stateful services may require replication and cutover; others need a temporary cross-account trust or network path. This inventory becomes both the migration plan and the basis for rollback.

Build the destination foundation first

Create the organisation, core organisational units and shared security accounts before moving production. Establish workforce federation, logging, security findings, region controls, tagging, budgets and the account-creation process. Validate these controls with a representative non-production workload.

AWS recommends testing service control policies in a limited organisational unit or small group of accounts before attaching them broadly. This matters during migration because legacy workloads often rely on actions that are not yet documented. Use guardrails to establish safe boundaries, but introduce them with evidence rather than assumption. The AWS service control policy guide explains the permissions boundary model.

If the existing account will join the new organisation, decide its future role. It may remain a transitional workload account, become a sandbox after workloads leave, or be retired. Avoid making a heavily used legacy account the long-term management account. The management account has special organisational responsibilities and should not carry ordinary application workloads.

Migrate identity and delivery before production data

Prove that engineers and automation can work in the destination. Create federated roles, deployment roles and cross-account trust with narrow conditions. Update CI/CD pipelines so artifacts are built once, scanned and promoted to the target account rather than rebuilt manually there.

Run a non-production deployment from source to monitoring. Confirm that:

  • humans can assume only the intended roles;
  • pipelines can obtain short-lived credentials;
  • registries and artifact stores are reachable;
  • encryption permissions work in both steady state and recovery;
  • logs and findings arrive in central accounts;
  • alerts reach the correct operational owners;
  • rollback can restore the previous workload version.

This rehearsal exposes permission and network assumptions while the business impact is low.

Choose a workload transition pattern

There is no single cross-account move button for a complete application. Select a pattern per component:

Recreate from code

For stateless services and well-managed infrastructure, provision the destination from Terraform, OpenTofu, CloudFormation or another controlled definition. This is usually cleaner than trying to preserve every legacy setting, provided the code has been tested against the real workload.

Replicate and cut over

For databases and object storage, establish replication or export/import, validate permissions and data integrity, then schedule a controlled cutover. Define the final synchronisation step, write freeze if required, verification queries and the time at which rollback stops being safe.

Run in parallel

For customer-facing services, route a small portion of traffic to the destination or use a blue/green approach. Compare health, latency, errors and business transactions before increasing traffic. Parallel running costs more temporarily, but it can make rollback far less risky.

Bridge temporarily

Some dependencies cannot move together. Use time-limited cross-account access, peering, transit routing or private service exposure to bridge the transition. Give every bridge an owner and removal milestone; otherwise temporary architecture becomes permanent complexity.

Treat networking and DNS as cutover controls

Network design can determine the order of the entire programme. Allocate non-overlapping address space, document return routes and confirm inspection, DNS resolution and egress behavior. Update on-premises firewalls and third-party allowlists before the production window.

Reduce DNS time-to-live only where it meaningfully helps the chosen cutover pattern, and do it early enough for caches to expire. Keep the former endpoint available during the agreed rollback window. For hybrid migrations, coordinate routing and application validation as one change. The Data Steels migration is an example of combining AWS workload transition with supported site-to-site connectivity.

Make rollback specific

“We will switch back” is not a rollback plan. State the trigger, decision owner, exact commands or pipeline action, data reconciliation requirement and latest safe decision time. If users can write to both old and new systems, define how conflicting data is prevented or resolved.

Capture evidence during the migration: infrastructure plan output, data validation, route state, health checks, log delivery and approval records. This supports both incident diagnosis and later audit questions.

Close the old paths deliberately

After a stable observation period, remove temporary trust, routes, credentials and duplicated resources. Update diagrams, ownership records, runbooks, backup scope and cost reports. Confirm that the old account no longer receives production traffic or retains unowned copies of sensitive data.

The move is complete when the destination is operated through the intended controls—not merely when the application responds from a different account.

Plan your first phase

Begin with one representative, reversible workload. Use it to validate the landing zone, identity, pipelines, network, observability and support model before scaling the migration factory. The Qinecsa AWS account migration case study illustrates the kind of separation planning involved when workloads and data must move between company-controlled environments.

Use our Cloud Foundation Readiness Checklist to find the prerequisites that are not yet ready. For help designing the target structure or sequencing workload moves, explore our Cloud Foundations service or contact the team.