Skip to content

Association Scenarios

The source demo covers every combination Route 53 classic auth supports:

#ScenarioExampleAuthorization required?Who creates association
1Cross-account, same regiondev-apse2YesDev_Account
2Cross-account, cross-regiondev-apse6Yes (vpc_region = ap-southeast-6)Dev_Account
3Same-account, cross-regionnetwork-apse6NoNetwork_Account
4Same-account, same region (2nd VPC)network secondaryNoNetwork_Account (with PHZ)

Cross-account flows always require two parties: network authorizes in Phase 2a, workload associates in Phase 3. Same-account flows skip authorization.

Associate VPC with PHZ Same account as zone owner? Yes AssociateVPC WithHostedZone no auth No Auth exists for vpc_id + region? No AccessDenied Yes AssociateVPC in workload acct
RequirementCross-accountSame-accountDemo reference
PHZ exists (zone_id valid)YesYesPhase 2a zone_id output
Target VPC existsYesYesPhase 1 vpc_id per stack
vpc_region matches VPC regionYesYescross-account-auth module
VPCAssociationAuthorization for exact vpc_idYesNoPhase 2a — network stack
AssociateVPCWithHostedZone in VPC accountYesYesPhase 2b / Phase 3
VPC DNS support and hostnames enabledYesYesVPC module defaults
ActionAPIWhoDemo phase
Create authorizationCreateVPCAssociationAuthorizationNetwork_Account2a
Associate VPCAssociateVPCWithHostedZoneVPC-owning account2b / 3
Disassociate VPCDisassociateVPCFromHostedZoneVPC-owning accountTeardown Step 1
Delete authorizationDeleteVPCAssociationAuthorizationNetwork_Accountnetwork destroy
Delete PHZDeleteHostedZoneNetwork_AccountAfter all cross-account associations removed

Terraform resources in the source demo:

  • aws_route53_vpc_association_authorizationcross-account-auth module
  • aws_route53_zone_association — workload stacks and network-apse6
  • aws_route53_zone + primary VPC block — private-hosted-zone module
SymptomLikely cause
AccessDenied on associateMissing or stale authorization
AccessDenied cross-regionWrong vpc_region on authorization
Step A OK, Step B empty digPropagation delay or association drift

See Troubleshooting for step-by-step fixes.