Route 53 - APEX 记录的跨账户委托

Route 53 - APEX 记录的跨账户委托

我们正在实施具有多个环境的 AWS 无服务器堆栈。为了遵循最佳实践,我们为不同目的创建了多个账户。

有一个DNS账户,该账户应该包含与该项目相关的所有托管区域。它有一个托管区域example.org

我们有多个环境和每个环境对应的帐户。现在我将重点介绍开发产品

主机配置应如下所示:

发展

  • app.dev.example.org(开发账户中的 CloudFront 分发)
  • login.dev.example.org(开发账户中 Cognito Hosted UI 的 CloudFront 分发)
  • api.dev.example.org(开发账户中的 API 网关)
  • cdn.dev.example.org(开发账户中的 CloudFront 分发)

生产

  • example.org(生产账户中的 CloudFront 分发)
  • login.example.org(生产账户中 Cognito Hosted UI 的 CloudFront 分发)
  • api.example.org(生产账户中的 API 网关)
  • cdn.example.org(生产账户中的 CloudFront 分发)

开发很简单。dev.example.org使用托管区域中的 NS 服务器为子域设置 NS 记录dev.example.org开发帐户,就完成了。

产品比较棘手,因为我们想使用 APEX 记录example.org。此外,login.example.orgapi.example.org没有cdn.example.org共同的子域。

寻找可能的解决方案后,我得出了以下选择:

  1. example.org为生产账户创建托管区域。将子域名委托给其他账户(即开发) 从那里。
  2. (不确定):创建可重复使用的委派集。这样就可以创建两个托管区域(如果我理解正确的话),一个在DNS帐户和一个产品帐户。他们将共享相同的名称服务器。但我无法确定这是否适用于跨帐户,并且尚未测试。
  3. (不确定):在产品对于每个login.example.orgapi.example.orgcdn.example.org。这将允许从prod帐户内设置子域 APEX 记录。这不是 APEX 记录的解决方案example.org。此外,它还有 3 个额外的托管区域(仅用于实现解决方法)。

我想看看我是否遗漏了这里的基本内容和/或是否有人遇到过类似的情况和替代/更好的解决方案。那个用例不应该太奇特吗?

答案1

选择 1 – 这是最简单的。

或者 4 - 使用跨账户访问从“prod”账户将记录插入到“dns”账户中的区域中。

还要注意,ALIAS 记录可以指向其他账户中的资源,它们不必在同一个账户中。

希望有帮助:)

相关内容