Domain-Name-System

Route 53 - APEX 記錄的跨賬戶委託

  • August 16, 2020

我們正在實施具有多個環境的 AWS 無伺服器堆棧。為了遵循最佳實踐,我們為不同目的創建了多個帳戶。

有一個DNS帳戶,它應該包含與該項目相關的所有託管區域。它有一個託管區域example.org

我們有多個環境和每個對應的帳戶。現在我將專注於devprod

這是主機配置的樣子:

發展

  • app.dev.example.org(開發賬戶中的 CloudFront 分配)
  • login.dev.example.org(開發賬戶中 Cognito 託管 UI 的 CloudFront 分發版)
  • api.dev.example.org(開發帳戶中的 API 網關)
  • cdn.dev.example.org(開發賬戶中的 CloudFront 分配)

生產

  • example.org(產品賬戶中的 CloudFront 分配)
  • login.example.org(生產賬戶中 Cognito 託管 UI 的 CloudFront 分發)
  • api.example.org(產品帳戶中的 API 網關)
  • cdn.example.org(prod 賬戶中的 CloudFront 分配)

開發是直截了當的。使用開發dev.example.org帳戶中託管區域dev.example.org的NS 伺服器為子域設置 NS 記錄,並完成。

prod很棘手,因為我們想使用example.org. 此外,login.example.orgapi.example.org沒有cdn.example.org公共子域。

在尋找可能的解決方案時,我提出了以下選項:

  1. example.org而是為生產帳戶創建託管區域。從那裡將子域委託給其他帳戶(即dev)。
  2. (不確定):創建一個可重用的委託集。這樣可以創建兩個託管區域(如果我理解正確的話),一個在DNS帳戶中,一個在prod帳戶中。他們將共享相同的名稱伺服器。我無法確定這是否適用於跨帳戶並且尚未對其進行測試。
  3. (不確定):在prod中為每個login.example.org,api.example.orgcdn.example.org. 這將允許從prod帳戶內設置子域 APEX 記錄。這不是解決example.org. 此外,它還有 3 個額外的託管區域(僅用於解決問題)。

我想看看我是否錯過了這裡的任何基本內容和/或那裡是否有人有類似的情況和替代/更好的解決方案。那個案例不應該太奇特嗎?

選擇 1 - 這是最簡單的。

或 4 - 使用跨賬戶訪問將記錄從“prod”賬戶插入“dns”賬戶中的區域。

另請注意,ALIAS 記錄可以指向其他帳戶中的資源,它們不必在同一個帳戶中。

希望有幫助:)

引用自:https://serverfault.com/questions/1030296