MySQL に対する MariaDB 監査プラグインのサポート
Amazon RDS は、オープンソースの MariaDB 監査プラグインに基づいた MySQL データベースインスタンス用の監査プラグインを提供しています。詳細については、「MySQL サーバー GitHub リポジトリの監査プラグイン
注記
MySQL の監査プラグインは MariaDB 監査プラグインに基づいています。この記事では、このプラグインを「MariaDB 監査プラグイン」と呼びます。
MariaDB 監査プラグインは、データベースへのユーザーのログオンやデータベースに対して実行されたクエリなどのデータベースアクティビティを記録します。データベースのアクティビティのレコードはログファイルに保存されます。
注記
現在のところ、MariaDB 監査プラグインは以下の RDS for MySQL バージョンでのみサポートされています。
MySQL のバージョン 8.0 (8.0.26 以降)
すべての MySQL 5.7 バージョン
監査プラグインのオプション設定
Amazon RDS では、MariaDB 監査プラグインのオプションの次の設定がサポートされています。
オプション設定 | 有効な値 | デフォルト値 | 説明 |
---|---|---|---|
|
|
|
ログファイルの場所。ログファイルには、 |
|
1-1000000000 |
1000000 |
このバイト数のサイズに達するとファイルがローテーションします。詳細については、「RDS for MySQL データベースログの概要」を参照してください。 |
|
0-100 |
9 |
|
|
|
|
ログに記録するアクティビティのタイプ。MariaDB 監査プラグインのインストール自体も記録されます。
MySQL では、 |
|
複数のカンマ区切り値 |
なし |
指定されたユーザーからのアクティビティのみを含めます。デフォルトでは、アクティビティはすべてのユーザーについて記録されます。 |
|
複数のカンマ区切り値 |
なし |
指定されたユーザーからのアクティビティを除外します。デフォルトでは、アクティビティはすべてのユーザーについて記録されます。 注記 |
|
|
|
ログ記録がアクティブです。唯一の有効な値は |
|
0-2147483647 |
1024 |
レコードのクエリ文字列の長さに対する制限。 |
MariaDB 監査プラグインの追加
MariaDB 監査プラグインを DB インスタンスに追加する一般的な手順は以下のとおりです。
新しいオプショングループを作成するか、既存のオプショングループをコピーまたは変更する
オプショングループにオプションを追加する
オプショングループを DB インスタンスに関連付ける
MariaDB 監査プラグインを追加した後で、DB インスタンスを再起動する必要はありません。オプショングループがアクティブになると、直ちに監査がスタートされます。
重要
MariaDB 監査プラグインを DB インスタンスに追加すると、停止する可能性があります。MariaDB 監査プラグインは、メンテナンス期間中またはデータベースのワークロードが低い時間帯に追加することをお勧めします。
MariaDB 監査プラグインを追加するには
-
使用するオプショングループを決定します。新しいオプショングループを作成することも、既存のオプショングループを使用することもできます。既存のオプショングループを使用する場合は、次のステップは飛ばしてください。それ以外の場合は、カスタム DB オプショングループを作成します。[エンジン] で [mysql] を選択し、[メジャーエンジンバージョン] で [5.6] または [5.7] を選択します。詳細については、「オプショングループを作成する」を参照してください。
-
オプショングループに [MARIADB_AUDIT_PLUGIN] オプションを追加し、オプションを設定します。オプションの追加方法の詳細については、「オプショングループにオプションを追加する」を参照してください。各設定の詳細については、「監査プラグインのオプション設定」を参照してください。
-
新規または既存の DB インスタンスに、DB オプショングループを適用します。
-
新規 DB インスタンスの場合は、インスタンスを起動するときにオプショングループを適用します。詳細については、「Amazon RDS DB インスタンスの作成」を参照してください。
-
既存の DB インスタンスの場合は、インスタンスを修正し、新しいオプショングループを添付することで、オプショングループを適用します。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。
-
監査ログの形式
ログファイルは、UTF-8 形式のカンマ区切り変数 (CSV) ファイルとして表されます。
ヒント
ログファイルのエントリは、順番になっていません。エントリを順序付けするには、タイムスタンプ値を使用します。最新のイベントを表示するには、すべてのログファイルの確認が必要な場合があります。ログデータの並べ替えと検索をより柔軟に行うためには、監査ログを CloudWatch にアップロードするための設定を有効にし、CloudWatch インターフェイスを使用してそれらを表示します。
より多くのタイプのフィールドを含み、JSON 形式で出力された監査データを表示するには、データベースのアクティビティストリーム機能を使用することもできます。詳細については、「データベースアクティビティストリームを使用した Amazon RDS のモニタリング」を参照してください。
監査ログファイルの行には、次のカンマ区切りの情報が指定された順序で含まれています。
フィールド | 説明 |
---|---|
timestamp |
|
serverhost |
イベントが記録されているインスタンスの名前。 |
username |
ユーザーの接続されたユーザー名。 |
host |
ユーザーの接続元のホスト。 |
connectionid |
記録されたオペレーションの接続 ID 番号。 |
queryid |
クエリ ID 番号。リレーショナルテーブルイベントと関連するクエリの検索に使用できます。 |
オペレーション |
記録されたアクションの種類。指定できる値は |
データベース |
|
オブジェクト |
|
retcode |
記録されたオペレーションのリターンコード。 |
connection_type |
サーバーへの接続のセキュリティ状態です。可能な値は以下のとおりです。
このフィールドは、RDS for MySQL バージョン 5.7.34 以降の 5.7 バージョン、およびすべての 8.0 バージョンのみに含まれます。 |
MariaDB 監査プラグインのログの表示とダウンロード
MariaDB 監査プラグインを有効にした後は、他のテキストベースのログファイルと同様の方法でログファイル内の結果にアクセスします。監査ログファイルは /rdsdbdata/log/audit/
にあります。コンソールでログファイルを表示する方法の詳細については、「データベースログファイルの表示とリスト化」を参照してください。ログファイルのダウンロードについては、「データベースログファイルのダウンロード」を参照してください。
MariaDB 監査プラグインの設定の変更
MariaDB 監査プラグインを有効にした後、設定を変更できます。オプション設定の変更方法の詳細については、「オプションの設定を変更する」を参照してください。各設定の詳細については、「監査プラグインのオプション設定」を参照してください。
MariaDB 監査プラグインの削除
Amazon RDS では、MariaDB 監査プラグインのログ記録の無効化はサポートされていません。ただし、DB インスタンスからプラグインを削除することはできます。MariaDB 監査プラグインを削除すると、DB インスタンスが自動的に再起動され、監査が停止します。
MariaDB 監査プラグインを DB インスタンスから削除するには、次のいずれかを実行します。
MariaDB 監査プラグインが所属するオプショングループからプラグインを削除します。この変更はそのオプショングループを使用するすべての DB インスタンスに影響します。詳細については、「オプショングループからオプションを削除する」を参照してください。
DB インスタンスを修正して、プラグインが含まれない別オプショングループを指定します。この変更は、単一の DB インスタンスに影響します。デフォルト (空) のオプショングループや別のカスタムオプショングループを指定できます。詳細については、「Amazon RDS DB インスタンスを変更する」を参照してください。