注意
数据库审核允许管理员追踪具有多个用户的部署的系统活动。 Atlas管理员可以选择要Atlas 审核的操作、数据库用户、 Atlas角色和LDAP群组。 Atlas支持 审核大多数记录的系统事件操作,但有以下限制:
Atlas 审核日志不追踪用户创建或修改事件,因为 Atlas 直接在
admin数据库中执行这些操作。
authCheck 事件操作将记录试图对项目集群中的数据库执行读取和写入的用户的授权尝试。Atlas 会审核以下特定命令:
authCheck Reads | authCheck Writes |
|---|---|
Atlas 将 authCheck 事件操作实现为以下四个单独的操作:
事件操作 | 说明 |
|---|---|
|
|
|
警告:如果启用auditAuthorizationSuccess ,可能会严重影响集群性能。 请谨慎启用此选项。 |
|
|
|
警告:如果启用auditAuthorizationSuccess ,可能会严重影响集群性能。 请谨慎启用此选项。 |
要了解 MongoDB 如何将审核事件写入到磁盘,请参阅《MongoDB 手册》中的审核保证。
必需的访问权限
要配置审核日志,必须对待更新项目具有 Project Owner 访问权限,或者对包含待更新项目的组织具有 Organization Owner 访问权限。
要学习;了解审核和日志记录的建议,包括我们建议审核的事件,请参阅Atlas架构中心的Atlas审核和日志记录指南。
步骤
注意
要了解有关审核临时数据库用户操作的最佳实践,请参阅审核临时数据库用户。
采取以下步骤设置数据库审计:
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
确认要审核身份验证失败事件。
默认情况下,Atlas 会在 主节点的审核日志中记录已知和未知用户失败的身份验证尝试。
选择要在 Select users and roles 中审核其操作的数据库用户、Atlas角色和LDAP群组。
或者,单击 Use Custom JSON Filter(使用自定义 JSON 过滤器)以 JSON 字符串的形式手动输入审核过滤器。有关在 Atlas 中配置自定义审核过滤器的更多信息,请参阅配置自定义审核过滤器。
在 Select actions to audit 中选择要审核的事件操作。
注意
取消选择authenticate操作可防止 Atlas 审核身份验证失败。
注意
为 authCheck 事件操作选择审核授权成功粒度时,Atlas 不支持读取和写入的不同选择。例如,您不能为 authCheck Reads 选择 Successes and Failures ,也不能为 authCheck Writes 选择 Failures。如果您同时选择 authCheck Reads 和 authCheck Writes,Atlas 会自动将所选粒度应用于两者。
要检索 Atlas 中的审核日志,请参阅 MongoDB 日志。要使用 API 检索审核日志,请参阅日志。
配置自定义审核筛选器
注意
Atlas 支持指定 JSON 格式的审核过滤器,以自定义 MongoDB 审核。
自定义Atlas 审核筛选器允许用户放弃托管Atlas用户界面审核过滤构建器,转而对事件审核进行手工定制的精细控制。Atlas仅检查自定义过滤是否使用有效的JSON语法,而不会验证或测试筛选器的功能。
审核过滤器文档必须解析为与审核事件消息中的一个或多个字段匹配的查询。过滤器文档可以使用查询操作符和等值条件的组合来匹配所需的审核消息。
如需查看示例审核过滤器,请参阅示例审核过滤器。如需了解有关配置 MongoDB 审核过滤器的更多信息,请参阅配置审核过滤器。
重要
Atlas 采用滚动更新策略,在 Atlas 项目的所有集群中启用或更新审核配置设置。滚动更新要求每个副本集至少进行一次选举。
要详细了解如何测试应用程序对副本集选举的弹性,请参阅测试主故障转移。要了解有关 Atlas 如何提供高可用性的更多信息,请参阅 Atlas 高可用性。
步骤
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
切换 Audit authorization successes。
警告
启用 Audit authorization successes 会严重影响集群性能。请谨慎启用此选项。
对于指定authCheck 操作类型的过滤器,审计系统默认只记录任何指定 param.command 的授权失败。启用 Audit authorization successes 会指示审核系统同时记录授权成功情况。如果您不启用 auditAuthorizationSuccess,您的Atlas 审核系统将无法记录在动作类型中指定的成功的 CRUD 操作。如需了解更多信息,请参阅 auditAuthorizationSuccess。
编辑自定义审核过滤器
您可以随时编辑筛选器:
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
查看自定义审核筛选器
在Atlas中,转到项目的 Advanced 页面。
如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含项目的组织。
如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。
在侧边栏中,单击 Security 标题下的 Database & Network Access。
在侧边栏中,单击 Advanced。
显示“高级”页面。
审核筛选器示例
使用以下审核筛选器示例,指导您构建自己的筛选器。
重要
这些示例不适合在生产环境中使用,也不能取代熟练使用 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" ] } }
使用Atlas CLI管理Atlas 审核
您可以使用Atlas CLI管理项目的数据库Atlas 审核配置。
更新 Atlas 审核配置
要使用Atlas CLI更新指定项目的Atlas 审核配置,运行以下命令:
atlas auditing update [options]
要学习;了解有关命令语法和参数的更多信息,请参阅Atlas CLI文档的 atlas auditing 更新。
查看 Atlas 审核配置
要使用 Atlas CLI 返回指定项目的审核配置, 请运行以下命令:
atlas auditing describe [options]
要了解有关命令语法和参数的更多信息,请参阅 Atlas CLI 文档中的 atlas auditing describe。