Skip to content

Decision Log

DecisionChoiceRationaleVerify
IPAM admin accountNetwork member accountManagement account cannot host IPAM; dedicated network ownershipIntegrate IPAM with Org
Stack count4 Terraform rootsCredential boundary per account; RAM enable only in mgmtOrg bootstrap
IPAM home regionap-southeast-6NZ-primary workloads; home = where IPAM resource is createdterraform -chdir=examples/multi-account/ipam output operating_regions
Operating regionsap-southeast-6 + ap-southeast-2Pool locales + home regionSame output
Pool hierarchyorg → nz/au → dev/sandboxRegional aggregation; room for sibling pools under /12Console IPAM pools
Root pool localeNone on orgParent with locale locks all children to that regionPool hierarchy
IPAM scopePrivate onlyRFC1918 VPC pools use Private; Public stays emptyConsole scope dropdown → Private
CIDR plan/8/12 regional → /16 account → /20 VPCNon-overlapping, recognisable blocksipam/main.tf in upstream clone
Workload regionsdev=ap-southeast-6, sandbox=ap-southeast-2Locale enforcementaws sts get-caller-identity per profile
RAM org sharingorg-bootstrap/ (mgmt)Member accounts get AccessDeniedException; pools cannot be shared without org RAMFINDINGS.md
NAT gatewayDisabled~$0/day idle VPC cost; not IPAM-relatedenable_nat_gateway = false in workload
Profilesipam-org, ipam-network, ipam-workload-a/bOne profile per accountPrerequisites
Workload VPC CIDRipv4_ipam_pool_id on aws_vpcFormal pool allocation; IPAM shows Managed VPCPlanning → Pools → Allocations
Monitoring scopeOrg-wide discovery (all member accounts)Pool tree in ipam/main.tf does not filter discoveryMonitoring → Resources resource count >> pool count