Amazon Route 53 Resolverユースケース別構成まとめ

2021.04.10

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

ども、ゲストのソラコム大瀧です。Route 53 ResolverはAmazon VPC向けにDNSスタブリゾルバを提供するサービスです。本ブログでは、スタブリゾルバの用途/目的ごとにRoute 53 Resovlerの設定パターンをご紹介します。

用途の一覧

名前解決のポリシーごとに設定を解説していきます。

  1. 特定のインターネットドメインのみ提供する
  2. 特定の内部向けドメインのみ提供する
  3. 特定のインターネットドメインと特定の内部向けドメインのみ提供する
  4. すべてのインターネットドメインと特定の内部向けドメインのみ提供する

1. 特定のインターネットドメインのみ

soracom.io など特定のインターネットドメインのみ提供する場合は、DNS Firewallですべて拒否するルールと特定ドメインの許可ルールを定義し優先度で調整します。

AWS管理コンソールのDNS Firewallドメインリスト画面にアクセスし、[Add domain list]からドメインリストを作成します。

許可したいドメインを含めるドメインリスト(今回は soracom_io)を作成します。

続いて、他のドメインを拒否するための対象としてすべて(*)のドメインを示すドメインリスト(今回はall)を作成します。

ルールグループのルールにそれぞれのドメインリストを含めて設定します。許可するドメインリストのルールをALLOW、拒否するすべてのドメインリストのルールをBLOCKにし、許可ルールの優先度を拒否ルールよりも高く(Priorityの数字を小さく)すればOKです。

[VPCs assoiciated]タブに切り替え、[Associate VPC]ボタンから適用するVPCを設定すれば完了です。

EC2インスタンスで動作を確認します。

$ host soracom.io
soracom.io has address 99.84.79.58
soracom.io has address 99.84.79.68
soracom.io has address 99.84.79.46
soracom.io has address 99.84.79.107
soracom.io mail is handled by 5 alt2.aspmx.l.google.com.
soracom.io mail is handled by 1 aspmx.l.google.com.
soracom.io mail is handled by 10 aspmx2.googlemail.com.
soracom.io mail is handled by 10 aspmx3.googlemail.com.
soracom.io mail is handled by 5 alt1.aspmx.l.google.com.
$ host classmethod.jp
Host classmethod.jp not found: 3(NXDOMAIN)
$

要件通りの動作が確認できました。

2. 特定の内部向けドメインのみ

内部向けドメインはRoute 53プライベートホストゾーンで定義します。それだけだとインターネットドメインが引けてしまうので、1と同様にDNS Firewallの拒否するルールと許可ルールを組み合わせることで内部向けドメインのみ提供とします。

Route 53管理画面からホストゾーンの作成でプライベートホストゾーンを作成します。

DNS Firewallはプライベートホストゾーンもフィルタするので、プライベートホストゾーンのドメインリストを作成し、許可ルールを設定しましょう。

拒否ルールと優先度の設定はパターン1と同様です。

ルールグループをVPCに適用すればOKです。

3. 特定のインターネットドメインと特定の内部向けドメインのみ

特定のインターネットドメインと特定の内部向けドメインの指定は、1と2の組みあわせです。内部向けドメインをRoute 53プライベートホストゾーンで定義し、DNS Firewallの拒否ルールおよび許可ルールと組み合わせます。

4. すべてのインターネットドメインと特定の内部向けドメイン

これは特定の内部向けドメインをRoute 53プライベートホストゾーンで定義するだけでOKです。DNS Firewallは不要です。

Tips: クエリログが動作確認に便利

設定が意図通りに動くかどうか検証するときは、Route 53 Resolverクエリログ機能を利用しましょう。CloudWatch Logsにログを記録し、その内容を見ることでDNS Firewallがブロックしたものか確認できます。

ただし、このクエリログは試した限りではResolverがキャッシュで返答する場合は記録されないように見えたのでその点を注意しておきましょう。

まとめ

Route 53 Resovlerの設定パターンを用途ごとにDNS Firewallとプライベートホストゾーンを要件に応じて組み合わせる様子をご紹介しました。インバウンドエンドポイントやアウトバウンドエンドポイントと組み合わせてオンプレミスの名前解決の構成に組み込んでも良いですね。

参考URL