ユーザ用ツール

サイト用ツール


aws:route53:central-dns

AWS

【高度】Central DNS アカウントでDNSの一元管理

前提

各アカウントがTransitGateway経由で、IPでは通信できていること。

参考:[重要] AWS Transit Gateway(TGW)を別アカウントに共有


マルチアカウント環境で DNS 管理を一元化

DNS管理をするアカウントを作成し、そこでリゾルバルールを作成します。
他のアカウントには、リゾルバールールを共有することで、DNSマルチアカウント環境で DNS 管理が一元化します。

Route 53 Resolverでマルチアカウント環境の DNS 管理を簡素化する | Amazon Web Services ブログ

1 Central DNS VPC 用のAmazon が提供するデフォルト DNS サーバー
2 Route 53 Resolver Endpoint
インバウンドエンドポイントは、オンプレミスの DNS サーバーから
アウトバウンドエンドポイントは、ドメインクエリを AWS からオンプレミス DNS に転送
3 条件付き転送ルール
このアーキテクチャでは、2 つのルールが必要です。
1 つは onprem.private ゾーンのドメインクエリをアウトバウンドエンドポイント経由でオンプレミス DNS サーバーに転送するルール
もう 1 つは awscloud.private のドメインクエリを DNS-VPC のリゾルバーインバウンドエンドポイントに転送するルールです。
4 AWS Resource Access Manager を介して他のすべての AWS アカウントと共有
5 プライベートホストゾーン
6 オンプレミスの DNS サーバー

AWSからオンプレへの名前解決フロー

1DNS クエリは、VPC のデフォルト DNS サーバーにルーティングされます。
2VPC は Central DNS アカウントから共有される転送ルールに関連付けられているため、これらのルールは VPC 内の Amazon が提供するデフォルトの DNS によって評価されます。
3転送ルールは Resolver アウトバウンドエンドポイントに関連付けられている
4クエリはこのアウトバンドエンドポイントを介してオンプレミスの DNS サーバーに転送されます。

オンプレからAWSへの名前解決フロー

1ドメインクエリはオンプレミスの DNS サーバーに転送されます。
2クエリはオンプレミスDNSサーバー上の条件付き転送ルールを介して Resolver インバウンドエンドポイントに転送されます。
3クエリは、DNS-VPC のデフォルト DNS サーバーに到達します。
4DNS-VPC はプライベートホストゾーン acc1.awscloud.private に関連付けられているため、デフォルトの DNS サーバーがこのドメインを解決できます。

AWS間の名前解決

1 ドメインクエリは、VPC ホスティングソースマシン のデフォルト DNS サーバーに送信されます。
2 VPC は共有転送ルールに関連付けられている
3 awscloud.private ゾーンのクエリは、DNS-VPC のインバウンドエンドポイントに (アウトバウンドエンドポイント経由で) 転送する必要があるというルールがあります。
4 アウトバウンドエンドポイントは DNS クエリをターゲット IP に転送します。
この例では、ターゲット IP は受信エンドポイントの IP アドレスです。
5 DNS-VPC は acc2.awscloud.private ホストゾーンに関連付けられているため、デフォルトの DNS は自動定義ルールを使用してこのドメインを解決します。




手順

Central DNS Account Account #1 Account #2 Corporate Data Center
172.27.0/24 10.0.3.0/24 10.0.2.0/24
DNS-VPC WL1-vpc01 WL1-vpc02
acc1.awscloud.private acc2.awscloud.private onprem.private
アウトバウンドエンドポイント
インバウンドエンドポイント

1. DNS一元管理するCentral DNS アカウントの初期作成

DNS用のVPCを作成する

DNSの名前解決を集中管理する「DNS-VPC」を作成する。

リゾルバーエンドポイントを作成

アウトバウンドエンドポイントの作成

DNS クエリをオンプレミス DNS に転送する

・【NWアカウント】において、「Route53」→「リゾルバー/アウトバウンドエンドポイント」へ移動します。

・「アウトバウンドエンドポイントの作成」をクリックし、以下を入力します。
 ・エンドポイント名 : ※任意のエンドポイント名
 ・当該リージョンの VPC : ※作成された「DNS-VPC」
 ・このエンドポイントのセキュリティグループ : ※「NW-SG-dns」
 ・エンドポイントのタイプ : IPv4
 ・IP アドレス #1
  ・アベイラビリティーゾーン : ap-northeast-1a
  ・サブネット : 「NW-subnet-private-01-a」を選択
  ・IPv4 アドレス : 172.27.1.12
 ・IP アドレス #2
  ・アベイラビリティーゾーン : ap-northeast-1c
  ・サブネット : 「NW-subnet-private-02-c」を選択
  ・IPv4 アドレス : 172.27.2.12
インバウンドエンドポイントの作成

オンプレミスのワークロードや他の AWS アカウントから転送された DNS クエリを受信する

・【NWアカウント】において、「Route53」→「リゾルバー/インバウンドエンドポイント」へ移動します。

・「インバウンドエンドポイントの作成」をクリックし、以下を入力します。
 ・エンドポイント名 : 任意のエンドポイント名
 ・当該リージョンの VPC : 「DNS-VPC」を選択
 ・このエンドポイントのセキュリティグループ : 「NW-SG-dns」を選択
 ・エンドポイントのタイプ : IPv4
 ・IP アドレス #1
  ・アベイラビリティーゾーン : ap-northeast-1a
  ・サブネット : 「NW-subnet-private-01-a」を選択
  ・IPv4 アドレス : 172.27.1.11
 ・IP アドレス #2
  ・アベイラビリティーゾーン : ap-northeast-1c
  ・サブネット : 「NW-subnet-private-02-c」を選択
  ・IPv4 アドレス : 172.27.2.11




2. Central DNSで、転送ルール作成し、Central DNSのVPCへの関連付け

2.2 転送ルールをドメイン毎に作成

・【Central DNS アカウント】において、「Route53」→「リゾルバー/ルール」へ移動します。

・「ルールの作成」をクリックし、以下を入力します。
 ・名前 : onprem-private ※任意の名前※
 ・ルールタイプ : 「転送」になっていることを確認 
 ・ドメイン名 : onprem.private
 ・アウトバウンドエンドポイント : ※先ほど作成したアウトバウンドエンドポイントを選択※
 ・ターゲット IP アドレス
  ・IPv4 アドレス : 192.168.1.10 ※オンプレDNSサーバのIPアドレス※

今回、acc1.awscloud.privateもacc2.awscloud.privateもawscloud.privateに含まれているため、1つでよい。
別々に設定するでもよい。

・【Central DNS アカウント】において、「Route53」→「リゾルバー/ルール」へ移動します。

・「ルールの作成」をクリックし、以下を入力します。
 ・名前 : awscloud-private ※任意の名前※
 ・ルールタイプ : 「転送」になっていることを確認 
 ・ドメイン名 : awscloud.private
 ・アウトバウンドエンドポイント : ※先ほど作成したアウトバウンドエンドポイントを選択※
 ・ターゲット IP アドレス
  ・IPv4 アドレス : 172.27.1.11 ※作成したインバウンドエンドポイントのIPアドレス※
  ・IPv4 アドレス : 172.27.2.11 ※作成したインバウンドエンドポイントのIPアドレス※

2-3. 転送ルールのCentral DNSのVPCへの関連付

・【Central DNS アカウント】において、「Route53」→「リゾルバー/ルール」へ移動します。
作成をした「onprem.private」のルールをクリックします。

・「VPCを関連付ける」をクリックし、以下を入力します。
 ・このルールを使用する VPC : DNS-VPC

2-4. 転送ルールのRAM共有

転送ルールをResource Access Managerを利用して、参加アカウントに共有をします。

・【Central DNS アカウント】において、「Resource Access Manager」→「自分が共有/リソースの共有」へ移動します。

・「リソースの共有を作成」をクリックし以下を入力します。
 リソース共有の詳細を指定
  ・Name : ※任意の名前で問題ありません。※
  ・リソースタイプ : リゾルバルール
   ・表示された「オンプレミス環境ドメイン(onprem.private)の転送ルール」と「AWS環境ドメイン(awscloud.private)の転送ルール」の2つを選択します。
 プリンシパルにアクセス権限を付与する
  ・プリンシパルタイプの選択 : AWSアカウント ※【Account #1】※




3. 参加アカウントへの共有DNS転送ルールの関連付け

参加アカウントでの共有の同意

  • AWS Resource Access Manager からの共有ルールに同意します。
    • ルールが AWS 組織と共有されている場合、このステップは不要です。
・【Account #1】において、「ResouceAccessManager」→「自分と共有/リソースの共有」をクリックします。

・NWアカウントより共有された「転送ルール」を選択し、「リソース共有を承認」をクリックします。




4. プライベートホストゾーン作成と関連付け

4.1 参加アカウントで、プライベートホストゾーンの作成と参加アカウントのVPCに共有

・「Route53」→「ホストゾーン」をクリックします。

・「ホストゾーンの作成」をクリックし、以下を入力します。
 ホストゾーン設定
  ・ドメイン名 : acc1.awscloud.private
  ・タイプ : プライベートホストゾーン

 ホストゾーンに関連付ける VPC 
  ・リージョン : アジアパシフィック(東京)
  ・VPC ID : WL1-vpc01

4.2 参加アカウントで、プライベートホストゾーンのCentral DNSアカウントへの共有

  • プライベートホストゾーンを所有するアカウントから共有設定
aws route53 create-vpc-association-authorization --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<central-dns-vpc-id>
  • 共有設定の確認
aws route53 list-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id>

4.3 Central DNS アカウントの設定

  • DNS-VPC を所有するアカウントが承認
  • 参加している各アカウントのホストゾーンに DNS-VPC を関連付けます。
aws route53 associate-vpc-with-hosted-zone --hosted-zone-id <hosted-zone-id> --vpc VPCRegion=<region>,VPCId=<central-dns-vpc-id> 




参考

aws/route53/central-dns.txt · 最終更新: 2024/12/20 00:28 by kurihara

ページ用ツール