欢迎回到我们的4部分博客系列的最后一部分,展示MongoDB中可用的最佳实践和控制,帮助您创建一个安全、兼容的数据库平台。

在这篇总结文章中,我们将讨论环境控制和数据库管理。

简要回顾一下,在第1部分中,我们看了数据安全和法规遵从性的一般要求,然后在第2部分中,回顾了实施身份验证和授权的MongoDB访问控制。 在第3部分,我们讨论了审计和加密。

如果您想抢先一步,在一期文章中了解所有这些主题,只需下载蒙古数据库安全架构指南。

在前面文章中讨论的数据库安全控制的基础上,为了进一步降低被利用的风险,在可信环境中运行MongoDB,实现安全的开发生命周期,并实施部署最佳实践。

建议使用“深度防御”方法来补充安全的MongoDB部署,解决管理风险和减少风险暴露的多种不同方法。

深度防御方法的目的是对您的环境进行分层,以确保不存在可利用的单点故障,这些单点故障可能允许入侵者或不可信方访问存储在MongoDB数据库中的数据。

安全环境使用以下策略来控制访问,文档的网络暴露和安全部分提供了更多详细信息。

  • 网络过滤器。 通过使用防火墙和路由器ACL规则等过滤器,可以阻止从未知系统到蒙古数据库的连接。

防火墙应该将进出特定端口的流量限制在可信和不可信系统之间。 为了获得最佳效果并最大限度地减少整体暴露,请确保只有来自可信来源的流量才能到达mongod和mongos实例,并且mongod和mongos实例只能连接到可信输出。 此外,不需要的系统服务应该停用。

  • 绑定IP地址。 mongod和mongos实例的bind_ip设置限制了MongoDB程序监听传入连接的网络接口。
  • 在v*n中运行。 将MongoDB程序限制到非公共本地网络和虚拟专用网络。 虚拟专用网络(v*ns)使通过加密和有限访问的可信网络连接两个网络成为可能。 通常,蒙古数据库用户配置SSL而不是IPSEC协议是为了获得性能优势。
  • 专用操作系统用户帐户。 应该创建一个专用于MongoDB的用户帐户,并将其用于运行MongoDB可执行文件。 MongoDB不应作为“根”用户运行。
  • 文件系统权限。 运行蒙古数据库的服务器应该使用文件系统权限,防止用户访问蒙古数据库创建的数据文件。 蒙古数据库配置文件和集群**文件应该受到保护,以禁止未经授权的用户访问。
  • 查询注入。 当客户端程序在MongoDB中组装查询时,它会构建一个BSON对象,而不是一个字符串。 因此,对于作为BSON对象提交的查询,传统的SQL注入攻击不应该给系统带来风险。 然而,几个MongoDB操作允许评估任意的JavaScript表达式,并且应该小心避免恶意表达式。 幸运的是,大多数查询可以在BSON表达,对于需要JavaScript的情况,可以混合使用Javascript和BSON,这样用户指定的值就可以作为值而不是代码来计算。

蒙古数据库还允许管理员配置蒙古数据库服务器,以防止执行Javascript脚本。 这将阻止MapReduce作业运行,但在许多使用情况下,聚合管道可以用作替代方案。

  • 物理访问控制。 除了上面讨论的逻辑控制之外,控制对服务器、存储和备份介质的物理访问也提供了重要的环境保护。

对信息技术环境中的所有组件进行主动监控始终是最佳实践。 系统性能和可用性取决于在潜在问题向用户呈现之前及时检测和解决这些问题。

从数据库安全的角度来看,监控对于实时识别潜在的漏洞至关重要,从而降低任何漏洞的影响。 例如,主机系统的中央处理器和内存负载的突然峰值以及数据库中的高操作计数器可能表示拒绝服务攻击。 MongoDB附带了各种工具,包括mongostat和mongotop,可以用来监控您的数据库。

蒙古数据库操作管理器提供了最全面的监控解决方案,这是运行蒙古数据库的最简单方法。 运营管理器使运营团队能够轻松监控、保护、备份和扩展蒙古数据库。 操作管理器可与蒙古数据库企业高级版一起使用。 蒙古数据库云管理器是蒙古数据库的托管管理平台,提供许多与操作管理器相同的功能。

环境控制数据库管理
图1:运营经理提供图表、定制仪表板和自动警报

操作和云管理器具有图表、自定义仪表板和自动警报功能,可跟踪100多个关键数据库和系统健康指标,包括操作计数器、内存和CPU利用率、复制状态、开放连接、队列和任何节点状态。 云管理器还可以提醒您是否有任何主机暴露在互联网上。

这些指标被安全地报告给运营管理器,在那里它们被处理、聚集、警告并在浏览器中可视化,从而使管理员能够轻松地实时确定蒙古数据库的健康状况。 视图可以基于显式权限,因此项目团队的可见性可以限制在他们自己的应用程序中,而系统管理员可以监控整个组织中的所有MongoDB部署。

运营管理器允许管理员在关键指标超出范围时设置自定义警报。 可以为影响单个主机、副本集、代理和备份的一系列参数配置警报。 警报可以通过短信和电子邮件发送,也可以集成到现有的事件管理系统(如寻呼机职责和即时聊天)中,在潜在问题升级为代价高昂的停机之前主动发出警告。

操作管理器备份会持续维护,仅比操作系统晚几秒钟。 如果MongoDB出现故障,最近的备份只会延迟一会儿,从而将数据丢失的风险降至最低。 操作管理器和云管理器是唯一的蒙古数据库备份解决方案,可提供副本集的时间点恢复和分片集群的集群范围快照。 您可以快速、安全地恢复到您需要的精确时刻。

投资技能可以确保更安全的环境。 蒙古数据库大学为开发人员和数据库管理员提供课程:

  • 免费的网络课程,为期7周,由讲座、家庭作业和论坛支持,与教师和其他学生互动。 自这些课程首次推出以来,已有超过35万名学生注册。
  • 在蒙古数据库设施举行为期两天的公共培训活动
  • 根据组织的特定要求定制的私人培训—包括安全开发和部署的最佳实践—在您的站点提供。

syncnavigator

此外,蒙古数据库全球咨询服务提供运行状况检查和生产准备情况评估,与您的团队一起评估和应用部署最佳实践。

始终确保您运行的是MongoDB和驱动程序的最新生产认证版本,并且已经应用了最新的修补程序集。 虽然蒙古数据库企业高级版客户可以访问紧急补丁程序,但安全漏洞的修补程序一旦发布,所有蒙古数据库用户都可以使用。

毫不奇怪,数据库存储着组织最重要的信息资产,保护它们是企业的头等大事。

您可以从阅读蒙古数据库安全架构指南开始。 如果你想亲自尝试,可以免费下载蒙古数据库企业版进行评估和开发。

相关文章: