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=>
\q
AWS 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-name
custom-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-identifier
writer-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-name
custom-param-group-name
\ --parameters "ParameterName=pgaudit.log,ParameterValue=write
,ApplyMethod=pending-reboot" \ --regionaws-region
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
のログ記録 (送信先がリレーション (テーブル) の場合)。
次の AWS CLI コマンドを使用して、Aurora PostgreSQL DB クラスターのライターインスタンス を再起動します。
aws rds reboot-db-instance \ --db-instance-identifier
writer-instance
\ --regionaws-region