Aurora MySQLの監査ログがCloudWatch Logsにエクスポートされない場合の対処方法
困っていた内容
Aurora MySQLクラスター作成時に「ログのエクスポート」から監査ログを有効にしました。
しかし、CloudWatch Logsに監査ログがエクスポートされません。
どのようにすれば監査ログをCloudWatch Logsにエクスポートできるでしょうか?
どう対応すればいいの?
クラスターパラメータグループのパラメータ値を変更する必要があります。
必要となる作業は以下の3点です。
1. クラスターパラメータグループの作成・変更(デフォルトのクラスターパラメータグループを使用している場合のみ)
2. server_audit_loggingパラメータ値の変更
3. server_audit_eventsパラメータ値の変更
1. クラスターパラメータグループの作成・変更(デフォルトのクラスターパラメータグループを使用している場合のみ)
デフォルトのクラスターパラメータグループはパラメータ値を変更することができません。
デフォルトのクラスターパラメータグループを使用している場合、クラスターパラメータグループを新規作成し、それを使用するようにAurora MySQLクラスターを変更する必要があります。
クラスターパラメータグループの作成
マネジメントコンソールのパラメータグループから「パラメータグループの作成」を押下します。
タイプに「DB Cluster Parameter Group」を選択し、グループ名、説明を入力して「作成」を押下します。
以上でクラスターパラメータグループの作成は完了です。
クラスターパラメータグループの変更
次にAurora MySQLクラスターに対してクラスターパラメータグループの変更を行いますが、
クラスターパラメータグループの変更については機能停止は発生しませんので、変更を即時反映できます。
設定と説明:DB クラスターのパラメータグループ
ダウンタイムに関する注意:この変更時に機能停止は発生しません。パラメータグループを変更すると、一部のパラメータの変更は、再起動なしで DB クラスター内の DB インスタンスに即時に適用されます。他のパラメータの変更は、DB クラスター内の DB インスタンスが再起動された後でのみ適用されます。
マネジメントコンソールから対象のAurora MySQLクラスターを選択し、「変更」を押下します。
DBクラスターのパラメータグループを上記で作成したクラスターパラメータグループに変更して、 マネジメントコンソール下部の「続行」を押下します。
機能停止は発生しないため、「すぐに適用」を選択し、「クラスターの変更」を押下します。
以上でクラスターパラメータグループの変更は完了です。
2. server_audit_loggingパラメータ値の変更
クラスターパラメータグループのserver_audit_loggingパラメータ値を変更します。
server_audit_logging
高度な監査を有効または無効にします。このパラメータのデフォルトは OFF です。高度な監査を有効にするには、ON に設定します。
クラスターパラメータグループのserver_audit_loggingパラメータのデフォルト値は0(無効)です。
値を1(有効)に変更する必要があります。
server_audit_loggingは動的パラメータのため、変更は即時反映されます。
以上でserver_audit_loggingパラメータ値の変更は完了です。
3. server_audit_eventsパラメータ値の変更
クラスターパラメータグループのserver_audit_loggingパラメータ値を変更します。
server_audit_events
記録するイベントのコンマ区切りリストが含まれています。イベントはすべて大文字で指定する必要があります。リスト要素間に空白があってはいけません。例: CONNECT,QUERY_DDL。このパラメータのデフォルトは空の文字列です。次のイベントの任意の組み合わせを記録できます。
- CONNECT – 成功した接続と失敗した接続の両方、および切断を記録します。このイベントにはユーザー情報が含まれています。
- QUERY – すべてのクエリをプレーンテキストで記録します (構文またはアクセス権限エラーで失敗したエラーを含む)。
- QUERY_DCL – QUERY イベントと同様ですが、データ制御言語 (DCL) クエリ (GRANT、REVOKE など) のみ返します。
- QUERY_DDL – QUERY イベントと同様ですが、データ定義言語 (DDL) クエリ (CREATE、ALTER など) のみ返します。
- QUERY_DML – QUERY イベントと同様ですが、データ操作言語 (DML) クエリ (INSERT、UPDATE などと、SELECT) のみ返します。
- TABLE – クエリ実行の影響を受けたテーブルを記録します。
クラスターパラメータグループのserver_audit_eventsパラメータのデフォルト値は空文字です。
適切な値に変更する必要があります。 今回はすべてのイベントを設定します。
server_audit_eventsは動的パラメータのため、変更は即時反映されます。
以上でserver_audit_eventsパラメータ値の変更は完了です。
CloudWatch Logsエクスポート確認
実際にAurora MySQLクラスターを新規作成し、上記のクラスターパラメータグループの作成・変更、server_audit_logging、server_audit_eventsパラメータ値の変更を行い、CloudWatch Logsに監査ログがエクスポートされることを確認できました。