Amazon Relational Database Service
用户指南 (API Version 2014-10-31)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

在 Amazon Aurora 数据库群集中使用高级审计

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

您必须使用 Aurora 1.10.1 或更高版本以使用高级审计。

启用高级审计

使用这一部分中介绍的参数为数据库群集启用和配置高级审计。

使用 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

启用或禁用高级审计。此参数默认为 0;将其设置为 1 可启用高级审计。

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 等)。

  • 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 的优先级更高,仍记录该用户。

查看审计日志

您可以使用 AWS 控制台查看并下载审计日志。在 Instances 页面上,选择并展开数据库群集,然后选择 Logs

要下载日志文件,请在 Logs 部分找到该文件并选择 download

您还可以使用 describe-db-log-files AWS CLI 命令来获取日志文件的列表。您可以使用 download-db-log-file-portion AWS CLI 命令查看日志文件的内容,并使用 DownloadCompleteDBLogFile REST API 下载日志文件。

审计日志详细信息

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

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

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

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

字段 说明

timestamp

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

serverhost

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

username

已连接用户的用户名。

host

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

connectionid

所记录操作的连接 ID 号。

queryid

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

operation

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

database

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

object

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

retcode

所记录操作的返回代码。

将审核日志导出到 Amazon CloudWatch Logs

审核日志可自动导出到 CloudWatch Logs。您可以启用此功能以查看单个 CloudWatch Logs 日志组中的审核日志事件 (来自 Aurora 数据库群集中的所有数据库实例)。

有关更多信息,请参阅 将审核日志数据从 Amazon Aurora 导出到 Amazon CloudWatch Logs