Amazon Aurora MySQL DB クラスターでの高度な監査の使用
Amazon Aurora MySQL では、パフォーマンスの高い高度な監査機能を使用して、データベースアクティビティを監査できます。そのためには、複数の DB クラスターパラメータを設定することによって監査ログの収集を有効にします。高度な監査を有効にすると、この機能を使用して、サポートされているイベントの任意の組み合わせを記録できます。監査ログは、表示またはダウンロードして確認することができます。
Aurora MySQL の全般ログ、スローログ、監査ログ、およびエラーログデータを CloudWatch Logs のロググループへ発行できます。詳細については、「Amazon CloudWatch Logs への Amazon Aurora MySQL ログの発行」を参照してください。
高度な監査の有効化
DB クラスターの高度な監査を有効にして設定するには、このセクションで説明されているパラメータを使用します。
高度な監査を有効化または無効化するには server_audit_logging
パラメータを使用し、記録するイベントを指定するには server_audit_events
パラメータを使用します。
server_audit_excl_users
パラメータと server_audit_incl_users
パラメータを使用して、監査するユーザーを指定します。server_audit_excl_users
と server_audit_incl_users
が空の場合 (デフォルト)、すべてのユーザーが監査されます。ユーザーを server_audit_incl_users
に追加して server_audit_excl_users
を空のままにした場合、それらのユーザーだけが検査されます。ユーザーを server_audit_excl_users
に追加して server_audit_incl_users
を空のままにした場合、それらのユーザーだけが監査されず、他のすべてのユーザーが監査されます。server_audit_excl_users
と server_audit_incl_users
の両方に同じユーザーを追加した場合、server_audit_incl_users
が優先されるためそれらのユーザーは監査されます。
高度な監査は、DB クラスターにより使用されているパラメータグループでこれらのパラメータを設定することにより設定します。「DB パラメータグループのパラメータの変更」に示されている手順を使用し、AWS マネジメントコンソールを使用して DB クラスターパラメータを変更できます。AWS CLI の modify-db-cluster-parameter-group コマンド、または Amazon RDS API の ModifyDBClusterParameterGroup コマンドを使用して、プログラムで DB クラスターパラメータを変更できます。
これらのパラメータを変更しても、DB クラスターを再起動する必要はありません。
server_audit_logging
高度な監査を有効または無効にします。このパラメータのデフォルトは OFF です。高度な監査を有効にするには、ON に設定します。
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_excl_users
アクティビティが記録されているユーザーのカンマ区切りのユーザー名リストが含まれています。リストの要素間にスペースは挿入しないでください。たとえば、rdsadmin,user_1,user_2
などです。このパラメータのデフォルトは空の文字列です。最大長は 1024 文字です。指定したユーザー名は、mysql.user
テーブルの User
列の対応する値と一致する必要があります。ユーザー名の詳細については、MySQL のドキュメント
接続および切断イベントは、この変数の影響を受けません。指定された場合は常に記録されます。ユーザーが server_audit_incl_users
パラメータでも指定されている場合、そのユーザーは記録されます。この設定の方が server_audit_excl_users
より優先順位が高いためです。
server_audit_incl_users
アクティビティが記録されていないユーザーのカンマ区切りのユーザー名リストが含まれています。リストの要素間にスペースは挿入しないでください。たとえば、user_3,user_4
などです。このパラメータのデフォルトは空の文字列です。最大長は 1024 文字です。指定したユーザー名は、mysql.user
テーブルの User
列の対応する値と一致する必要があります。ユーザー名の詳細については、MySQL のドキュメント
接続および切断イベントは、この変数の影響を受けません。指定された場合は常に記録されます。ユーザーが server_audit_excl_users
パラメータでも指定されている場合も、そのユーザーは記録されます。server_audit_incl_users
の方が優先順位が高いためです。
監査ログの表示
監査ログを表示およびダウンロードするには、コンソールを使用します。[データベース] ページで、DB インスタンスをクリックして詳細を表示し、[ログ] セクションまでスクロールします。

ログファイルをダウンロードするには、[ログ] セクションでファイルを選択してから、[ダウンロード] を選択します。
describe-db-log-files AWS CLI コマンドを使用して、ログファイルのリストを取得することもできます。ログファイルの内容は、AWS CLI の download-db-log-file-portion コマンドを実行してダウンロードできます。詳細については、「データベースログファイルの表示とリスト化」および「データベースログファイルのダウンロード」を参照してください。
監査ログの詳細
ログファイルは UTF-8 形式です。ログは、複数のファイルに書き込まれます。ファイル数は、インスタンスのサイズによって異なります。最新のイベントを表示するには、すべての監査ログファイルの確認が必要な場合があります。
ログのエントリは、順番になっていません。並べ替えには、タイムスタンプ値を使用できます。
ログファイルは、合計 100 MB に達するとローテーションされます。この制限は設定できません。
監査ログファイルの行には、次のカンマ区切りの情報が指定された順序で含まれています。
フィールド | 説明 |
---|---|
timestamp |
記録されたイベントの UNIX タイムスタンプ (マイクロ秒の精度)。 |
serverhost |
イベントが記録されているインスタンスの名前。 |
username |
ユーザーの接続されたユーザー名。 |
host |
ユーザーの接続元のホスト。 |
connectionid |
記録されたオペレーションの接続 ID 番号。 |
queryid |
クエリ ID 番号。リレーショナルテーブルイベントと関連するクエリの検索に使用できます。 |
オペレーション |
記録されたアクションの種類。指定できる値は |
データベース |
|
オブジェクト |
|
retcode |
記録されたオペレーションのリターンコード。 |