本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
审核 Amazon DocumentDB 活动
使用 Amazon DocumentDB(与 MongoDB 兼容),您可以审核集群中执行的事件。记录的事件的示例包括成功和失败的身份验证尝试、删除数据库中的集合或创建索引。默认情况下,在 Amazon DocumentDB 上禁用审计,并要求您选择使用该功能。
启用审核后, Amazon DocumentDB 会将数据定义语言 (DDL)、身份验证、数据控制语言(DML)、授权和用户管理事件记录到 Amazon CloudWatch Logs。启用审核后,Amazon DocumentDB 会将集群的审核记录(JSON 文档)导出到 Amazon CloudWatch Logs。您可以使用 Amazon CloudWatch Logs 分析、监控和存档 Amazon DocumentDB 审核事件。
虽然 Amazon DocumentDB 不对启用审核额外收费,但您需要为使用 CloudWatch Logs 按标准费率付费。有关 CloudWatch Logs 定价的信息,请参阅 Amazon CloudWatch 定价
Amazon DocumentDB 审计功能与 Amazon CloudTrail 监控的服务资源使用情况截然不同。CloudTrail 记录在集群、实例、参数组和快照等资源上使用 Amazon Command Line Interface (Amazon CLI) 或 Amazon Web Services Management Console 执行的操作。使用 AmazonCloudTrail 审计资源默认处于启用状态,并且无法禁用。Amazon DocumentDB 审计功能是一种可选功能。它记录在集群中对对象(例如数据库、集合、索引和用户)采取的操作。
支持的事件
Amazon DocumentDB 审核支持以下事件类别:
-
数据定义语言 (DDL) - 包括数据库管理操作、连接、用户管理和授权。
-
数据操作语言读取事件(DML 读取) - 包括
find()
和各种聚合运算符、算术运算符、布尔运算符和其他读取查询运算符。 -
数据操纵语言写入事件(DML 写入) - 包括
insert(), update(), delete(),
和bulkWrite()
运算符
事件类型如下所示。
事件类型 | 类别 | 描述 |
---|---|---|
authCheck |
Authorization | 结果代码 0:成功 |
结果代码 13:未经授权的执行操作的尝试。 | ||
authenticate |
连接 | 对新连接进行的成功或失败的身份验证尝试。 |
createDatabase |
DDL | 创建新数据库。 |
createCollection |
DDL | 在数据库中创建新集合。 |
createIndex |
DDL | 在集合中创建新索引。 |
dropCollection |
DDL | 删除数据库中的集合。 |
dropDatabase |
DDL | 删除数据库。 |
dropIndex |
DDL | 删除集合中的索引。 |
modifyChangeStreams |
DDL | 已创建变更流。 |
renameCollection |
DDL | 删除数据库中的集合。 |
createRole |
角色管理 | 创建角色。 |
dropAllRolesFromDatabase |
角色管理 | 删除数据库中的所有角色。 |
dropRole |
角色管理 | 删除角色。 |
grantPrivilegesToRole |
角色管理 | 授予角色权限。 |
grantRolesToRole |
角色管理 | 向用户定义角色授予角色。 |
revokePrivilegesFromRole |
角色管理 | 撤消角色权限。 |
revokeRolesFromRole |
角色管理 | 撤消用户定义角色限制。 |
updateRole |
角色管理 | 更新角色。 |
createUser |
用户管理 | 创建新用户。 |
dropAllUsersFromDatabase |
用户管理 | 删除数据库中的所有用户。 |
dropUser |
用户管理 | 删除现有用户。 |
grantRolesToUser |
用户管理 | 授予用户角色。 |
revokeRolesFromUser |
用户管理 | 撤消用户角色。 |
updateUser |
UserManagement | 更新现有用户。 |
insert |
DML 写入 | 将一个或多个文档插入到集合中。 |
delete |
DML 写入 | 从集合中删除一个或多个文档。 |
update |
DML 写入 | 修改集合中的一个或多个现有文档。 |
bulkWrite |
DML 写入 | 通过控制执行顺序执行多个写入操作。 |
count |
DML 读取 | 返回与集合或视图的 find () 查询相匹配的文档数量。 |
countDocuments |
DML 读取 | 返回与集合或视图查询相匹配的文档数量。 |
find |
DML 读取 | 选择集合或视图中的文档,然后将光标返回到所选文档。 |
findAndModify |
DML 读取 和 DML 写入 | 修改并返回单个文档。 |
findOneAndDelete |
DML 读取 和 DML 写入 | 根据筛选和排序标准删除单个文档,返回已删除的文档。 |
findOneAndReplace |
DML 读取 和 DML 写入 | 根据指定的筛选器替换单个文档。 |
findOneAndUpdate |
DML 读取 和 DML 写入 | 根据筛选和排序标准更新单个文档。 |
aggregate |
DML 读取 和 DML 写入 | 支持聚合管道中的 API。 |
distinct |
DML 读取 | 在单个集合或视图中查找指定字段的不同值,并在数组中返回结果。 |
注意
DML 事件文档参数字段中的值的大小限制为 1KB。如果该值超过 1KB,Amazon DocumentDB 将截断该值。
注意
目前不审核 TTL 删除事件。
启用审核
在集群上启用审核是一个两步过程。请确保完成这两个步骤,否则审计日志不会发送到 CloudWatch Logs。
第 1 步。启用 audit_logs 集群参数
要启用审核,您需要修改参数组中的 audit_logs
参数。audit_logs
是要记录的事件列表,以逗号分隔。事件必须以小写形式指定,列表元素之间不应有空格。
您可以为参数组设置以下值:
Value | 描述 |
---|---|
ddl |
设置此项将启用对 DDL 事件的审核,如 createDatabase, dropDatabase, createCollection, dropCollection, createIndex, dropIndex, authCheck, authenticate, createUser, dropUser, grantRolesToUser, revokeRolesFromUser, updateUser, and dropAllUsersFromDatabase |
dml_read |
设置此项将启用对 DML 读取事件的审核,例如 find、sort count、distinct、group、projecta、unwind、geoNear、geoIntersects、geoWithin 和其他 MongoDB 读取查询运算符。 |
dml_write |
设置此项将启用对 DML 写入事件的审核,例如 insert()、update()、delete() 和 bulkWrite() |
all |
设置此项将启用对数据库事件的审核,例如读取查询、写入查询、数据库操作和管理员操作。 |
none |
设置此项将禁用审核 |
enabled (传统) |
这是一个等同于“ddl”的传统参数设置。设置此设置将启用对 DDL 事件的审核,例如 createDatabase、dropDatabase、createCollection、dropCollection、createIndex、dropIndex、authCheck、authenticate、createUser、dropUser、grantRolesToUser、revokeRolesFromUser、updateUser 和 dropAllUsersFromDatabase。我们不建议使用此设置,因为它是传统设置。 |
disabled (传统) |
这是一个等同于“无”的传统参数设置。我们不建议使用此设置,因为它是传统设置。 |
注意
audit_logs 集群参数的默认值为 none
(传统“disabled
”)。
您也可以组合使用上述值。
Value | 描述 |
---|---|
ddl, dml_read |
设置此项将启用 DDL 事件和 DML 读取事件的辅助功能。 |
ddl, dml_write |
设置此选项将启用 DDL 事件和 DML 写入的辅助功能 |
dml_read, dml_write |
设置此项将启用对所有 DML 事件的审核 |
注意
您无法修改默认参数组。
有关更多信息,请参阅下列内容:
-
创建自定义参数组后,通过将
audit_logs
参数值更改为enabled
来修改它。
第 2 步。启用 Amazon CloudWatch Logs 导出
当 audit_logs
集群参数的值为 enabled
、ddl
、dml_read
、或 dml_write
后,您还必须启用 Amazon DocumentDB 将日志导出到 Amazon CloudWatch。如果省略上述步骤中的任何一个,就不会将审计日志发送到 CloudWatch。
创建集群、执行时间点还原或还原快照时,可以使用以下步骤启用 CloudWatch Logs。
禁用审核
可以通过禁用 CloudWatch Logs 导出并禁用 audit_logs
参数来禁用审计。
禁用 CloudWatch Logs 导出
您可以使用 Amazon Web Services Management Console或 Amazon CLI 禁止导出审核日志。
禁用 audit_logs 参数
要禁用集群的 audit_logs
参数,您可以修改集群,使其使用 audit_logs
参数值为 disabled
的参数组。或者,您可以修改集群的参数组中的 audit_logs
参数值,使其为 disabled
。
有关更多信息,请参阅以下主题:
访问审计事件
可以使用以下步骤访问 Amazon CloudWatch 上的审核事件。
通过以下网址打开 CloudWatch 控制台:https://console.aws.amazon.com/cloudwatch/
。 -
确保您与 Amazon DocumentDB 集群位于同一区域。
-
在导航窗格中,选择日志。
-
要查找集群的审核日志,请从列表中找到并选择
/aws/docdb/
。yourClusterName
/audit此时,每个实例名称的下方将显示该实例的审计事件。