pgAudit 拡張機能のセットアップ
RDS for PostgreSQL DB インスタンス に pgAudit 拡張機能を設定するには、まず RDS for PostgreSQL DB インスタンスのカスタム DB パラメータグループの共有ライブラリに pgAudit を追加します。カスタム DB パラメータグループの作成については、「Amazon RDS のパラメータグループ」を参照してください。次に、pgAudit 拡張機能をインストールします。最後に、監査するデータベースとオブジェクトを指定します。このセクションの手順で、方法を示します。AWS Management Console または AWS CLI を使用できます。
これらすべてのタスクを実行するには、rds_superuser ロールとして権限が必要です。
以下の手順では、 RDS for PostgreSQL DB インスタンスがカスタム DB パラメータグループに関連付けられていることを前提としています。
pgAudit 拡張機能をセットアップするには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
ナビゲーションペインで、 RDS for PostgreSQL DB インスタンスを選択します。
-
の [Configuration] (設定) タブを開きます。RDS for PostgreSQL DB インスタンス。インスタンスの詳細の中から、パラメータグループのリンクを見つけてください。
-
リンクを選択して、に関連するカスタムパラメータを開きます。RDS for PostgreSQL DB インスタンス。
-
パラメータ検索フィールドに、
shared_preを入力してshared_preload_librariesパラメータを検索します。 -
プロパティ値にアクセスするには、[Edit parameters] (パラメータの編集) を選択します。
-
[Values] (値) フィールドのリストに
pgauditを追加します。値のリスト内の項目を区切るにはカンマを使用します。
RDS for PostgreSQL DB instance を再起動して、
shared_preload_librariesパラメータの変更を有効にします。インスタンスが使用可能になったら、pgAudit が初期化されていることを確認します。
psqlを使用して RDS for PostgreSQL DB インスタンスに接続し、次のコマンドを実行します。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)pgAudit を初期化すると、拡張機能を作成できるようになりました。
pgaudit拡張機能はデータ定義言語 (DDL) ステートメントを監査するためのイベントトリガーをインストールするため、ライブラリを初期化した後に拡張機能を作成する必要があります。CREATE EXTENSION pgaudit;psqlセッションを終了します。labdb=>\qAWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 リストで
pgaudit.logパラメータを検索し、ユースケースに応じた値に設定します。例えば、次の画像に示すようにpgaudit.logパラメータをwriteに設定すると、ログへの挿入、更新、削除、およびその他のタイプの変更がキャプチャされます。
pgaudit.logパラメータには、次のいずれかの値を選択することもできます。none – これはデフォルトです。データベースの変更は記録されません。
すべて — すべてをログに記録します (読み取り、書き込み、関数、ロール、DDL、その他)。
ddl –
ROLEクラスに含まれていない、すべてのデータ定義言語 (DDL) ステートメントのログ記録。function – 関数呼び出し、および
DOブロックのログ記録。misc –
DISCARD、FETCH、CHECKPOINT、VACUUM、SETなど、さまざまなコマンドのログ記録。read –
SELECTおよびCOPYのログ記録 (ソースがリレーション (テーブルなどの) またはクエリの場合)。role –
GRANT、REVOKE、CREATE ROLE、ALTER ROLE、DROP ROLEなど、ロールと権限に関連するステートメントのログ記録。write –
INSERT、UPDATE、DELETE、TRUNCATE、およびCOPYのログ記録 (送信先がリレーション (テーブル) の場合)。
[Save changes] (変更の保存) をクリックします。
Amazon RDS コンソール (https://console.aws.amazon.com/rds/
) を開きます。 データベースリストから、 RDS for PostgreSQL DB インスタンスを選択します。
pgAudit をセットアップするには
AWS CLI を使用して pgAudit を設定するには、次の手順に示すように、modify-db-parameter-group オペレーションを呼び出してカスタムパラメータグループの監査ログパラメータを変更します。
次の AWS CLI コマンドを使用して
shared_preload_librariesパラメータにpgauditを追加します。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=shared_preload_libraries,ParameterValue=pgaudit,ApplyMethod=pending-reboot" \ --regionaws-region-
次の AWS CLI コマンドを使用して RDS for PostgreSQL DB インスタンスを再起動し、pgaudit ライブラリを初期化します。
aws rds reboot-db-instance \ --db-instance-identifieryour-instance\ --regionaws-region インスタンスが使用可能になると、
pgauditが初期化されていることを確認できます。psqlを使用して RDS for PostgreSQL DB インスタンスに接続し、次のコマンドを実行します。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)pgAudit を初期化すると、拡張機能を作成できるようになりました。
CREATE EXTENSION pgaudit;AWS CLI を使用できるように
psqlセッションを終了します。labdb=>\q次の AWS CLI コマンドを使用して、セッション監査ログによって記録するステートメントのクラスを指定します。この例では、
pgaudit.logパラメータをwriteに設定し、ログへの挿入、更新、削除をキャプチャします。aws rds modify-db-parameter-group \ --db-parameter-group-namecustom-param-group-name\ --parameters "ParameterName=pgaudit.log,ParameterValue=write,ApplyMethod=pending-reboot" \ --regionaws-regionpgaudit.logパラメータには、次のいずれかの値を選択することもできます。none – これはデフォルトです。データベースの変更は記録されません。
すべて — すべてをログに記録します (読み取り、書き込み、関数、ロール、DDL、その他)。
ddl –
ROLEクラスに含まれていない、すべてのデータ定義言語 (DDL) ステートメントのログ記録。function – 関数呼び出し、および
DOブロックのログ記録。misc –
DISCARD、FETCH、CHECKPOINT、VACUUM、SETなど、さまざまなコマンドのログ記録。read –
SELECTおよびCOPYのログ記録 (ソースがリレーション (テーブルなどの) またはクエリの場合)。role –
GRANT、REVOKE、CREATE ROLE、ALTER ROLE、DROP ROLEなど、ロールと権限に関連するステートメントのログ記録。write –
INSERT、UPDATE、DELETE、TRUNCATE、およびCOPYのログ記録 (送信先がリレーション (テーブル) の場合)。
次の AWS CLI コマンドを使用して、 RDS for PostgreSQL DB インスタンスを再起動します。
aws rds reboot-db-instance \ --db-instance-identifieryour-instance\ --regionaws-region