数据库活动流概览 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

数据库活动流概览

作为 RDS for Oracle 数据库管理员,您需要保障数据库的安全,并满足合规性和法规要求。一种策略是集成数据库活动流与监控工具。通过这种方式,您可以在 Oracle 数据库中监控审计活动并设置告警。

安全威胁既可以来自外部,也可以来自内部。要防范内部威胁,您可以通过配置数据库活动流功能控制管理员对数据流的访问。RDS for Oracle 数据管理员无权收集、传输、存储和处理流。

数据库活动流的工作原理

Amazon RDS 会近乎实时地将活动推送到 Amazon Kinesis 数据流。系统将自动创建 Kinesis 流。在 Kinesis 中,您可以配置Amazon服务(例如 Amazon Kinesis Data Firehose),也可以配置 Amazon Lambda 来使用流并存储数据。

重要

使用 Amazon Aurora 和 Amazon RDS 中的数据库活动流功能是免费的,但 Amazon Kinesis 会针对数据流收费。有关更多信息,请参阅 Amazon Kinesis Data Streams 定价

合规性管理应用程序也可以使用数据库活动流。这些应用程序可以使用流生成警报,并对您的 Oracle 数据库活动进行审计。

Oracle 数据库中的统一审计

Amazon RDS for Oracle 默认不捕获数据库活动。您可自行在 Oracle 数据库中创建和管理审计策略。

审计是监控和记录已配置的数据库操作。在 Oracle 数据库中,统一审计策略是一组已命名的审计设置,可用于审计某个方面的用户行为。策略可以是简单的审计单个用户的活动。您还可以创建使用条件的复杂审计策略。

Oracle 数据库将审计记录(包括 SYS 审计记录)写入统一审计跟踪。例如,如果在 INSERT 语句期间发生错误,标准审计会指示错误编号和执行的 SQL。审计跟踪位于 AUDSYS 架构的只读表中。要访问这些记录,请查询 UNIFIED_AUDIT_TRAIL 数据词典视图。

通常,您可以按如下方式配置数据库活动流:

  1. 使用 CREATE AUDIT POLICY 命令创建 Oracle 数据库审计策略。

    Oracle 数据库会生成审计记录。

  2. 使用 AUDIT POLICY 命令启用审计策略。

  3. 配置数据库活动流。

    仅捕获与 Oracle 数据库审计策略匹配的活动,并将其发送到 Amazon Kinesis 数据流。启用数据库活动流后,Oracle 数据库管理员无法更改审计策略或删除审计日志。

要了解有关统一审核策略的更多信息,请参阅 Oracle Database 安全指南中的关于使用统一审计策略和审计审计活动

非本机审计字段

启动数据库活动流时,每个数据库事件都会生成相应的活动流事件。例如,数据库用户可能会运行 SELECTINSERT 语句。数据库会审计这些事件并将结果发送到 Amazon Kinesis 数据流。

活动流中的事件表示为 JSON 对象。JSON 对象包含一个 DatabaseActivityMonitoringRecord,其中包含一个 databaseActivityEventList 数组。数组中的预定义字段包括 classclientApplicationcommand

Oracle 数据库统一审计跟踪中的大多数事件都映射到 RDS 数据活动流中的字段。例如,统一审计中的 UNIFIED_AUDIT_TRAIL.SQL_TEXT 字段映射到数据库活动流中的 commandText 字段。但是,Oracle 数据库审计字段(如 OS_USERNAME)不映射到数据库活动流中的预定义字段。

默认情况下,活动流不包括原生引擎审计字段。您可以配置 RDS for Oracle,使其在 engineNativeAuditFields JSON 对象中包含这些额外的字段。

数据库参数组覆盖

通常,您可以通过附加参数组来打开 RDS for Oracle 中的统一审计。但是,数据库活动流需要额外的配置。为了改善您的客户体验,Amazon RDS 将执行以下操作

  • 如果启用活动流,Oracle RDS 将忽略参数组中的审计参数。

  • 如果禁用活动流,Oracle RDS 将停止忽略审计参数。

数据库活动流的异步模式

RDS for Oracle 中的活动流始终是异步的。当数据库会话生成活动流事件时,会话将立即返回到正常活动。在后台,活动流事件将成为持久记录。如果后台任务出错,则 Amazon RDS 将生成事件。此事件指示活动流事件记录可能已丢失的任何时间段的开始和结束时间。异步模式可提高数据库性能,而不是活动流的准确性。

数据库活动流的要求

RDS for Oracle 中,数据库活动流具有以下要求和限制。

Oracle 的功能要求

RDS for Oracle 对数据库活动流有以下要求:

  • 不支持 CDB。

  • 不支持 Oracle 只读副本。

  • 在 RDS for Oracle 数据库实例中,您必须自行创建和管理审计策略。与 Amazon Aurora 不同,RDS for Oracle 默认不捕获数据库活动。

其他要求

  • 数据库活动流需要使用 Amazon Key Management Service (Amazon KMS)。Amazon KMS 是必需的,因为活动流始终是加密的。

  • 数据库活动流需要使用 Amazon Kinesis。

数据库活动流支持的 RDS for Oracle 引擎版本

使用版本 19.0.0.0.ru-2019-07.rur-2019-07.r1 及更高版本的 Oracle Database 19c 支持数据库活动流。您的数据库可以使用企业版或标准版 2 (SE2)。

数据库活动流支持的数据库实例类

对于 Oracle for RDS,您可以将数据库活动流与以下数据库实例类一起使用:

  • db.m4

  • db.m5.*

  • db.r4

  • db.r5.*

  • db.z1d

  • 注意

    不支持使用命名模式 db.r5.instance_size.tpcthreads_per_core.memratio 的内存优化 db.r5 类。

有关实例类类型的更多信息,请参阅 数据库实例类

数据库活动流支持的 Amazon Web Services 区域

除以下区域外,所有 Amazon Web Services 区域 均支持数据库活动流:

  • 中国(北京)区域,cn-north-1

  • 中国(宁夏)区域,cn-northwest-1

  • Amazon GovCloud(美国东部),us-gov-east-1

  • Amazon GovCloud(美国西部),us-gov-west-1