Docs 菜单
Docs 主页
/
MongoDB Atlas
/

设置数据库审核

在此页面上

  • 必需的访问权限
  • 步骤
  • 配置自定义审核筛选器
  • 审核筛选器示例

注意

  • 此功能不适用于 M0 免费集群、M2M5 集群。如需了解更多信息,请参阅 Atlas M0(免费集群)、M2 和 M5 限制

  • 无服务器实例目前不支持此功能。要了解更多信息,请参阅无服务器实例限制

数据库审核允许管理员跟踪具有多个用户的部署的系统活动。 Atlas 管理员可以选择要审核的操作、数据库用户、Atlas 角色和 LDAP 群组。 Atlas 支持审核大多数记录的系统事件操作,但有以下限制:

  • 当 Atlas 用户在集群上的 Atlas 用户界面中执行操作时,Atlas 审核日志和 mongodb.log 文件都会将 mms-automation 数据库用户记录为执行可审核动作的用户。但是,项目操作日志会记录负责该动作的 Atlas 用户的实际用户名。

  • Atlas 审核日志不追踪用户创建或修改事件,因为 Atlas 直接在 admin 数据库中执行这些操作。

重要

执行全面数据库审核

由于这些限制,您必须组合使用审核日志、mongodb.log项目活动源来执行全面审核。

authCheck 事件操作将记录试图对项目集群中的数据库执行读取和写入的用户的授权尝试。Atlas 会审核以下特定命令:

authCheck Reads
authCheck Writes
聚合
[1]123 MongoDB 4.2 版本及更高版本不支持这些命令。

Atlas 将 authCheck 事件操作实现为以下四个单独的操作:

事件操作
说明
authChecksReadFailures
authCheck事件操作,适用于将auditAuthorizationSuccess参数设置为 false 时所有失败的读取。此事件操作是与读取相关的事件操作的默认设置。
authChecksReadAll

authCheck 所有读取(包括成功读取和失败读取)的事件操作。此事件操作与authChecksReadFailures相同,但将auditAuthorizationSuccess参数设置为 true。

警告

如果启用auditAuthorizationSuccess ,可能会严重影响集群性能。请谨慎启用此选项。

authChecksWriteFailures
auditAuthorizationSuccess参数设置为 false 时,针对所有失败写入的authCheck事件操作。此事件操作是写入相关事件操作的默认操作。
authChecksWriteAll

authCheck 所有写入的事件操作,包括写入成功和写入失败。此事件操作与authChecksWriteFailures相同,但将auditAuthorizationSuccess参数设置为 true。

警告

如果启用auditAuthorizationSuccess ,可能会严重影响集群性能。请谨慎启用此选项。

要了解 MongoDB 如何将审核事件写入磁盘,请参阅 MongoDB 手册中的审核保证

要配置审核日志,必须对待更新项目具有 Project Owner 访问权限,或者对包含待更新项目的组织具有 Organization Owner 访问权限。

注意

要了解有关审核临时数据库用户操作的最佳实践,请参阅审核临时数据库用户

采取以下步骤设置数据库审计:

1
2
3
4

默认情况下,Atlas 在节点的审核日志记录已知和未知用户失败的身份验证尝试。

5

或者,单击Use Custom JSON Filter以手动输入 JSON 字符串形式的审核筛选器。有关在 Atlas 中配置自定义审核筛选器的更多信息,请参阅配置自定义审核筛选器。

6

注意

取消选择authenticate操作可防止 Atlas 审核身份验证失败。

注意

在为authCheck 事件操作选择审核的 授权成功粒度 时,Atlas 不支持对读取和写入选择不同的选项。例如,您不能为Successes and Failures authCheck ReadsFailures选择authCheck Writes ,为 选择 。如果您同时选择authCheck ReadsauthCheck Writes ,Atlas 会自动将您选择的粒度应用于两者。

7

要在 Atlas 中检索审核日志,请参阅MongoDB 日志。要使用 API 检索审核日志,请参阅日志。

注意

Atlas 支持指定 JSON 格式的审核筛选器以自定义MongoDB 审核。

自定义审核筛选器使用户可以放弃托管 Atlas UI 审核筛选器生成器,转而使用手工量身定制的事件审核精细控制。Atlas 只确认自定义筛选器使用了有效的 JSON 语法,而不验证或测试筛选器的功能。

审核筛选器文档必须解析为与审核事件消息中的一个或多个字段相匹配的查询。筛选器文档可以使用查询运算符和相等条件的组合来匹配所需的审核消息。

要查看审核筛选器示例,请参阅审核筛选器示例。要了解有关配置 MongoDB 审核筛选器的更多信息,请参阅配置审核筛选器。

重要

Atlas 采用滚动升级策略,在 Atlas 项目的所有集群中启用或更新审核配置设置。滚动升级要求每个副本集至少进行一次选举。

要详细了解如何测试应用程序对副本集选举的弹性,请参阅测试主故障转移。要了解有关 Atlas 如何提供高可用性的更多信息,请参阅 Atlas 高可用性

1
2
3
4
5
6

警告

启用 Audit authorization successes 会严重影响集群性能。请谨慎启用此选项。

对于指定authCheck操作类型的审核筛选器,默认情况下,审核系统仅记录任何指定param.command的授权失败。启用Audit authorization successes会指示审核系统也记录授权成功情况。有关详细信息,请参阅auditAuthorizationSuccess

7

您可以随时编辑筛选器:

1
  1. 如果尚未显示,请选择包含您的项目的组织导航栏中的Organizations菜单。

  2. 如果尚未显示,请从导航栏的Projects菜单中选择您的项目。

  3. 在左侧菜单中,单击Security标题下的Advanced

2
  1. Database Auditing(数据库审核) Configure Your Auditing Filter (配置审核过滤器)下,单击 Use Custom JSON Filter(使用自定义 JSON 过滤器)。

  2. 进行所需的更改。

  3. 单击 Save(连接)。

使用以下审核筛选器示例,指导您构建自己的筛选器。

重要

这些示例不适用于生产环境,也不能代替MongoDB 审核文档。

{
"atype": "authenticate"
}
{
"$or": [
{
"users": []
},
{
"atype": "authenticate"
}
]
}

注意

需要执行 authenticate 操作,以记录已知用户和未知用户的身份验证失败事件。

{
"atype": "authenticate",
"param": {
"user": "myClusterAdministrator",
"db": "admin",
"mechanism": "SCRAM-SHA-256"
}
}
{
"atype": "authCheck",
"param.command": {
"$in": [
"insert",
"update",
"delete"
]
}
}
← 使用 Google Cloud KMS 管理客户密钥