Amazon Route 53のDNSクエリログ設定について

Amazon Route 53とはDNSおよびトラフィックルーティングのサービスです。Amazon Route 53のDNSクエリログを有効化することで、どのドメインがどれだけの頻度で問い合わせられているか、また不正なアクセスや異常なパターンがないか、などを監視することが可能です。

問い合わせ元もログに記録されるので、Amazon Route 53のレコードを削除する際も、影響が出ないかどうかを確認することが可能です。

本記事では、Amazon Route 53のDNSクエリログ取得方法とログの見方を紹介します。

パブリックDNSクエリのログとは

Amazon Route 53が受信した、パブリックホストゾーンのレコードに対するDNSクエリの情報を記録することが可能です。

クエリログを設定すると、Amazon Route 53 はログを CloudWatch ログに送信します。

docs.aws.amazon.com

DNSクエリログの活用

クエリは主に以下の活用方法があります。

  • セキュリティ監視:不審なドメインへの問い合わせを検出
  • パフォーマンス分析:使用頻度の高いドメインへの応答時間の最適化
  • トラブルシューティング:解決されないDNSクエリの原因究明

DNSクエリログ取得手順

事前準備として、CloudWatch Logsのロググループを「バージニア北部*1」に作成しておく必要があります。

※クエリログ作成画面でロググループ作成することも可能ですが、保持期間など詳細設定はCloudWatch Logs画面での操作が必要です。

1.AWSマネジメントコンソールの左上の検索欄に[Route53]と入力して、サービスに表示される[Route 53]を選択する

2.左ペインより[ホストゾーン]を選択して、クエリログを取得したいホストゾーンの[ホストゾーン名]をクリックする

3.対象ホストゾーン画面の右上[クエリログの設定]を選択する

4.クエリログの設定画面で事前に作成したCloudWatch Logsの[ロググループ]を選択する

※ロググループが表示されない場合は、ロググループが[バージニア北部]に作成されているか確認する

5.Route53からCloudWatch Logsにログを出力するためのアクセス許可を付与するため、[アクセス許可の付与]を選択する

6.画面上に「Route 53へのアクセス許可が正常に付与されました。」が表示されていることを確認し、[作成]を選択する

7.対象ホストゾーン画面上に[クエリログ記録設定が正常に作成されました。]と表示されることと、画面右の[クエリログの設定]から[クエリログ記録の設定を表示]に代わっていることを確認する

以上でクエリログ設定は完了となります。

DNSクエリログの確認

DNSクエリログ作成時に選択したCloudWatch Logsから、DNSクエリログを確認することが可能です。

指定されたホストゾーンのDNSクエリに応答するAmazon Route 53エッジロケーション*2ごとに1つCloudWatch Logsログストリームを作成します。各ログストリームの名前の形式はhosted-zone-id/edge-location-IDです。

例)Z1D633PJN98FT9/DFW3

ログの例は以下となります。

1.0
2017-12-13T08:16:02.130Z Z123412341234 example.com A NOERROR UDP Region
192.168.1.1 -
1.0
2017-12-13T08:15:50.235Z Z123412341234 example.com AAAA NOERROR TCP Region
192.168.3.1 192.168.222.0/24
1.0
2017-12-13T08:16:03.983Z Z123412341234 example.com ANY NOERROR UDP Region
2001:db8::1234 2001:db8:abcd::/48

ログの出力内容は以下となります。

ログ項目 説明
ログ形式バージョン クエリログのバージョン番号。
クエリのタイムスタンプ Amazon Route 53がリクエストに応答した日時。
ホストゾーン ID ログ内のすべてのDNSクエリに関連付けられているホストゾーンのID
クエリ名 リクエストで指定されたドメインまたはサブドメイン
クエリタイプ リクエストで指定されたDNSレコードタイプ、またはANY。
Response Code
(レスポンスコード)
Amazon Route 53がDNSクエリに応答して返したレスポンスDNSコード。
レイヤー 4 プロトコル クエリの送信に使用されたプロトコル(TCP または UDP)。
Route 53エッジロケーション クエリに応答したAmazon Route 53エッジロケーション。
リゾルバー IP アドレス Amazon Route 53にリクエストを送信したDNSリゾルバーの IP アドレス。
EDNS
クライアントサブネット
DNSリゾルバーから利用可能な場合、リクエスト元のクライアントの部分 IP アドレス。

docs.aws.amazon.com

おわりに

Amazon Route 53のDNSクエリログを有効化することで、アクセス頻度や監視が可能です

設定自体は難しくないので、運用の一つとして視野に入れて頂ければと思います。

*1:Amazon Route 53はグローバルサービスのため、グローバルリージョンであるバージニア北部にロググループを作成する必要があります。

*2:各エッジロケーションは、例えばDFW3など3 文字のコードと任意に割り当てられた番号によって識別されます。通常、この3文字コードは、エッジロケーションの近くにある空港の、国際航空運送協会の空港コードに対応します。

執筆担当者プロフィール
相澤 萌々子

相澤 萌々子(日本ビジネスシステムズ株式会社)

クラウドソリューション本部 AWSのインフラにかかわる業務に携わっています。

担当記事一覧