RDSでのDBアクセスログの管理方法

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

こんにちは、虎塚です。

AWS APIの操作ログはCloudTrailでまるっと保存できるようになった今日この頃ですが、オンプレミス時代から変わらないDBのアクセスログをRDSではどのように扱っているでしょうか?

今回は、RDSでのアクセスログ取得方法や確認方法をご紹介します。

RDSのログ取得設定の方法

RDSのログ関連の設定は、パラメータグループで定義します。

パラメータグループを指定せずにRDSのインスタンスを作成した場合、DBエンジンやバージョンの種別に応じたデフォルトパラメータグループが自動的に割り当てられます。しかし、値を変更するには、自分で作成したパラメータグループを使用する必要があります。

パラメータグループの作成方法は、次のドキュメントを参照してください。

作成済みのRDSインスタンスに対して、関連づけるパラメータグループを後から変更することもできます。ただし、静的な設定項目については、再起動するまで変更が適用されません。

ログファイルの確認方法

RDSのログは、AWS Management ConsoleまたはAWS CLIから確認できます。

AWS Management Consoleでログを確認したいRDSのインスタンスを選択して、[Logs]ボタンをクリックします。

Logsボタン

ログファイル一覧が表示されます。この画面からログファイルをダウンロードすることもできます。

ログファイル一覧

AWS CLIでログファイルを見る方法については、次の記事を参照してください。

RDSのアクセスログの保存場所

上記の方法で確認できるログファイルが実際にはどこにあるかというと、RDSのストレージに格納されています。

つまり、RDSのストレージサイズを決めるときには、アプリケーションで利用するデータの量だけでなく、どんなログをどのくらいの期間保存するかアクセスログはどのように変化(増加)するかも考慮する必要があります。

ログの閲覧権限の設定

RDSログの閲覧権限は、IAMポリシーで制御します。RDSの次のアクションについて許可すると、ログを閲覧できます。

  • DescribeDBLogFiles
  • DownloadDBLogFilePortion

特に、本番環境でSQLクエリそのものをログに記録するように設定したら、ログにアクセスできる人を限定したい場合が多いと思います。IAMで権限を絞ると安心です!

おわりに

RDSでのDBアクセスログの管理方法をご紹介しました。ログを扱う上では次のことが大切ですね。

  • トラブル時にそなえてログの確認方法を把握しておく
  • 将来のログのサイズを考慮してストレージサイズを決める
    • といっても、AWSでは簡単にストレージを拡張できます
  • ログデータのセキュリティを確保する

なお、パラメータグループで設定できる具体的な設定項目については次の記事で紹介しましたので、よろしければご参照ください。

それでは、また。