MongoDB 安全、监控和备份(Mongodump)

⚡ 智能摘要

MongoDB 安全、监控和备份是数据库管理的核心概念,它们确保数据的安全、可用性和可恢复性。本资源涵盖安全最佳实践、mongodump 备份、监控工具、索引技巧、身份验证机制、X.509 证书以及配置等方面的内容。 MongoDB 使用 Kerberos 身份验证。

  • 🔒 安全性: 启用访问控制、基于角色的访问控制、TLS/SSL 加密和审计功能。
  • 💾 备份: 复制数据文件,使用 mongodump 进行 BSON 转储,或使用 Cloud Manager。
  • 📊 监控: 使用 mongostat、mongotop、Web 界面和 serverStatus。
  • 索引: 在搜索字段上添加索引,并限制返回的字段数量。
  • 🪪 验证: 使用 x.509 证书或 Kerberos 进行安全客户端访问。

MongoDB 安全、监控和备份

其中的关键概念之一 MongoDB 数据库管理是指对数据库进行管理。安全性、备份和数据库访问等重要方面都是数据库管理中的关键概念。

MongoDB 安全概述

MongoDB 能够为数据库定义安全机制。默认情况下,我们不希望每个人都能公开访问每个数据库。 MongoDB因此需要有某种安全机制 MongoDB 很重要

以下是数据库安全实施的最佳实践:

  1. 启用访问控制 创建用户,以便强制所有应用程序和用户在访问数据库时都必须采用某种身份验证机制。 MongoDB.
  2. 配置基于角色的访问控制 有时候可能会出现逻辑群体ping 可能需要的权限可以归纳为不同的角色。然后可以将用户分配到这些角色中。
  3. 尝试配置 MongoDB 使用某种加密协议,例如 TLS 或 SSL。这些协议可用于加密客户端和服务器之间传输的数据流量。 MongoDB 环境。
  4. 配置审计 管理员通常需要了解谁在做什么,这有助于后续分析问题。最好的方法是启用审计功能。 MongoDB.
  5. 运行 MongoDB 服务器实例具有独立的用户 ID,该用户 ID 仅能访问服务器环境中所需的资源。

MongoDB 备份过程 – mongodump

在工作时 MongoDB因此,务必始终确保制定备份程序,以防数据丢失。 MongoDB 如果因任何原因损坏,以下是系统内部可用的备份机制。 MongoDB:

  1. 通过复制基础数据文件进行备份 这可能是最简单的机制。只需要复制数据文件即可。 MongoDB 将它们存储并复制到另一个位置,理想情况下应该是另一个服务器。
  2. 使用 mongodump 备份数据库 – mongodump 工具从 MongoDB 数据库并创建高保真 BSON 文件。需要注意的是,如果数据集很大,mongodump 会非常消耗资源,因此为了缓解这个问题,应该在备用服务器上运行该工具。
  3. MongoDB 云管理器备份 – MongoDB Cloud Manager 持续备份 MongoDB 通过从 MongoDB 环境。 MongoDB Cloud Manager 可以通过存储 oplog 数据来创建时间点恢复,从而可以在任何时间点为特定的副本集或分片集群创建恢复。

MongoDB 监控

监测是 MongoDB这是因为您可以更主动地监控环境,以便及时发现可能出现的问题。以下是一些实施监控的示例:

  1. 蒙哥斯塔 它会告诉你服务器上实际执行了多少次数据库操作,例如插入、查询、更新和删除。这可以很好地反映服务器的负载情况,并能帮助你判断是否需要在服务器上增加资源,或者是否需要添加服务器来分担负载。
  2. 蒙戈托普 tracks 并报告当前读写活动 MongoDB 实例,并根据每个集合报告这些统计信息。
  3. MongoDB 提供一个网页界面,在一个简单的网页中显示诊断和监控信息。
  4. serverStatus 命令或 shell 中的 db.serverStatus() 返回数据库状态的概述,包括磁盘使用情况、内存使用情况、与数据库建立的连接的详细信息 MongoDB 环境等等。

MongoDB 索引和性能注意事项

  1. 索引在任何数据库中都非常重要,可以用来提高搜索查询的效率 MongoDB如果您经常在文档中执行搜索,那么最好在文档中用于搜索条件的字段上添加索引。
  2. 尽量限制查询结果的数量。假设文档中有多个字段,但您只想查看其中的两个字段。那么请确保您的查询只针对您需要的两个字段,而不是所有字段。
  3. 如果要查看某些字段值,则仅在查询中使用这些字段。如果不需要,请不要查询集合中的所有字段。

MongoDB 认证机制

授权侧重于确保客户端对系统的访问权限,而身份验证则检查客户端拥有何种类型的访问权限。 MongoDB 一旦他们获得系统授权,就可以访问系统。身份验证机制有很多种;以下仅列举其中几种。

MongoDB 使用 x.509 证书进行身份验证

使用 X.509 证书对客户端进行身份验证——证书本质上是客户端和服务器之间的可信签名。 MongoDB 服务器。

因此,无需输入用户名和密码即可连接到服务器,客户端和服务器之间会传递证书。 MongoDB 服务器。客户端通常会有一个客户端证书,该证书将传递给服务器以进行身份​​验证。每个客户端证书对应一个单独的服务器地址。 MongoDB 用户。因此来自的每个用户 MongoDB 必须拥有自己的证书才能通过身份验证 MongoDB 服务器。

为确保此方法有效,必须遵循以下步骤:

  1. 必须从合法的第三方机构购买有效的证书,并将其安装在…… MongoDB 服务器。
  2. 客户端证书必须具有以下属性:客户端和服务器的证书必须由同一个证书颁发机构 (CA) 颁发,并且客户端证书必须包含 keyUsage 和 extendedKeyUsage 字段。
  3. 每个连接到 MongoDB 服务器需要单独的证书。

如何配置 MongoDB 使用 Kerberos 身份验证

以下是配置步骤 MongoDB 使用 Kerberos 身份验证 Windows:

步骤1)配置 MongoDB 启用 Kerberos 身份验证 Windows

Kerberos 是一种用于大型客户端-服务器环境的身份验证机制。它是一种非常安全的机制,只有加密后的密码才允许使用。 MongoDB 具备对现有基于 Kerberos 的系统进行身份验证的功能。

步骤2)mongod.exe服务器进程

接下来,启动 mongod.exe 服务器进程。

步骤3)mongo.exe客户端进程并连接

接下来,启动 mongo.exe 客户端进程并连接到 MongoDB 服务器。

步骤 4)添加用户 MongoDB

将用户(本质上是一个 Kerberos 主体名称)添加到 $external 数据库。$external 数据库是一个特殊的数据库,它告诉用户: MongoDB 通过 Kerberos 系统而不是其自己的内部系统对该用户进行身份验证。

配置 MongoDB 使用 Kerberos 身份验证

use $external
db.createUser(
  {
    user: "user1@example.NET",
    roles: [
      { role: "read", db: "Marketing" }
    ]
  }
)

步骤 5)开始使用命令

使用以下命令启动支持 Kerberos 的 mongod.exe:

mongod.exe --auth --setParameter authenticationMechanisms=GSSAPI

然后您现在可以使用 Kerberos 用户并通过 Kerberos 身份验证连接到数据库。

常见问题

是的。基于人工智能的监控工具可以标记异常查询模式、登录失败和可疑访问。 MongoDB它们可以作为内置审计功能的补充,但管理员仍然应该手动审查警报并强制执行访问控制。

是的。人工智能辅助脚本和云工具可以安排 mongodump 备份、验证完整性并建议还原点。 MongoDB Atlas 还提供自动、持续备份,从而减少了保护数据的人工工作量。

mongodump 按需创建数据库的 BSON 快照。 MongoDB Cloud Manager 会持续读取 oplog,以实现副本集和分片集群的时间点恢复。

使用 mongorestore 工具,并将其指向转储目录。例如,mongorestore –db Marketing dump/Marketing 命令会将 BSON 文件重新加载到指定的数据库中。

总结一下这篇文章: