使用数据库活动流监控 Amazon Aurora
通过使用数据库活动流,您可以监控近乎实时的数据库活动流。
数据库活动流概览
作为 Amazon Aurora 数据库管理员,您需要保障数据库的安全,并满足合规性和法规要求。一种策略是集成数据库活动流与监控工具。通过这种方式,您可以在 Amazon Aurora 集群中监控审计活动并相应设置警报。
安全威胁既可以来自外部,也可以来自内部。要防范内部威胁,您可以通过配置数据库活动流功能控制管理员对数据流的访问。 数据管理员无权收集、传输、存储和处理流。
数据库活动流的工作原理
在 Amazon Aurora 中,您可以在集群级别启动数据库活动流。集群中的所有数据库实例都启用了数据库活动流。
您的 Aurora 数据库集群会近乎实时地将活动推送到 Amazon Kinesis 数据流。系统将自动创建 Kinesis 流。在 Kinesis 中,您可以配置 AWS 服务(如 Amazon Data Firehose)和 AWS Lambda 来使用 Kinesis 流并存储数据。
重要
使用 Amazon Aurora 中的数据库活动流功能是免费的,但 Amazon Kinesis 会针对数据流收费。有关更多信息,请参阅 Amazon Kinesis Data Streams 定价
如果您使用 Aurora 全局数据库,请分别在每个数据库集群上启动数据库活动流。每个集群在其自己的 AWS 区域中将审计数据传送到其自己的 Kinesis 流。活动流在故障转移期间不会以不同方式运行。它们继续像往常一样审计您的全局数据库。
您可以为合规性管理配置应用程序,以使用数据库活动流。对于 Aurora PostgreSQL,合规性应用程序包括 IBM 的 Security Guardium 和 Imperva 的 SecureSphere Database Audit and Protection。这些应用程序可以使用流生成警报,并审计 Aurora 数据库集群上的活动。
下图显示了使用 Amazon Data Firehose 配置的 Aurora 数据库集群。
数据库活动流的异步和同步模式
您可以选择让数据库会话按以下任一模式处理数据库活动事件:
-
异步模式 – 当数据库会话生成活动流事件时,会话将立即返回到正常活动。在后台,活动流事件将成为持久记录。如果后台任务出错,则将发送 RDS 事件。此事件指示活动流事件记录可能已丢失的任何时间段的开始和结束时间。
异步模式可提高数据库性能,而不是活动流的准确性。
注意
异步模式适用于 Aurora PostgreSQL 和 Aurora MySQL。
-
同步模式 – 当数据库会话生成活动流事件时,会话将阻止其他活动,直到该事件变为持久事件。如果因某个原因无法使事件持久,数据库会话将返回到正常活动。但会发送一个 RDS 事件来指示活动流记录可能会丢失一段时间。在系统恢复到正常运行状态后发送第二个 RDS 事件。
同步模式可提高活动流的准确性,而不是数据库性能。
注意
同步模式适用于 Aurora PostgreSQL。您不能将同步模式用于 Aurora MySQL。
数据库活动流的要求和限制
在 Aurora 中,数据库活动流具有以下要求和限制:
-
数据库活动流需要使用 Amazon Kinesis。
-
数据库活动流需要使用 AWS Key Management Service (AWS KMS),因为这些活动流始终是加密的。
-
对 Amazon Kinesis 数据流应用额外加密与数据库活动流不兼容,因为数据库活动流已使用 AWS KMS 密钥进行了加密。
-
在数据库集群级别启动数据库活动流。如果您向集群添加数据库实例,则无需在该实例上启动活动流:它会自动进行审计。
-
在 Aurora 全局数据库中,请确保分别在每个数据库集群上启动活动流。每个集群在其自己的 AWS 区域中将审计数据传送到其自己的 Kinesis 流。
-
在 Aurora PostgreSQL 中,确保在升级之前停止数据库活动流。升级完成后,您可以启动数据库活动流。
区域和版本可用性
功能可用性和支持因每个 Aurora 数据库引擎的特定版本以及 AWS 区域而异。有关适用于 Aurora 和数据库活动流的版本和区域可用性的更多信息,请参阅 支持数据库活动流的区域和 Aurora 数据库引擎。
数据库活动流支持的数据库实例类
对于 Aurora MySQL,您可以将数据库活动流与以下数据库实例类一起使用:
-
db.r7g.*large
-
db.r6g.*large
-
db.r6i.*large
-
db.r5.*large
-
db.x2g.*
对于 Aurora PostgreSQL,您可以将数据库活动流与以下数据库实例类一起使用:
-
db.r7g.*large
-
db.r6g.*large
-
db.r6i.*large
-
db.r6id.*large
-
db.r5.*large
-
db.r4.*large
-
db.x2g.*