文档菜单
文档首页
/
MongoDB 手册
/ / /

在自管理部署上配置审计

本页内容

  • 启用和配置审计输出
  • 运行时审计过滤器管理

注意

MongoDB Atlas的审计

MongoDB Atlas支持所有M10及以上集群的审计。Atlas支持指定JSON格式的审计过滤器,如文档中所述M10及以上集群。Atlas支持指定JSON格式的审计过滤器,如文档中所述在自管理部署上配置审计过滤器,并使用Atlas审计过滤器构建器进行简化的审计配置。欲了解更多信息,请参阅Atlas文档中的设置数据库审计配置自定义审计过滤器

MongoDB企业版支持审计各种操作。完整的审计解决方案必须涉及所有mongod服务器和mongos路由进程。

审计功能可以将审计事件写入控制台、syslog(Windows上不可用选项)、JSON文件或BSON文件。有关受审操作的详细信息以及审计日志消息,请参阅自管理部署的系统事件审计消息。

要在MongoDB企业版中启用审计,请使用--auditDestination设置审计输出目标。

警告

对于分片集群,如果您在 mongos 实例上启用了审计功能,您也必须在集群的 mongod 实例上启用审计。请在所有分片和配置服务器上配置 mongod 的审计功能。

要启用审计并将审计事件以 JSON 格式打印到 syslog(Windows 上不可用),请将 --auditDestination 设置指定为 syslog。例如

mongod --dbpath data/db --auditDestination syslog

根据您的配置要求包含其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定 --bind_ip

重要

在将绑定到其他 IP 地址之前,请考虑 启用访问控制 以及在 自托管部署的安全清单 中列出的其他安全措施,以防止未经授权的访问。

警告

syslog 消息限制可能导致审计消息被截断。审计系统不会检测到截断,也不会在截断发生时出错。

在 Linux 系统中,消息受 Linux 配置文件 /etc/systemd/journald.conf 中定义的规则的影响。默认情况下,日志消息突发限制为 30 秒内 1000 条消息。要查看更多消息,请增加 /etc/systemd/journald.conf 中的 RateLimitBurst 参数。

您也可以在配置文件中指定这些选项:

storage:
dbPath: data/db
auditLog:
destination: syslog

要启用审计并将审计事件打印到标准输出(即 stdout),请指定 console 作为 --auditDestination 设置。例如

mongod --dbpath data/db --auditDestination console

根据您的配置要求包含其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定 --bind_ip

重要

在将绑定到其他 IP 地址之前,请考虑 启用访问控制 以及在 自托管部署的安全清单 中列出的其他安全措施,以防止未经授权的访问。

您也可以在配置文件中指定这些选项:

storage:
dbPath: data/db
auditLog:
destination: console

要启用审计并将审计事件以 JSON 格式打印到文件,请指定以下选项

选项
file
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

注意

将审计事件以 JSON 格式打印到文件比以 BSON 格式打印到文件会降低服务器性能。

要启用审计并将审计事件以 BSON 二进制格式打印到文件,请指定以下选项

选项
file
BSON
输出文件名。接受完整路径名或相对路径名。

例如,以下操作启用了审计并将审计事件记录到具有相对路径名 data/db/auditLog.bson 的 BSON 文件中。

mongod --dbpath data/db --auditDestination file --auditFormat BSON --auditPath data/db/auditLog.bson

根据您的配置要求包含其他选项。例如,如果您希望远程客户端连接到您的部署,或者您的部署成员在不同的主机上运行,请指定 --bind_ip

重要

在将绑定到其他 IP 地址之前,请考虑 启用访问控制 以及在 自托管部署的安全清单 中列出的其他安全措施,以防止未经授权的访问。

审计文件与服务器日志文件同时 轮换。轮换的具体配置可以使用 systemLog.logRotate 配置文件选项或 --logRotate 命令行选项进行。

您也可以在配置文件中指定这些选项:

storage:
dbPath: data/db
auditLog:
destination: file
format: BSON
path: data/db/auditLog.bson

以下示例使用 bsondump 将审计日志转换为可读形式,并输出结果

bsondump data/db/auditLog.bson

从 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版本开始,审计过滤器可以在运行时进行配置。与在本地 mongodmongos 配置文件中指定的审计过滤器配置相比,运行时审计过滤器管理提供了三个好处。

在MongoDB 5.0之前,审计MongoDB mongodmongos 实例的人必须具有对主机服务器文件系统的写访问权限才能更新审计过滤器。运行时审计过滤器管理通过将审计访问与管理员访问分离来提高安全性。

使用运行时审计过滤器管理而不是直接编辑配置文件意味着

从MongoDB 5.0版本开始,当启用运行时审计过滤器管理时,可以在不重启mongodmongos实例的情况下,重新配置审计功能。静态配置的实例必须重启才能更新其审计设置。

在运行时进行的审计过滤器修改,在实例关闭和重启后仍然保持。

在一个集群中,如果所有参与的mongodmongos节点都配置为使用运行时审计过滤器管理,那么每个节点都将使用相同的审计过滤器。相比之下,如果每个节点都有自己的本地配置的审计过滤器,则无法保证节点之间审计过滤器的统一性。

从MongoDB 5.0版本开始,可以在运行时配置mongodmongos节点的审计配置。这些节点中的一组可以参与分布式审计配置。

要将节点包含在分布式审计配置中,请按以下方式更新节点的配置文件,并重启服务器。

如果服务器记录错误并无法启动

要在运行时修改审计过滤器以及 auditAuthorizationSuccess 参数,请参阅 auditConfig.

提示

也请参阅

返回

审计