Amazon RDS for MySQL DB インスタンスへのログイン試行の失敗を記録する方法を教えてください。

所要時間1分
0

セキュリティ上の理由から、Amazon Relational Database Service (Amazon RDS) for MySQL DB インスタンスへの接続の失敗または切断を追跡したいと考えています。

解決方法

MySQL を実行している DB インスタンスへの接続が失敗したり切断されると、試行された接続が error.logに記録されます。デフォルトでは、DB インスタンスに関連付けられているカスタム DB パラメータグループlog_warnings DB パラメータが有効になっています。このパラメータにより、MySQL を実行している DB インスタンスへの接続が失敗した場合、その試行が追跡されます。log_warnings の値が 1 より大きい場合、新たな接続の試行時に、サーバーにより切断された接続とアクセス拒否エラーが記録されます。

ユーザーが間違った認証情報で DB インスタンスにログインしようとすると、失敗した試行が error.logにキャプチャされます。次のログイン試行の失敗例をログで参照してください:

2016-08-23 15:03:37 1183 [Warning] Access denied for user 'tester'@'124.41.31.5' (using password: NO)

注: 5.7.2 以降の MySQL を実行している DB インスタンスの場合、log_warnings の代わりにlog_error_verbosity を使用してください。詳細については、log_error_verbosityの MySQL ドキュメントを参照してください。

短期間のトラブルシューティングでは、general_log を有効にし、トラブルシューティングが終了したら再度無効にするのがベストプラクティスです。general_log を有効にすると、実行されたすべてのクエリが記録されるため、負荷の高い本番 DB インスタンスでは大きなオーバーヘッドが発生します。

関連情報

Amazon RDS ログファイルのモニタリング

MySQL ドキュメントのサーバーシステム変数