Skip to content

Account Topology

Icon-Architecture/64/Arch_Amazon-Virtual-Private-Cloud_64 VPC IPAM multi-account sharing Network owns pools · RAM grants access · workloads allocate VPC CIDRs Global ap-southeast-6 ap-southeast-6 ap-southeast-2 Icon-Architecture/64/Arch_AWS-Organizations_64 org-bootstrap delegate + RAM org Icon-Architecture/64/Arch_Amazon-Virtual-Private-Cloud_64 IPAM home org / nz / au pools Icon-Architecture/64/Arch_AWS-Resource-Access-Manager_64 RAM shares org-nz-devorg-au-sandbox Icon-Architecture/64/Arch_Amazon-Virtual-Private-Cloud_64 workload-a VPC 10.64.0.0/20 Icon-Architecture/64/Arch_Amazon-Virtual-Private-Cloud_64 workload-b VPC 10.128.0.0/20 delegate admin + RAM org RAM pool share

AWS Organizations requires a dedicated network member account as the IPAM delegated administrator. The management account cannot host IPAM — attempting to do so returns IpamOrganizationDelegatedAdminCannotBeRootAccount.

AccountProfileRegionResponsibility
Managementipam-orgGlobalorg-bootstrap/ — delegation + RAM org sharing
Networkipam-networkap-southeast-6ipam/ — IPAM instance, pools, RAM shares
Devipam-workload-aap-southeast-6workload-a/ — pool-backed VPC
Sandboxipam-workload-bap-southeast-2workload-b/ — pool-backed VPC

The org-bootstrap/ stack runs aws_vpc_ipam_organization_admin_account to designate the network account as IPAM admin. It also enables aws_ram_sharing_with_organization — required before pools can be shared inside the org.

AWS creates two default scopes per IPAM:

ScopePool count (this example)Usage
Private5All org / regional / leaf pools under RFC1918
Public0Empty by design — no BYOIP or public IPv4 pools

All pool work, RAM shares, and allocations are under Private. The Public scope is normal and costs nothing while empty.

RAM share
AWS Resource Access Manager permission for a workload account to use an IPAM pool — does not create a formal allocation by itself.
grants permission to use a pool. IPAM allocation
Formal CIDR assignment from a pool to a VPC when the workload uses ipv4_ipam_pool_id — visible under Planning → Pools → Allocations.
(linking the VPC CIDR to the pool) is what makes usage visible in the network account. See RAM and onboarding for the three onboarding layers.

Upstream: examples/multi-account/