多Hosted Zone场景下AWS Route53跨账户DNS解析问题求助
跨AWS账户Hosted Zone联合DNS解析方案
核心问题分析
你的EC2实例仅使用账户B的私有Hosted Zone解析域名,当查询该Zone中不存在的abc.com子域记录时,默认不会去查询账户A的Hosted Zone,导致解析失败。以下是两种针对性解决方案:
方案一:Route 53 Resolver条件转发规则(通用场景)
适用于账户A的Hosted Zone是公网或私有类型,且你希望B的EC2能同时解析两个Zone的记录。
操作步骤:
获取账户A Hosted Zone的NS服务器信息
- 登录账户A的Route 53控制台,找到abc.com的Hosted Zone,复制其NS记录中的所有域名(通常4条)。
在账户B中创建Resolver出站规则
- 进入账户B的Route 53控制台,选择「Resolver」>「出站规则」>「创建规则」
- 规则类型选条件转发,目标域名填写
abc.com - 「目标IP地址」栏,粘贴账户A Hosted Zone的NS服务器对应的IP(可通过
dig NS abc.com获取NS记录的IP),或直接填写NS域名(若为私有Zone,需确保Resolver能访问这些NS) - 关联你的EC2实例所在的VPC,完成规则创建
验证解析效果
在账户B的EC2上执行:dig foo.abc.com # 验证私有Zone记录解析 dig bar.abc.com # 验证账户A Zone记录解析
方案二:Route 53 Resolver Peering(跨账户私有Zone专属)
如果账户A的abc.com是私有Hosted Zone,且你的VPC无公网访问权限,推荐用此方法实现跨账户私有DNS解析。
操作步骤:
账户A创建Resolver peering邀请
- 登录账户A的Route 53控制台,选择「Resolver」>「Peering连接」>「创建邀请」
- 填写账户B的AWS账户ID,选择与abc.com私有Zone关联的VPC所在区域,发送邀请
账户B接受peering邀请
- 登录账户B的Route 53控制台,进入「Resolver」>「Peering连接」,接受来自账户A的邀请
配置账户A的Resolver入站规则
- 在账户A的Resolver中创建入站规则,允许来自账户B VPC的查询访问abc.com私有Hosted Zone
- 目标域名填
abc.com,源VPC选择账户B的VPC
配置账户B的Resolver出站规则
- 在账户B的Resolver中创建出站规则,将
abc.com的查询转发到账户A的Resolver端点(即peering连接对应的端点)
- 在账户B的Resolver中创建出站规则,将
验证解析效果
同方案一,在EC2上执行dig命令测试两类记录的解析结果。
补充注意事项
- 私有Hosted Zone的解析优先级高于Resolver规则,因此如果两个Zone存在同名记录,会优先返回账户B私有Zone中的结果
- 若账户A的Hosted Zone是公网类型,且EC2有公网访问权限,也可直接在B的私有Zone中添加NS委托记录,将特定子域(如bar.abc.com)委托给A的Hosted Zone的NS服务器,实现子域单独解析
内容的提问来源于stack exchange,提问作者Hydher
相关产品推荐
相关产品推荐

