设置 pgAudit 扩展
要在 Aurora PostgreSQL 数据库集群上设置 pgAudit 扩展,首先要将 pgAudit 添加到 Aurora PostgreSQL 数据库集群的自定义数据库集群参数组上的共享库中。有关创建自定义数据库集群参数组的信息,请参阅Amazon Aurora 的参数组。接下来,安装 pgAudit 扩展。最后,指定要审计的数据库和对象。本部分中的过程向您展示如何操作。您可以使用 Amazon Web Services Management Console或 Amazon CLI。
您必须拥有 rds_superuser 角色的权限才能执行所有这些任务。
以下步骤假设您的 Aurora PostgreSQL 数据库集群 与自定义数据库集群 参数组相关联。
设置 pgAudit 扩展
登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 -
在导航窗格中,选择 Aurora PostgreSQL 数据库集群的写入器实例 。
-
打开 Aurora PostgreSQL 数据库集群写入器实例的配置选项卡。的 Configuration(配置)选项卡。在实例详细信息中,找到 Parameter group(参数组)链接。
-
选择此链接以打开与您的 Aurora PostgreSQL 数据库集群 关联的自定义参数。
-
在 Parameters(参数)搜索字段中,键入
shared_pre以查找shared_preload_libraries参数。 -
选择 Edit parameters(编辑参数)以访问属性值。
-
将
pgaudit添加到 Values(值)字段的列表中。使用逗号分隔值列表中的项目。
重启 Aurora PostgreSQL 数据库集群的写入器实例,以使对
shared_preload_libraries参数的更改生效。当实例可用时,请验证 pgAudit 是否已初始化。使用
psql连接到 Aurora PostgreSQL 数据库集群的写入器实例,然后运行以下命令。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)初始化 pgAudit 后,您现在可以创建扩展了。您需要在初始化库后创建扩展,因为
pgaudit扩展会为审计数据定义语言(DDL)语句安装事件触发器。CREATE EXTENSION pgaudit;关闭
psql会话。labdb=>\q登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/
。 在列表中找到
pgaudit.log参数并设置为适合您的使用案例的值。例如,将pgaudit.log参数设置为write(如下图所示),可以捕获对日志的插入、更新、删除和其他一些类型的更改。
还可以为
pgaudit.log参数选择以下值之一。none – 这是默认值。不记录任何数据库更改。
all – 记录所有内容(read、write、function、role、ddl、misc)。
ddl – 记录所有数据定义语言(DDL)语句(不包括在
ROLE类中)。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 数据库集群的写入器实例。
设置 pgAudit
要使用 Amazon CLI 设置 pgAudit,您可以调用 modify-db-parameter-group 操作来修改自定义参数组中的审计日志参数,如以下过程所示。
使用以下 Amazon 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-
使用以下 Amazon CLI 命令重启 Aurora PostgreSQL 数据库集群的写入器实例,以便初始化 pgaudit 库。
aws rds reboot-db-instance \ --db-instance-identifierwriter-instance\ --regionaws-region 当实例可用时,您可以验证
pgaudit是否已初始化。使用psql连接到 Aurora PostgreSQL 数据库集群的写入器实例,然后运行以下命令。SHOW shared_preload_libraries;shared_preload_libraries -------------------------- rdsutils,pgaudit (1 row)初始化 pgAudit 后,您现在可以创建扩展了。
CREATE EXTENSION pgaudit;关闭
psql会话以便您可以使用 Amazon CLI。labdb=>\q使用以下 Amazon 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-region还可以为
pgaudit.log参数选择以下值之一。none – 这是默认值。不记录任何数据库更改。
all – 记录所有内容(read、write、function、role、ddl、misc)。
ddl – 记录所有数据定义语言(DDL)语句(不包括在
ROLE类中)。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。
使用以下 Amazon CLI 命令重启 Aurora PostgreSQL 数据库集群的写入器实例。
aws rds reboot-db-instance \ --db-instance-identifierwriter-instance\ --regionaws-region