Amazon Aurora
Aurora 用户指南 (API 版本 2014-10-31)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

对 Amazon Aurora MySQL 数据库集群使用高级审核

您可以在 Amazon Aurora MySQL 中使用高性能的高级审核功能来审核数据库活动。要启用该功能,您可以通过设置多个数据库集群参数来启用审核日志的收集。在启用了高级审核时,您可以用它来记录任意支持事件的组合。您可以查看或者下载审核日志来检查。

注意

您可以将 Aurora MySQL 一般、慢速、审核和错误日志数据发布到 CloudWatch Logs 中的日志组。有关更多信息,请参阅将 Amazon Aurora MySQL 日志发布到 Amazon CloudWatch Logs

启用高级审核

可以使用本节中介绍的参数为数据库集群启用和配置高级审核。

使用 server_audit_logging 参数可启用或禁用高级审核,使用 server_audit_events 参数可以指定要记录的事件。

使用 server_audit_excl_usersserver_audit_incl_users 参数来指定审核的对象。如果 server_audit_excl_usersserver_audit_incl_users 为空 (默认),则审核所有用户。如果您将用户添加到 server_audit_incl_users 并将 server_audit_excl_users 留空,则只审核这些用户。如果您将用户添加到 server_audit_excl_users 并将 server_audit_incl_users 留空,则只有这些用户不审核,审核所有其他用户。如果您将同一个用户同时添加到 server_audit_excl_usersserver_audit_incl_users,则由于 server_audit_incl_users 指定了更高的优先级,则审核这些用户。

通过在数据库集群使用的参数组中设置这些参数来配置高级审核。您可以使用修改数据库参数组中的参数中所示的过程,通过 AWS 管理控制台来修改数据库集群参数。您可以使用 modify-db-cluster-parameter-group AWS CLI 命令或 ModifyDBClusterParameterGroup Amazon RDS API 命令以编程方式修改数据库集群参数。

修改这些参数无需重新启动数据库集群。

server_audit_logging

启用或禁用高级审核。该参数默认为 OFF;将其设置为 ON 可启用高级审核。

server_audit_events

包含要记录的事件列表,以逗号分隔。事件必须以全大写形式指定,列表元素之间不应有空格,例如:CONNECT,QUERY_DDL。该参数默认为空字符串。

您可以记录以下事件的任意组合:

  • CONNECT – 记录成功和失败的连接以及断开连接。此事件包括用户信息。

  • QUERY – 以纯文本记录所有查询,包括由于语法或权限错误而失败的查询。

  • QUERY_DCL – 类似于 QUERY 事件,不过仅返回数据控制语言 (DCL) 查询 (GRANT、REVOKE 等)。

  • QUERY_DDL – 类似于 QUERY 事件,不过仅返回数据定义语言 (DDL) 查询 (CREATE、ALTER 等)。

  • QUERY_DML – 类似于 QUERY 事件,但仅返回数据操作语言 (DML) 查询(INSERT、UPDATE 等,也包括 SELECT)。

  • TABLE – 记录受查询执行影响的表。

server_audit_excl_users

包含未记录其活动的用户的用户名列表,以逗号分隔。列表元素之间不应有空格,例如:rdsadmin,user_1,user_2。该参数默认为空字符串。指定用户名必须与 mysql.user 表的 User 列中的对应值匹配。有关用户名的更多信息,请参阅 MySQL 文档

Connect 和 disconnect 事件不受此变量的影响;只要指定就始终记录这些事件。如果在 server_audit_incl_users 参数中也指定了某个用户,由于该设置的优先级高于 server_audit_excl_users,则记录该用户。

server_audit_incl_users

包含已记录其活动的用户的用户名列表,以逗号分隔。列表元素之间不应有空格,例如:user_3,user_4。该参数默认为空字符串。指定用户名必须与 mysql.user 表的 User 列中的对应值匹配。有关用户名的更多信息,请参阅 MySQL 文档

Connect 和 disconnect 事件不受此变量的影响;只要指定就始终记录这些事件。即使在 server_audit_excl_users 参数中也指定了某个用户,由于 server_audit_incl_users 具有更高的优先级,仍会记录该用户。

查看审核日志

您可以使用控制台查看并下载审核日志。在 Databases (数据库) 页面上,选择该数据库实例以显示其详细信息,然后滚动到 Logs (日志) 部分。

要下载日志文件,请在 Logs (日志) 部分选择该文件并选择 Download (下载)

您还可以使用 describe-db-log-files AWS CLI 命令获取日志文件列表。您可以使用 download-db-log-file-portion AWS CLI 命令下载日志文件内容。有关更多信息,请参阅查看和列出数据库日志文件下载数据库日志文件

审核日志详细信息

日志文件使用 UTF-8 格式。日志写入到多个文件中,其数量根据实例大小变化。要查看最新事件,您可能需要查看所有审核日志文件。

日志条目不按先后顺序。您可以使用时间戳值进行排序。

日志文件在总和达到 100 MB 时轮换。此限制是无法配置的。

审核日志文件的各行按照指定顺序包含以下逗号分隔的信息:

字段 说明

timestamp

所记录事件的 Unix 时间戳,精度为微秒。

serverhost

记录了其事件的实例的名称。

username

已连接用户的用户名。

host

用户发起连接时所在的主机。

connectionid

所记录操作的连接 ID 号。

queryid

查询 ID 号,可用于查找关系表事件和相关查询。对于 TABLE 事件,添加多行。

operation

记录的操作类型。可能值为:CONNECTQUERYREADWRITECREATEALTERRENAMEDROP

database

活动数据库,由 USE 命令设置。

object

对于 QUERY 事件,该值指示执行的查询。对于 TABLE 事件,它指示表名。

retcode

所记录操作的返回代码。