能否通过两个AWS账户使用Route53管理同一域名acmeinc.com?
问题解答
AWS不支持在多个账户中为同一个顶级域名(如acmeinc.com)创建公共托管区域。因为顶级域名的公共托管区域需要和域名注册商的NS记录绑定,每个顶级域名只能对应一组权威NS服务器,无法同时关联多个账户下的托管区域。
可行解决方案
方案1:子域名托管区域拆分(适配多账户独立Terraform场景)
- 在任意一个账户(推荐生产账户)创建
acmeinc.com的主公共托管区域,负责管理顶级域名的基础NS记录。 - 在开发账户中创建
dev.acmeinc.com的独立公共托管区域,获取该托管区域的NS服务器地址。 - 在生产账户的主托管区域中添加一条NS类型记录:
dev.acmeinc.com,值为开发账户中dev.acmeinc.com托管区域的NS服务器地址。 - 后续操作:
- 生产账户的Terraform直接在主托管区域中创建
app.prod.acmeinc.com的A/CNAME等记录。 - 开发账户的Terraform在自己的
dev.acmeinc.com托管区域中创建app.dev.acmeinc.com的相关记录。
- 生产账户的Terraform直接在主托管区域中创建
- 优势:两个账户的Terraform状态完全独立,各自管理自己的托管区域和记录,无跨账户权限依赖。
方案2:跨账户权限委派(共用主托管区域)
- 保留主账户的
acmeinc.com公共托管区域,为主账户创建一个IAM角色,授予该角色对acmeinc.com托管区域的记录创建、修改权限。 - 配置开发账户的IAM实体(如用户或角色)可以Assume主账户的这个IAM角色。
- 在开发账户的Terraform配置中,添加一个Assume主账户角色的Route53 provider,通过该provider创建
app.dev.acmeinc.com记录。 - 优势:无需拆分托管区域,所有记录都在同一个顶级域名托管区域下;缺点是开发账户的Terraform操作依赖主账户的权限配置,需要维护跨账户信任关系。
内容的提问来源于stack exchange,提问作者sdgfsdh
相关产品推荐
相关产品推荐

