修改白名单

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

为保障MongoDB数据库的安全稳定,系统默认任何设备均无法访问云数据库MongoDB实例(默认IP地址为127.0.0.1),所以在使用云数据库MongoDB实例前,您需要为实例设置白名单,以允许外部设备访问该实例。正确使用白名单可以使云数据库MongoDB实例得到更高级别的安全保护,建议您定期维护白名单。

前提条件

通过ECS安全组设置MongoDB白名单时,ECS实例和MongoDB实例的网络类型需相同(如果是专有网络,则需属于同一个VPC ID)。

背景信息

  • 在初次使用目标实例前,需要先为实例添加白名单分组

  • 添加白名单后,实例的基本信息页面和数据库连接页面才可以显示实例的连接地址。

操作步骤

  1. 登录MongoDB管理控制台

  2. 根据实例类型,在左侧导航栏,单击副本集实例列表分片集群实例列表Serverless实例列表

  3. 在页面左上角,选择实例所在的资源组和地域。

  4. 单击目标实例ID或目标实例所在行操作列的管理

  5. 根据实例类型,执行对应操作。

    • 单节点实例、副本集实例和分片集群实例

      在目标实例页面的左侧导航栏,单击数据安全性 > 白名单设置

    • Serverless实例

      在目标实例页面的左侧导航栏,单击安全设置

  6. 白名单设置区域,选择以下任意一种方法为实例修改白名单。

    手动修改

    1. 单击目标分组操作列的修改

    2. 手动修改面板的允许访问IP名单输入框中输入IP地址或IP地址段。

      • 支持如下格式的IP地址或IP地址段。

        • 单个IP地址,例如10.23.12.24。

        • 0.0.0.0/0

          警告

          设置为0.0.0.0/0表示对访问的IP地址来源不作任何限制,此时云数据库MongoDB数据库将面临高安全风险,请谨慎使用。

        • CIDR模式,即无类域间路由。例如10.23.12.24/24,其中/24表示了地址中前缀的长度,范围[1,32]。

      • 多个IP地址或IP地址段之间以英文逗号(,)分隔。

    3. 单击确定

    加载ECS内网IP

    1. 单击目标分组操作列的加载ECS内网IP

    2. 加载ECS内网IP添加面板的允许访问IP名单列表中,选中需要添加的ECS内网IP地址。

    3. 单击添加

    4. 单击确定

常见问题

为什么已经将本地设备的公网IP添加至白名单了,但仍然无法连接MongoDB?

可能是您获取到的公网IP地址不正确导致无法连接MongoDB,您可以通过如下步骤定位您本地设备的公网IP:

  1. IP地址0.0.0.0/0添加到MongoDB实例的白名单

    警告

    0.0.0.0/0表示允许任何设备访问MongoDB实例,有安全风险,请谨慎使用。如果使用,应当及时从白名单中删除。

  2. 通过Mongo Shell登录MongoDB实例

    如果白名单设置为0.0.0.0/0后依旧无法连接MongoDB,可以尝试通过DMS连接MongoDB,检查账号密码以及鉴权数据库是否正确。

  3. 执行以下命令查询Mongo Shell登录的客户端信息。

    db.currentOp({"appName" : "MongoDB Shell","active" : true})

    示例如下:客户端IP查询

    说明

    如果通过其他方式登录MongoDB实例,您可通过下述命令查询所有客户端信息。

    db.runCommand({currentOp: 1, "active" : true})
  4. 将获取到的IP地址加入至MongoDB实例白名单中,并将IP地址0.0.0.0/0删除。

白名单设置正确,为什么仍然无法连接实例?

请确认网络环境与实例连接地址是否正确。云数据库MongoDB支持私网和公网两种连接方式,不同网络环境需使用不同的连接地址。

其他排查与解决方法,请参见连接访问与网络

客户端IP动态变化,如何设置白名单?

客户端IP不固定时,您可以在本地客户端通过SSL-VPN隧道连接MongoDB,或者将客户端所属的IP网段加入白名单。

重要

将客户端所属的IP网段加入白名单时,请根据实际需求最小化网段范围,降低安全风险。