RDS(Aurora MySQL)の監査ログ設定

RDSの監査ログを有効にする方法

ハマったこと

  • RDSはインスタンス作成時に以下の種類のログエクスポートを選択することが可能です。デフォルトは無効です。
    • 監査ログ
    • エラーログ
    • 全般ログ
    • スロークエリログ
  • 今回私がハマったポイントをご紹介します。RDSのインスタンス作成時にログエクスポートを設定しただけでは不足があり、RDSのログは一部しかCloudWatchにエクスポートされていなかったのです。本記事では、RDSのインスタンス作成後に監査ログを有効にする設定を記載します。その他のログエクスポートを有効にする設定は、下記記事を参照ください。
  • Amazon Aurora MySQLを例とします。

RDS監査ログの有効化設定(Aurora MySQL)

  • RDSのAWSコンソールを開き、パラメータグループを編集します。デフォルトのパラメータグループではなく、以下のようにパラメータをカスタマイズするために作ったパラメータグループが必要です。
 
  • 監査ログを有効にするために、下記の設定を変更します。
    • server_audit_logs_upload: CloudWatch Logs にエクスポートする設定。
      • “1”に設定します。このパラメータのデフォルト値は 0 です。
    • server_audit_logging: 高度な監査を有効または無効する設定。
      • “1”に設定します。このパラメータのデフォルト値は 0 です。
    • server_audit_events: 記録するイベントのコンマ区切りリストが含まれています。イベントはすべて大文字で指定する必要があります。リスト要素間に空白があってはいけません。(例: CONNECT,QUERY_DDL)
      • 今回は、“CONNECT,QUERY,QUERY_DCL,QUERY_DDL,QUERY_DML,TABLE”を設定します。このパラメータのデフォルトは空の文字列です。
  • 以下デフォルトの状態です。
 
  • 以下設定変更後です。適用タイプがdynamicのため、インスタンスを再起動せずに適用できます。
 

CloudWatch Logsをチェック

  • CloudWatch Logsにロググループが作成されていることを確認します。
 

参考

server_audit_events のタイプ

  • CONNECT – 成功した接続と失敗した接続の両方、および切断を記録します。このイベントにはユーザー情報が含まれています。
  • QUERY – すべてのクエリをプレーンテキストで記録します (構文またはアクセス権限エラーで失敗したエラーを含む)。
  • QUERY_DCL – QUERY イベントと同様ですが、データ制御言語 (DCL) クエリ (GRANT、REVOKE など) のみ返します。
  • QUERY_DDL – QUERY イベントと同様ですが、データ定義言語 (DDL) クエリ (CREATE、ALTER など) のみ返します。
  • QUERY_DML – QUERY イベントと同様ですが、データ操作言語 (DML) クエリ (INSERT、UPDATE などと、SELECT) のみ返します。
  • TABLE – クエリ実行の影響を受けたテーブルを記録します。

ドキュメント

AWS, RDS

Posted by takaaki