Skip to content

Account Topology

Every pattern in this walkthrough uses the same two-account model. The Shared Services Account
Provider/hub AWS account accessed via the `shared-services` CLI profile — owns shared apps, endpoint services, TGW, Lattice networks, and the Cloud WAN core network.
acts as the provider (hub) and the Dev Account
Consumer/spoke AWS account accessed via the `dev` CLI profile — hosts consumer VPCs, test EC2, endpoints, and attachments.
acts as the consumer (spoke). Most patterns deploy in a single region; Cloud WAN
AWS Cloud WAN — managed global L3 network with multi-region edges and segment-based isolation policies.
extends across three workload regions with a separate RAM region
`us-east-1` — required for creating and accepting RAM shares of global resources such as the Cloud WAN core network; not a workload region.
for the global core network
Global Cloud WAN backbone that connects regional edges. Segment policies apply at the core network; it is a global resource shared via RAM.
.

AccountPlaceholder IDRolePurpose
Shared Services123456789012Provider (hub)Hosts the shared application, endpoint service, transit hub, or Cloud WAN core network resources
Dev987654321098Consumer (spoke)Hosts the consumer VPC, test EC2 instance, and pattern-specific attachment or endpoint

Cross-account connectivity always flows from the provider toward the consumer: the shared-services Terraform root creates resources that the consumer root depends on. No assume_role is used between accounts; values pass manually via terraform output and -var flags.

Example identity ARNs used throughout this site:

arn:aws:iam::123456789012:role/AdministratorAccess-EXAMPLE
arn:aws:iam::987654321098:role/AdministratorAccess-EXAMPLE
Region labelAWS RegionRole in this walkthrough
Primary_Region
`ap-southeast-2` — default deployment region for VPC Peering, PrivateLink, VPC Lattice, and Transit Gateway.
ap-southeast-2Default deployment region for VPC Peering, PrivateLink, VPC Lattice, and Transit Gateway
Cloud_WAN_Regions
Workload regions for Cloud WAN attachments: `ap-southeast-2`, `ap-southeast-6`, and `ap-southeast-1` — distinct from RAM_Region.
ap-southeast-2, ap-southeast-6, ap-southeast-1Workload VPC attachment regions for the Cloud WAN pattern only
RAM_Region
`us-east-1` — required for creating and accepting RAM shares of global resources such as the Cloud WAN core network; not a workload region.
us-east-1Global Cloud WAN core-network share region — not a workload region

The RAM_Region
`us-east-1` — required for creating and accepting RAM shares of global resources such as the Cloud WAN core network; not a workload region.
(us-east-1) exists because the Cloud WAN core network
Global Cloud WAN backbone that connects regional edges. Segment policies apply at the core network; it is a global resource shared via RAM.
is a global AWS resource. AWS Resource Access Manager (RAM)
AWS Resource Access Manager — shares Lattice service networks, Transit Gateways, and Cloud WAN core networks across accounts.
requires global resource shares to be created and accepted in us-east-1 so every region can see the share. Workload VPCs and attachments remain in Cloud_WAN_Regions
Workload regions for Cloud WAN attachments: `ap-southeast-2`, `ap-southeast-6`, and `ap-southeast-1` — distinct from RAM_Region.
; nothing in this demo runs application workloads in us-east-1.

The diagram below shows the account boundaries, CLI profiles, and regional labels used across all patterns.

Two-account hub-and-spoke topology with shared-services provider VPC, consumer VPC, and RAM share in us-east-1

Configure both profiles for AWS IAM Identity Center (SSO
AWS IAM Identity Center (SSO) — federated login used by the `shared-services` and `dev` CLI profiles in this walkthrough.
) access before running any Terraform apply.

ProfileTarget accountAccount IDRoleAssumed IAM permission set
shared-servicesShared Services Account123456789012ProviderAdministratorAccess
devDev Account987654321098ConsumerAdministratorAccess

Validate each profile before deploying:

Terminal window
aws sts get-caller-identity --profile shared-services
aws sts get-caller-identity --profile dev

Expected output uses the placeholder
Synthetic AWS identifier used in docs (e.g. `123456789012`, ARNs ending in EXAMPLE) instead of real account IDs or hostnames.
account IDs above. A successful response confirms SSO login and profile mapping are correct.

In every pattern:

  1. The shared-services profile applies Terraform in account 123456789012 first.
  2. The dev profile applies Terraform in account 987654321098 second, consuming outputs from step 1.
  3. Some patterns require an additional manual step (peering acceptance, RAM acceptance, route configuration) documented on the walkthrough pages.

Each pattern is fully independent: separate Terraform state, separate VPC CIDR
Classless Inter-Domain Routing — IP range notation such as `10.10.0.0/16`. Peering and TGW need non-overlapping CIDRs; PrivateLink and Lattice do not.
blocks, and separate test EC2 instances. Deploy one pattern at a time, verify connectivity, then tear down before moving to the next.