Domain-Name-System
Route 53 - APEX 記錄的跨賬戶委託
我們正在實施具有多個環境的 AWS 無伺服器堆棧。為了遵循最佳實踐,我們為不同目的創建了多個帳戶。
有一個DNS帳戶,它應該包含與該項目相關的所有託管區域。它有一個託管區域
example.org
。我們有多個環境和每個對應的帳戶。現在我將專注於dev和prod。
這是主機配置的樣子:
發展
- 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.org
和api.example.org
沒有cdn.example.org
公共子域。在尋找可能的解決方案時,我提出了以下選項:
example.org
而是為生產帳戶創建託管區域。從那裡將子域委託給其他帳戶(即dev)。- (不確定):創建一個可重用的委託集。這樣可以創建兩個託管區域(如果我理解正確的話),一個在DNS帳戶中,一個在prod帳戶中。他們將共享相同的名稱伺服器。我無法確定這是否適用於跨帳戶並且尚未對其進行測試。
- (不確定):在prod中為每個
login.example.org
,api.example.org
和cdn.example.org
. 這將允許從prod
帳戶內設置子域 APEX 記錄。這不是解決example.org
. 此外,它還有 3 個額外的託管區域(僅用於解決問題)。我想看看我是否錯過了這裡的任何基本內容和/或那裡是否有人有類似的情況和替代/更好的解決方案。那個案例不應該太奇特嗎?
選擇 1 - 這是最簡單的。
或 4 - 使用跨賬戶訪問將記錄從“prod”賬戶插入“dns”賬戶中的區域。
另請注意,ALIAS 記錄可以指向其他帳戶中的資源,它們不必在同一個帳戶中。
希望有幫助:)