注意
MongoDB Atlas 中的审核
MongoDB Atlas支持对所有M10 和更大的集群进行审核。 Atlas支持指定JSON格式的Atlas 审核过滤(如 配置审核筛选器中所述),以及使用AtlasAtlas 审核过滤构建器来简化审核配置。要学习;了解更多信息,请参阅Atlas文档中的 设置数据库审核和配置自定义审核筛选器。
MongoDB Enterprise 支持审核各种操作。完整的审核解决方案必须涵盖所有 mongod 服务器和 mongos 路由器进程。
审核工具可将审核事件写入控制台、系统日志(该选项在 Windows 上不可用)、JSON 文件或 BSON 文件。有关已审核操作和审核日志消息的详细信息,请参阅系统事件审核消息。
启用和配置审核输出
要在 MongoDB Enterprise 中启用审核,请使用 --auditDestination 设置审核输出目标。
输出到系统日志
要启用审核并将审核事件打印到系统日志(该选项在 Windows 上不可用),请为 --auditDestination 设置指定 syslog。例如:
mongod --dbpath data/db --auditDestination syslog
根据配置要求包括其他选项。例如,如果希望远程客户端连接到您的部署,或是您的部署成员运行在不同主机上,请指定 --bind_ip。
重要
在绑定到其他 IP 地址之前,请考虑访问权限自托管部署的安全检查清单中列出的访问控制和其他安全措施,以防止未经授权的访问权限。
警告
系统日志消息限制可能会导致审核消息被截断。审核系统既不会检测此类截断,也不会在其出现时报错。
在 Linux 系统中,消息遵循 Linux 配置文件 /etc/systemd/journald.conf 中定义的规则。默认情况下,日志消息突发量限制为 30 秒内 1000 条消息。要查看更多消息,请提高 /etc/systemd/journald.conf 中的 RateLimitBurst参数。
您还可以在配置文件中指定这些选项:
storage: dbPath: data/db auditLog: destination: syslog
输出到控制台
要启用审核并将审核事件打印到标准输出(即 stdout),请为 --auditDestination 设置指定 console。例如:
mongod --dbpath data/db --auditDestination console
根据配置要求包括其他选项。例如,如果希望远程客户端连接到您的部署,或是您的部署成员运行在不同主机上,请指定 --bind_ip。
重要
在绑定到其他 IP 地址之前,请考虑访问权限自托管部署的安全检查清单中列出的访问控制和其他安全措施,以防止未经授权的访问权限。
您还可以在配置文件中指定这些选项:
storage: dbPath: data/db auditLog: destination: console
输出到 JSON 文件
要启用审核并将审核事件打印到 JSON 格式的文件中,请指定以下选项:
选项 | 值 |
|---|---|
| |
| |
输出文件名。接受完整路径名称或相对路径名称。 |
例如,以下命令启用审核功能,并将审核事件记录到相对路径名为 data/db/auditLog.json 的文件:
mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json
根据配置要求包括其他选项。例如,如果希望远程客户端连接到您的部署,或是您的部署成员运行在不同主机上,请指定 --bind_ip。
重要
在绑定到其他 IP 地址之前,请考虑访问权限自托管部署的安全检查清单中列出的访问控制和其他安全措施,以防止未经授权的访问权限。
可使用 logRotate 命令轮换审核文件(与服务器日志一起,或单独轮换)。可使用 systemLog.logRotate 配置文件选项或 --logRotate 命令行选项来配置轮换的具体参数。
您还可以在配置文件中指定这些选项:
storage: dbPath: data/db auditLog: destination: file format: JSON path: data/db/auditLog.json
注意
与以 BSON 格式打印相比,将 Atlas 审核事件以 JSON 格式打印到文件更可能导致服务器性能下降。
输出到 BSON 文件
要启用审核并将审核事件打印到 BSON 二进制格式的文件,请指定以下选项:
选项 | 值 |
|---|---|
| |
| |
输出文件名。接受完整路径名称或相对路径名称。 |
例如,以下命令会启用审核并将审核事件记录到相对路径名为 data/db/auditLog.bson 的 BSON 文件中:
mongod --dbpath data/db --auditDestination file --auditFormat BSON --auditPath data/db/auditLog.bson
根据配置要求包括其他选项。例如,如果希望远程客户端连接到您的部署,或是您的部署成员运行在不同主机上,请指定 --bind_ip。
重要
在绑定到其他 IP 地址之前,请考虑访问权限自托管部署的安全检查清单中列出的访问控制和其他安全措施,以防止未经授权的访问权限。
审核文件会与服务器日志文件同时rotated。可使用 systemLog.logRotate 配置文件选项或 --logRotate 命令行选项来配置轮换的具体参数。
您还可以在配置文件中指定这些选项:
storage: dbPath: data/db auditLog: destination: file format: BSON path: data/db/auditLog.bson
以下示例使用 bsondump 将审核日志转换为可读形式,并输出结果:
bsondump data/db/auditLog.bson
以 OCSF 格式输出消息
从 MongoDB 8.0 开始,MongoDB 可以以 OCSF 格式写入日志消息。OCSF 模式以与日志处理器兼容的标准化格式提供日志。
要使用 OCSF 模式记录日志消息,请将 --auditSchema 选项设置为 OCSF。例如:
mongod --dbpath data/db --auditDestination file --auditFormat JSON --auditPath data/db/auditLog.json --auditSchema OCSF
您还可以在 auditLog.schema 配置文件选项中指定 OCSF 架构:
storage: dbPath: data/db auditLog: destination: file format: JSON path: data/db/auditLog.json schema: OCSF
有关 OCSF 架构的更多信息,请参阅 OCSF 模式审核消息。
运行时审核过滤器管理
从 MongoDB 5.0 开始,可在运行时配置审核筛选器。较之在本地 mongod 或 mongos 配置文件中指定的审核筛选器配置,运行时审核筛选器管理具有三个优点:
将关注分离
在 MongoDB 5.0 之前,审核 MongoDB mongod 或 mongos 实例的所有人员均须具有对主机服务器文件系统的写入权限才能更新审核筛选器。运行时审核筛选器管理通过将审核访问与管理访问进行分离来提高安全性。
使用运行时审核筛选器管理而不是直接编辑配置文件意味着:
运行时可配置性
从 MongoDB 5.0 开始,启用运行时审核筛选器管理后,可在运行时重新配置审核,而无需重启 mongod 或 mongos 实例。静态配置的实例必须重新启动才能更新其审核设置。
关闭并重新启动实例时,在运行时所做的审核筛选器修改仍会存在。
一致性(Consistency)
在集群内,如果将所有 mongod 和 mongos 参与节点均配置为使用运行时审核筛选器管理,则每个节点均会使用相同的审核筛选器。相反,如果每个节点均有自己在本地配置的审核筛选器,则无法保证各节点间审核筛选器的一致性。
启用运行时 Atlas 审核过滤器管理
从 MongoDB 5.0 开始,可在运行时配置 mongod 和 mongos 节点的审核配置。一组这样的节点可以参与分布式审核配置。
要将节点包含在分布式审核配置中,请按如下方式更新节点的配置文件并重新启动服务器。
Parameter | 值 |
|---|---|
| |
未设置 | |
未设置 |
如果出现以下情况,服务器将记录错误并无法启动:
runtimeConfiguration为true并且
要在运行时修改审核筛选器和 auditAuthorizationSuccess 参数,请参阅 auditConfig。