Route 53 Resolver DNS クエリログをクロスアカウントのS3バケットへ保存する

Route 53 Resolver DNS クエリログをクロスアカウントのS3バケットへ保存する

2026.03.27

コンサルティング部の吉井です。

Route 53 Resolver DNS クエリログを取得して S3 に保存する機会があったので、設定内容と手順をまとめてみます。

やりたいこと

アカウントAからRoute 53 Resolver DNSクエリログを取得して、ログ保存用AWSアカウントのS3バケットに保存したい。
将来的にはログを取得するアカウントが増えるかもしれない。

最終的な構成

ログ保存用アカウントにS3バケットとクエリログ設定作成し、クエリログ設定はAWS RAM で各アカウントに共有する構成にしました。
この構成にしておくと、アカウント追加時に各アカウントで個別にクエリログ設定を作る必要がなく、運用コストを下げれそうです。
また、バケットポリシーも自動で設定される点も良さそうです。

SCR-20260327-myqw

やってみた

ログ保存用アカウントでの作業

S3

ログを保存しておくS3バケットを作成しておきます。S3バケットはクエリログ設定と同じリージョンで作成する必要があります。
SCR-20260327-nvjr

Route 53 クエリログの設定

次にクエリログの設定を作成します。
SCR-20260327-pbyh

クエリログの送信先は先ほど作成したS3バケットにしておきます。
SCR-20260327-pgcp

RAM

最後にRAMのリソース共有を作成します。

SCR-20260327-pjzo

リソースタイプはリゾルバーのクエリログ設定とし、先ほど作成したクエリログの設定を追加・選択します。
SCR-20260327-pqph

アクセス許可はデフォルトのAWSRAMDefaultPermissionResolverQueryLogConfigを使用します。
SCR-20260327-psho

最後にアカウントA(クエリログを取得したいアカウント)にアクセス権限を追加します。

SCR-20260327-pvbe

RAMのリソース共有が作成できれば、ログ保存用AWSアカウントでの作業は終了です。

アカウントA(クエリログを取得したいアカウント)の作業

RAM

RAMからクエリログ設定の共有を承認します。

SCR-20260327-qave

SCR-20260327-qcbr

Route53 クエリログの設定

次に、承認したクエリログ設定にクエリログを取得したいVPCを追加します。

SCR-20260327-qhic

SCR-20260327-qilc

これでアカウントAでの作業は完了です。

最後にログ集約アカウント側でS3バケットポリシーが追加されている事とログが保存されていることを確認しておきます。

SCR-20260327-qmpq

SCR-20260327-qozn

問題なさそうですね。

最後に

今回はRoute 53 Resolver DNS クエリログを別アカウントの S3 バケットに保存してみました。
クエリログ設定を AWS RAM で共有することで、アカウント追加時の運用をシンプルにできて良いなと感じました!

この記事をシェアする

FacebookHatena blogX

関連記事