Route 53でサブドメインを別のHosted Zoneに権限委譲する

2016.11.23

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは、菊池です。

Route53を使って管理しているドメインで、サブドメイン発行して別のHosted Zoneに権限を委譲する方法を紹介します。

ユースケース

例えば、以下のようなケースでは組織Aが管理しているexample.comから、サブドメインjp.exampleを組織Bに権限委譲しています。

  • 組織A(委譲元)
  • 管理ドメイン:example.com
  • 組織B(委譲先)
  • 管理ドメイン:jp.example.com

このように、権限を委譲されることで組織Bでは自由にjp.exampleを利用することができるようになります。

AWSのマネージドDNSサービスであるRoute53で発行・運用しているドメインでも、上記のようにサブドメインを委譲することができます。企業で保有しているトップドメインを、サービスの単位などで適切に委譲していくことで、運用を分離させることができます。

やってみた

実際にやってみました。アカウントAのRoute53で取得・管理しているbopochi.netから、サブドメインjp.bopochi.netを発行しアカウントBのRoute53に権限委譲します。

すでに委譲元であるアカウントAにはRoute53の設定がされている前提で、以下の手順で実施します。

  1. アカウントB(委譲先)でサブドメインのHosted Zoneを作成
  2. 1で作成されたサブドメインのNSレコードをアカウントA(委譲元)のNSレコードに設定

まず、アカウントA(委譲元)のHosted Zoneにはbopochi.netが登録されています。

dns-ns-001

アカウントB(委譲先)側で委譲するサブドメインのHosted Zoneを作成します。Route53のコンソールからCreate hosted Zoneを選択。

dns-ns-002

jp.bopochi.netを作成します。

dns-ns-003

作成できました。ついてに、Aレコードをいくつか設定しています。

dns-ns-004

試しに、Route53に登録したjp.bopochi.netを問い合わせしてみます。

$ dig A @8.8.8.8 jp.bopochi.net

; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 jp.bopochi.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 6644
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;jp.bopochi.net.       			IN     	A

;; AUTHORITY SECTION:
bopochi.net.   		847    	IN     	SOA    	ns-2005.awsdns-58.co.uk. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 86400

;; Query time: 45 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Nov 20 15:05:56 2016
;; MSG SIZE  rcvd: 119

Hosted zoneは登録しましたが権限が委譲されていないため、この時点ではAレコードは見つかりません。権限を委譲するため、アカウントBに登録されたjp.bopochi.netのNSレコードの値をコピーします。

dns-ns-005

アカウントAでjp.bopochi.netのNSレコードを登録します。値には、アカウントBからコピーした値を入れます。

dns-ns-006

アカウントAにNSレコードが登録できました。これで委譲は完了です。

dns-ns-007

これで、委譲先のHosted Zoneに登録されたAレコードを問い合わせすることで、応答が得られます。

$ dig A @8.8.8.8 jp.bopochi.net

; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 jp.bopochi.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 27513
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;jp.bopochi.net.       			IN     	A

;; ANSWER SECTION:
jp.bopochi.net.		299    	IN     	A      	52.xxx.xxx.xxx

;; Query time: 146 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Nov 20 15:08:16 2016
;; MSG SIZE  rcvd: 48
$ dig A @8.8.8.8 www.jp.bopochi.net

; <<>> DiG 9.8.3-P1 <<>> A @8.8.8.8 www.jp.bopochi.net
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11938
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;www.jp.bopochi.net.   		IN     	A

;; ANSWER SECTION:
www.jp.bopochi.net.    	299    	IN     	A      	52.xxx.xxx.xxx

;; Query time: 141 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Sun Nov 20 15:10:03 2016
;; MSG SIZE  rcvd: 52

最後に

いかがでしょうか。Route53を使うことでも管理しているドメインから、他のアカウントへサブドメインの権限を委譲することが可能です。もちろん、同じアカウント内でもサブドメイン内でHosted Zoneを分けて運用することも可能です。