![Route 53 - APEX記錄的跨帳戶委託](https://rvso.com/image/756225/Route%2053%20-%20APEX%E8%A8%98%E9%8C%84%E7%9A%84%E8%B7%A8%E5%B8%B3%E6%88%B6%E5%A7%94%E8%A8%97.png)
我們正在實作具有多個環境的 AWS 無伺服器堆疊。為了遵循最佳實踐,我們為不同目的建立了多個帳戶。
有一個域名系統帳戶,它應該包含與該項目相關的所有託管區域。它有一個託管區域example.org
。
我們有多個環境,每個環境都有一個對應的帳戶。現在我將重點關注開發者和產品。
主機配置應如下所示:
發展
- 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(產品帳戶中的 CloudFront 分配)
開發者很簡單。使用dev.example.org
託管區域中的 NS 伺服器為子網域設定 NS 記錄dev.example.org
開發者帳戶就完成了。
產品這很棘手,因為我們想使用 的 APEX 記錄example.org
。此外,login.example.org
、api.example.org
和cdn.example.org
沒有公共子域。
在尋找可能的解決方案時,我提出了以下選項:
example.org
相反,為生產帳戶建立託管區域。將子網域委託給其他帳戶(即開發者) 從那裡。- (不確定):建立可重複使用的委託集。這樣就可以建立兩個託管區域(如果我理解正確的話),其中一個位於域名系統帳戶和其中之一產品帳戶。他們會共享相同的名稱伺服器。我無法確定這是否可以跨帳戶工作,但尚未測試。
- (不確定):設定託管區域產品對於每個
login.example.org
,api.example.org
和cdn.example.org
.這將允許從prod
帳戶內設定子網域 APEX 記錄。這不是 的 APEX 記錄的解決方案example.org
。此外,它還有 3 個額外的託管區域(僅用於完成解決方法)。
我想看看我是否錯過了這裡的任何基本內容和/或是否有人有類似的情況和替代/更好的解決方案。這個用例應該不會太奇特吧?
答案1
選擇 1 - 這是最簡單的。
或 4 - 使用跨帳戶存取將記錄從「prod」帳戶插入到「dns」帳戶的區域。
另請注意,別名記錄可以指向其他帳戶中的資源,但它們不必位於同一個帳戶中。
希望有幫助:)