Aurora MySQLの監査ログがCloudWatch Logsにエクスポートされない場合の対処方法

テクニカルサポートノート。 サービス名:Aurora MySQL, CloudWatch Logs
2021.01.28

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

困っていた内容

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クラスターに対してクラスターパラメータグループの変更を行いますが、
クラスターパラメータグループの変更については機能停止は発生しませんので、変更を即時反映できます。

Amazon Aurora の設定

設定と説明: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に監査ログがエクスポートされることを確認できました。

参考情報

Amazon Aurora DB クラスターの変更

Amazon Aurora MySQL DB クラスターでの高度な監査の使用

Amazon CloudWatch Logs への Amazon Aurora MySQL ログの発行