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"を設定します。このパラメータのデフォルトは空の文字列です。
- server_audit_logs_upload: CloudWatch Logs にエクスポートする設定。
- 以下デフォルトの状態です。
- 以下設定変更後です。適用タイプが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 – クエリ実行の影響を受けたテーブルを記録します。