pgAudit 拡張機能のセットアップ
Aurora PostgreSQL DB クラスターに pgAudit 拡張機能を設定するには、まず RDS for PostgreSQL DB インスタンスのの共有ライブラリに pgAudit を追加します。Aurora PostgreSQL DB クラスター用のカスタム DB クラスターでパラメータグループ。カスタム DB クラスターパラメータグループの詳細については、「Amazon Aurora のパラメータグループ」を参照してください。次に、pgAudit 拡張機能をインストールします。最後に、監査するデータベースとオブジェクトを指定します。このセクションの手順で、方法を示します。AWS Management Console または AWS CLI を使用できます。
これらすべてのタスクを実行するには、rds_superuser ロールとして権限が必要です。
以下の手順では、Aurora PostgreSQL DB クラスター がカスタム DB クラスター パラメータグループに関連付けられていることを前提としています。
pgAudit 拡張機能をセットアップするには
AWS Management Console にサインインし、Amazon RDS コンソール https://console.aws.amazon.com/rds/
を開きます。 -
ナビゲーションペインで、Aurora PostgreSQL DB クラスターのライターインスタンス を選択します。
-
Aurora PostgreSQL DB クラスターライターインスタンスの [Configuration] (設定) タブを開きます。インスタンスの詳細の中から、パラメータグループのリンクを見つけてください。
-
リンクを選択して、Aurora PostgreSQL DB クラスターに関連するカスタムパラメータを開きます。
-
パラメータ検索フィールドに、
shared_preを入力してshared_preload_librariesパラメータを検索します。 -
プロパティ値にアクセスするには、[Edit parameters] (パラメータの編集) を選択します。
-
[Values] (値) フィールドのリストに
pgauditを追加します。値のリスト内の項目を区切るにはカンマを使用します。
Aurora PostgreSQL DB クラスターのライターインスタンス を再起動して、
shared_preload_librariesパラメータの変更を有効にします。インスタンスが使用可能になったら、pgAudit が初期化されていることを確認します。
psqlを使用して Aurora 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/
) を開きます。 データベースリストから、Aurora 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 コマンドを使用して Aurora PostgreSQL DB クラスターのライターインスタンス を再起動し、pgaudit ライブラリを初期化します。
aws rds reboot-db-instance \ --db-instance-identifierwriter-instance\ --regionaws-region インスタンスが使用可能になると、
pgauditが初期化されていることを確認できます。psqlを使用して Aurora 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 コマンドを使用して、Aurora PostgreSQL DB クラスターのライターインスタンス を再起動します。
aws rds reboot-db-instance \ --db-instance-identifierwriter-instance\ --regionaws-region