Route 53 Resolver DNS Firewall の仕組み
Route 53 Resolver DNS Firewall を使用すると、サイトへのアクセスを制御し、Route 53 Resolver を介して VPC から送信される DNS クエリに対する DNS レベルの脅威を防ぐことができます。DNS Firewall では、VPC に関連付けるルールグループにドメイン名のフィルタリングルールを定義します。許可またはブロックするドメイン名のリストを指定できます。また、ブロックする DNS クエリのレスポンスをカスタマイズできます。ドメインリストをファインチューニングして、MX レコードなどの特定のクエリタイプを許可することもできます。
DNS Firewall は、ドメイン名のみをフィルタリングします。このドメイン名から、ブロックされる IP アドレスを調べることはできません。また、DNS ファイアウォールでは DNS トラフィックをフィルタリングできますが、HTTPS、SSH、TLS、FTP などの他のアプリケーションレイヤープロトコルはフィルタリングできません。
Route 53 Resolver DNS Firewall のコンポーネントと設定
DNS Firewall は、次の中央にあるコンポーネントと設定で管理します。
- DNS Firewall ルールグループ
-
DNS クエリをフィルタリングするために DNS Firewall ルールの再利用可能な名前付きコレクションを定義します。ルールグループにフィルタリングルールを設定し、ルールグループを 1 つ以上の VPC に関連付けます。ルールグループを VPC に関連付けると、VPC の DNS Firewall フィルタリングが有効になります。その後、関連付けられているルールグループを持つ VPC の DNS クエリを Resolver が受信すると、そのクエリは DNS Firewall に送信され、フィルタリングが行われます。
複数のルールグループを 1 つの VPC に関連付ける場合は、各関連付けの優先度設定で処理する順序を指定します。DNS Firewall は、優先度が最も低い設定から VPC のルールグループを処理します。
詳細については、「DNS Firewall のルールグループとルール」を参照してください。
- DNS Firewall ルール
-
DNS Firewall ルールグループ内の DNS クエリに対するフィルタリングルールを定義します。各ルールでは、それぞれドメインリストを 1 つ指定します。また、リスト内のドメイン仕様に一致するドメインを持つ DNS クエリに対して実行するアクションを指定します。一致するクエリ、またはリスト内のドメインのクエリタイプの許可、ブロック、またはアラートを送信できます。例えば、特定のドメインの MX クエリタイプをブロックまたは許可できます。ブロックしたクエリのカスタムレスポンスも定義できます。
ルールグループの各ルールには、ルールグループ内で一意の優先度設定があります。DNS Firewall は、優先度が最も低い設定からルールグループ内のルールを処理します。
DNS Firewall ルールは、定義されているルールグループのコンテキストにのみ存在します。ルールを再利用したり、ルールグループから独立したルールを参照することはできません。
詳細については、「DNS Firewall のルールグループとルール」を参照してください
- ドメインリスト
-
DNS フィルタリングで使用するドメイン仕様の再利用可能な名前付きコレクションを定義します。ルールグループの各ルールには、それぞれに 1 つのドメインリストが必要です。アクセスを許可するドメイン、アクセスを拒否するドメイン、またはその両方の組み合わせを指定できます。独自のドメインリストを作成したり、AWS が管理するドメインリストを使用できます。
詳細については、「Route 53 Resolver DNS Firewall のドメインリスト」を参照してください。
- ドメインリダイレクトの設定
-
ドメインリダイレクト設定を使用すると、DNS ファイアウォールルールを設定して、CNAME、DNAME など、DNS リダイレクトチェーン内のすべてのドメイン (デフォルト) または最初のドメインだけを検査して残りを信頼することができます。DNS リダイレクトチェーン全体を検査する場合は、ルールで ALLOW に設定されたドメインリストに後続のドメインを追加する必要があります。DNS リダイレクトチェーン全体を検査する場合は、後続のドメインをドメインリストに追加し、ルールが実行するアクション (ALLOW、BLOCK、ALERT のいずれか) に設定する必要があります。
詳細については、「DNS Firewall のルール設定」を参照してください。
- クエリタイプ
-
クエリタイプ設定では、特定の DNS クエリタイプをフィルタリングするように DNS ファイアウォールルールを設定できます。クエリタイプを選択しない場合、ルールはすべての DNS クエリタイプに適用されます。例えば、特定のドメインのすべてのクエリタイプをブロックし、MX レコードを許可します。
詳細については、「DNS Firewall のルール設定」を参照してください。
- DNS Firewall ルールグループと VPC 間の関連付け
-
DNS Firewall ルールグループを使用して VPC に対する保護を定義し、その VPC の Resolver DNS Firewall 設定を有効にします。
複数のルールグループを 1 つの VPC に関連付ける場合は、関連付けの優先度設定で、それらを処理する順序を指定します。DNS Firewall は、優先度が最も低い設定から VPC のルールグループを処理します。
詳細については、「VPC 向けの Route 53 Resolver DNS Firewall による保護の有効化」を参照してください
- VPC のResolver DNS Firewall 設定
-
Resolver が VPC レベルで DNS Firewall による保護をどのように行うかを指定します。この設定は、VPC に関連付けられた DNS Firewall ルールグループが少なくとも 1 つある場合に有効です。
この設定では、DNS Firewall がクエリをフィルタリングできなかった場合に Route 53 Resolver がクエリを処理する方法を指定します。デフォルトでは、Resolver が DNS Firewall からクエリに対するレスポンスを受信しない場合、DNS Firewall はフェールクローズし、クエリをブロックします。
詳細については、「DNS Firewall での VPC の設定」を参照してください。
- DNS ファイアウォールアクションのモニタリング
-
Amazon CloudWatch を使用して、DNS ファイアウォールのルールグループでフィルタリングされた、DNS クエリ数をモニタリングできます。CloudWatch では、生データを収集し、ほぼリアルタイムの読み取り可能なメトリクスに加工します。
詳細については、「Amazon CloudWatch を使用した Route 53 Resolver DNS Firewall のルールグループのモニタリング」を参照してください。
Amazon EventBridge は、イベントを使用してアプリケーションコンポーネント同士を接続するサーバーレスサービスです。これにより、スケーラブルなイベント駆動型アプリケーションを構築できます。
詳細については、「Amazon EventBridge を使用した Route 53 Resolver DNS ファイアウォールイベントの管理」を参照してください。
Route 53 Resolver DNS Firewall で DNS クエリをフィルタリングする方法
DNS ファイアウォールルールグループが VPC の Route 53 Resolver に関連付けられている場合、次のトラフィックはファイアウォールによってフィルタリングされます。
-
その VPC 内で発信され、VPC DNS を通過する DNS クエリ。
-
オンプレミスのリソースから、リゾルバーエンドポイントを通過して、リゾルバーに関連付けられた DNS ファイアウォールを持つ同じ VPC に渡される DNS クエリ。
DNS Firewall は DNS クエリを受信すると、設定したルールグループ、ルール、その他の設定を使用してクエリをフィルタリングし、Resolver に結果を返します。
-
DNS Firewall は、一致するものが見つかるまで、またはすべてのルールグループを使い果たすまで、VPC に関連付けられたルールグループを使用して DNS クエリの評価を行います。DNS Firewall は、関連付けで設定した優先度の順に、優先順位が最も低い設定からルールグループを評価します。詳細については、「DNS Firewall のルールグループとルール」および「VPC 向けの Route 53 Resolver DNS Firewall による保護の有効化」を参照してください。
-
各ルールグループ内で DNS Firewall は、一致するものが見つかるまで、またはすべてのルールを使い果たすまで、各ルールのドメインリストに対する DNS クエリの評価を行います。DNS Firewall は、優先順位の順に、優先度が最も低い設定からルールを評価します。詳細については、「DNS Firewall のルールグループとルール」を参照してください
-
DNS Firewall は、ルールのドメインリストと一致するものを見つけると、クエリの評価を終了して、Resolver に結果を返します。アクションが
alert
である場合、DNS Firewall は、設定した Resolver ログにもアラートを送信します。詳細については、DNS Firewall でのルールアクションおよびRoute 53 Resolver DNS Firewall のドメインリストを参照してください。 -
DNS Firewall が一致するものを見つけられずにすべてのルールグループを評価し終えた場合、通常どおりクエリに対して応答します。
Resolver は、DNS Firewall からのレスポンスに従ってクエリをルーティングします。万が一 DNS Firewall が応答しなかった場合、Resolver は VPC に設定されている DNS Firewall の障害モードを適用します。詳細については、「DNS Firewall での VPC の設定」を参照してください
Route 53 Resolver DNS Firewall を使用するための手順の概要
Amazon Virtual Private Cloud VPC で Route 53 Resolver DNS Firewall のフィルタリングを実装するには、次の手順を実行します。
-
フィルタリングのアプローチとドメインリストの定義 — クエリをフィルタリングする方法を決定し、必要なドメイン仕様を特定して、クエリの評価に使用するロジックを定義します。例えば、既知の不正なドメインのリストにあるクエリを除くすべてのクエリを許可できます。または反対に、承認したリストのドメインを除くすべてのドメインをブロックすることもできます。これは、ウォールドガーデンアプローチとして知られています。承認またはブロックしたドメイン仕様に関する、独自のリストを作成および管理できます。また、AWS が管理するドメインリストを利用することも可能です。ドメインリストの詳細については、「Route 53 Resolver DNS Firewall のドメインリスト」を参照してください。
-
ファイアウォールルールグループの作成 — DNS Firewall で、VPC 向けの DNS クエリをフィルタリングするルールグループを作成します。ルールグループは、使用するリージョンごとに作成する必要があります。また、異なる VPC の複数のフィルタリングシナリオで再利用できるように、フィルタリング動作を複数のルールグループに分けることもできます。ルールグループについては、「DNS Firewall のルールグループとルール」を参照してください。
-
ルールの追加と設定 — ルールグループで提供するドメインリストおよびフィルタリング動作ごとに、ルールグループにルールを追加します。ルールグループ内でルールが正しい順序で処理されるように、ルールの優先度を設定します。最初に評価するルールの優先順位が最も低くなるようにします。ルールについては、「DNS Firewall のルールグループとルール」を参照してください。
-
ルールグループを VPC に関連付ける — DNS Firewall ルールグループの使用を開始するには、VPC に関連付けます。VPC で複数のルールグループを使用している場合は、ルールグループが正しい順序で処理されるように、各関連付けの優先度を設定します。最初に評価するルールグループの優先順位が最も低くなるようにします。詳細については、「VPC と Route 53 Resolver DNS Firewall ルールグループ間の関連付けの管理」を参照してください
-
(オプション) VPC の DNS Firewall 設定を変更する— DNS Firewall がレスポンスの送信に失敗した場合、 Route 53 Resolver がクエリをブロックするようにするには、Resolver で VPC の DNS Firewall 設定を変更します。詳細については、「DNS Firewall での VPC の設定」を参照してください
複数のリージョンで Route 53 Resolver の DNS Firewall ルールグループを使用する
Route 53 Resolver DNS Firewall はリージョンごとのサービスであるため、1 つの AWS リージョンで作成したオブジェクトは、そのリージョンでのみ使用できます。同じルールグループを複数のリージョンで使用するには、リージョンごとにルールグループを作成する必要があります。
ルールグループを作成した AWS アカウントは、ルールグループを他の AWS アカウントと共有できます。詳細については、「AWS アカウント間で Route 53 Resolver DNS Firewall ルールグループを共有する」を参照してください。