如何为 Amazon Aurora MySQL 数据库集群启用高级审计,然后将日志发布到 CloudWatch?

上次更新时间:2019 年 7 月 30 日

为了满足合规性要求,我想在我的 Amazon Aurora MySQL 数据库集群上启用审计日志记录,以便审计数据库活动。然后,我想将数据库日志发布到 Amazon CloudWatch,以便执行实时数据分析。该如何操作?

简短描述

使用 Amazon Aurora 高级审计,以记录和审计数据库事件,例如连接、断开、查询的表或 Aurora MySQL 数据库集群上发出的查询类型(DML、DDL 或 DCL)。有关日志文件中包含的信息类型的更多信息,请参阅审计日志详细信息

首先,在关联的自定义数据库集群参数组中启用“高级审计”参数。然后,您可以将高级审计日志发布到 CloudWatch。

注意:如果您将 Amazon Relational Database Service (Amazon RDS) 用于 MySQL 或 MariaDB,请参阅如何启用 Amazon RDS MySQL 或 MariaDB 实例的审计日志记录并将日志发布到 CloudWatch?

解决方法

高级审计支持以下数据库容量类型:

  • Aurora 预置
  • Aurora 预置,支持 Aurora 并行查询和
  • Aurora Serverless

如果您使用 Aurora Serverless,则必须启用审计日志记录参数,但不需要启用将日志导出到 CloudWatch 的功能。Aurora Serverless 集群会自动上传您通过配置参数启用的日志类型,因此您可以通过修改数据库集群参数组中不同日志类型的值,来启用或禁用 Aurora Serverless 集群的日志上传功能。

在集群参数组中启用高级审计参数

  1. 创建自定义数据库集群参数组
  2. 修改高级审计参数
  3. 修改集群以将新的自定义数据库参数组与 Aurora MySQL 数据库集群相关联。

有关高级审计参数的详细信息,请参阅启用高级审计。这些参数是动态的,因此您无需重启数据库集群。但是,当您将参数组从默认更改为自定义参数组时,必须手动重启数据库实例,以应用新的数据库参数组。

将高级审计日志发布到 CloudWatch

  1. 打开 Amazon RDS 控制台
  2. 从导航窗格中选择数据库
  3. 选择要将其日志数据导出到 CloudWatch 的 Aurora MySQL 数据库集群。
  4. 选择修改
  5. 日志导出部分,选择审计日志
  6. 选择继续
  7. 查看修改摘要,然后选择修改集群

或者,您也可以将集群级数据库参数 server_audit_logs_upload 的值设置为 1,以将高级审计日志发布到 CloudWatch Logs。该参数的默认值为 0。您也可以使用 AWS 命令行界面 (AWS CLI) 通过运行如下所示的命令来启用 CloudWatch 日志导出:

aws rds modify-db-cluster --db-cluster-identifier <mydbcluster> --cloudwatch-logs-export-configuration '{"EnableLogTypes":["audit"]}'

启用审计日志记录并修改实例导出日志后,审计日志中记录的事件将发送到 CloudWatch。然后,您可以在 CloudWatch 中监控日志事件。