Amazon EventBridge を使用した Route 53 Resolver DNS ファイアウォールイベントの管理 - Amazon Route 53

Amazon EventBridge を使用した Route 53 Resolver DNS ファイアウォールイベントの管理

Amazon EventBridge は、イベントを使用してアプリケーションコンポーネントを接続するサーバーレスサービスです。このサービスを使用すると、スケーラブルなイベント駆動型アプリケーションを簡単に構築することができます。イベント駆動型アーキテクチャとは、イベントの発信と応答によって連携する、ゆるやかに結合されたソフトウェアシステムを構築するスタイルです。イベントとは、リソースまたは環境で発生した変更を指します。

多くの AWS サービスと同様、DNS ファイアウォールは、イベントを生成してそれを EventBridge のデフォルトのイベントバスに送信します。(デフォルトのイベントバスは、すべての AWS アカウントで自動的にプロビジョニングされます)。イベントバスは、イベントを受信するルーターであり、ゼロ個以上の送信先やターゲットに配信します。イベントが受信されると、ユーザーがイベントバスに対して指定したルールによって評価されます。各ルールは、イベントがルールのイベントパターンに一致するかどうかをチェックします。一致する場合、イベントバスはそのイベントを指定されたターゲットに送信します。

AWS サービスは、イベントを EventBridge のデフォルトのイベントバスに送信します。イベントがルールのイベントパターンに一致すると、EventBridge は、そのルールで指定されたターゲットに、イベントを送信します。

Route 53 Resolver DNS ファイアウォールイベント

Route 53 Resolver は、DNS ファイアウォールイベントをデフォルトの EventBridge イベントバスに自動的に送信します。イベントバスにルールを作成できます。各ルールには、イベントパターンと 1 つ以上のターゲットが含まれます。ルールのイベントパターンに一致するイベントは、ベストエフォートベースで指定されたターゲットに配信されます。イベントは順序どおりに配信される可能性があります。

次のイベントは DNS ファイアウォールによって生成されます。詳細については、「Amazon EventBridge ユーザーガイド」の「EventBridge」を参照してください。

イベントの詳細のタイプ 説明

DNS ファイアウォールブロック

ドメインに対して実行されるブロックアクション。

DNS ファイアウォールアラート

ドメインに対して実行されるアラートアクション。

EventBridge ルールを使用した Route 53 Resolver DNS ファイアウォールイベントの送信

EventBridge のデフォルトイベントバスが、DNS ファイアウォールイベントをターゲットに送信するようにするには、目的の DNS ファイアウォールイベントのデータに一致するイベントパターンを含むルールを作成する必要があります。

ルールの作成ステップは以下のとおりです。

  1. 以下を指定するルールのイベントパターンを作成します。

    • Route 53 Resolver は、ルールによって評価されるイベントのソースです。

    • (オプション): 照合対象となるその他のイベントデータ。

    詳細については、「Route 53 Resolver DNS ファイアウォールイベントのイベントパターンの作成」を参照してください。

  2. (オプション): EventBridge がルールのターゲットに情報を渡す前に、イベントからのデータをカスタマイズする入力トランスフォーマーを作成します。

    詳細については、「EventBridge ユーザーガイド」の「Amazon EventBridge 入力変換」を参照してください。

  3. EventBridge から、イベントパターンに一致するイベントを配信する際の配信先となるターゲットを指定します。

    ターゲットは、他の AWS のサービス、Software as a Service (SaaS) アプリケーション、API 送信先、その他のカスタムエンドポイントなどです。詳細については、EventBridge ユーザーガイドターゲットを参照してください。

イベントバスルールの詳細な作成方法については、「EventBridge ユーザーガイド」の「イベントに反応する Amazon EventBridge ルールの作成」を参照してください。

Route 53 Resolver DNS ファイアウォールイベントのイベントパターンの作成

DNS ファイアウォールがイベントをデフォルトのイベントバスに配信するとき、EventBridge は、各ルールで定義されたイベントパターンを使用して、そのイベントをルールの各ターゲットに配信すべきかどうかを判断します。イベントパターンは、目的の DNS ファイアウォールイベントのデータに一致します。各イベントパターンは JSON 形式のオブジェクトで、以下が含まれています。

  • イベントを送信するサービスを識別する source 属性。DNS ファイアウォールイベントの場合、ソースは aws.route53resolver です。

  • (オプション): 照合するイベントタイプの配列を含む detail-type 属性。

  • (オプション): 照合対象となるその他のイベントデータを含む detail 属性。

例えば、次のイベントパターンは、DNS ファイアウォールからのアラートイベントとブロックイベントの両方に一致します。

{ "source": ["aws.route53resolver"], "detail-type": ["DNS Firewall Block", "DNS Firewall Alert"] }

次のイベントパターンが BLOCK アクションと一致している間:

{ "source": ["aws.route53resolver"], "detail-type": ["DNS Firewall Block"] }

DNS ファイアウォールは、6 時間以内に同じドメインに対して同じイベントを 1 回だけ送信します。例:

  1. インスタンス i-123 は、T1 に DNS クエリ exampledomain.com を送信しました。DNS ファイアウォールは、これが最初の発生であるため、アラートイベントまたはブロックイベントを送信します。

  2. インスタンス i-123 は、T1+30 分に DNS クエリ exampledomain.com を送信しました。DNS ファイアウォールは、6 時間の時間枠内に繰り返し発生するため、アラートまたはブロックイベントを送信しません。

  3. インスタンス i-123 は T1+7 時間に DNS クエリ exampledomain.com を送信しました。DNS ファイアウォールは、6 時間の時間枠外に発生したアラートイベントまたはブロックイベントを送信します。

詳細については、「EventBridge ユーザーガイド」の「Amazon EventBridge のイベントパターン」を参照してください。

EventBridge での DNS ファイアウォールイベントのイベントパターンのテスト

EventBridge サンドボックスを使用すると、ルールの作成や編集などのより規模の大きいプロセスを実行しなくても、イベントパターンを簡単に定義してテストすることができます。サンドボックスを使用すると、イベントパターンを定義し、サンプルイベントを使用して、パターンが目的のイベントに一致するかどうかを確認できます。EventBridge では、そのイベントパターンを使用して、サンドボックスから直接新しいルールを作成することができます。

詳しくは、「EventBridge ユーザーガイド」の「EventBridge サンドボックスを使用したイベントパターンのテスト」を参照してください。

DNS ファイアウォールの EventBridge ルールとターゲットの作成

次の手順では、EventBridge がすべての DNS ファイアウォールアラートアクションとブロックアクションのイベントを送信し、ルールのターゲットとして AWS Lambda 関数を追加できるようにするルールを作成する方法を示します。

  1. AWS CLI を使用して EventBridge ルールを作成するには:

    aws events put-rule \ --event-pattern "{\"source\": [\"aws.route53resolver\"],\"detail-type\": [\"DNS Firewall Block\", \"DNS Firewall Alert\"]}" \ --name dns-firewall-rule
  2. ルールのターゲットとして Lambda 関数をアタッチします。

    AWS events put-targets --rule dns-firewall-rule --targets Id=1,Arn=arn:aws:lambda:us-east-1:111122223333:function:<your_function>

  3. ターゲットを呼び出す上で必要な許可を追加するには、次の Lambda AWS CLI コマンドを実行します。

    AWS lambda add-permission --function-name <your_function> --statement-id 1 --action 'lambda:InvokeFunction' --principal events.amazonaws.com

Amazon EventBridge アクセス権限

DNS ファイアウォールでは、Amazon EventBridge にイベントを配信するために追加のアクセス許可は必要ありません。

指定するターゲットに、特定のアクセス許可または設定が必要になることがあります。ターゲットに特定のサービスを使用する方法の詳細については、「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge ターゲット」を参照してください。

その他の EventBridge リソース

EventBridge を使用してイベントを処理および管理する方法の詳細については、「Amazon EventBridge ユーザーガイド」の以下のトピックを参照してください。