数据库防护服务可通过云防火墙主动识别内网数据库资产,在 NAT 边界形成一道安全防护,并通过接入域名实现访问的管控,避免直接将 CVM 绑定的弹性公网 IP 暴露在公网。 域名接入方式可以实现在外网通过域名去访问内网的数据库,从而避免数据库端口暴露。
数据库防护服务主要分为接入域名和数据库白名单两大块。本文档还介绍了如何去查看数据库白名单的日志,并针对 MySQL 数据库进行测试举例,可供参考。
配置接入域名
步骤1:开启 NAT 边界防火墙,配置接入域名
1. 登录 云防火墙控制台,在左侧导航栏中,单击防火墙开关 > NAT 边界开关 > 防火墙实例,进入防火墙实例页面。
2. 在防火墙实例页面,单击创建实例,选择所需地域,单击下一步。
3. 在新建 NAT 边界防火墙窗口中,配置相关参数后,单击下一步。
字段说明:
地域:选择创建地域,支持国内所有地域,创建实例后不可更改。
说明:
用户可在拥有 VPC 的所有国内地域(支持中国香港地域)中进行地域选择,同地域下可创建多个防火墙实例,但总带宽不能超过限定规格。
可选区:根据需求选择合适的可用区。
实例名称:输入实例名称。
带宽规格:根据需求选择带宽规格,最小20Mbps,如需更多带宽请 升级扩容。
说明:
互联网带宽保持一致,如果分了多个 NAT 防火墙,那么多个 NAT 防火墙的带宽之和,要小于等于互联网边界的带宽。
模式:分为新增模式和接入模式。
新增模式:若当前地域没有 NAT 网关,新增模式可以通过 NAT 边界防火墙内置的 NAT 功能,实现指定实例通过防火墙访问互联网。
接入模式:若当前地域已有 NAT 网关,或者希望公网对外的出口 IP 保持不变,接入模式可以将 NAT 边界防火墙平滑接入到 NAT 网关与 CVM 实例之间。
弹性 IP:选择新增模式时,若选择新建弹性 IP,系统会自动为用户申请一个弹性 IP,用户也可从所有闲置的弹性 IP 中选择一个进行绑定。如需要更多带宽请 升级扩容。
4. 选择要接入 NAT 防火墙的 VPC,单击创建。
5. 等待若干分钟后,即可在防火墙实例列表中,查看刚刚创建的实例。
6. 单击防火墙开关,根据实际需求选择数据库在所在的子网,单击
开启防火墙开关。说明:
若数据库所在地域已有 NAT 防火墙和域名,请检查数据库资产所在子网是否已开启防火墙开关。
7. 在 零信任防护页面,单击接入域名管理 > 新增域名。
8. 在新增域名窗口中,选择地域、域名和刚刚创建的实例,单击确定即可完成域名接入。
说明:
若当前地域下已创建域名可忽略该步骤。
步骤2:数据库资产识别
将内网所有的数据库识别出来,并通过域名接入方式加入域名中。
1. 在 资产中心页面,选择资产列表 > 数据库资产,单击资产更新,完成后在数据库资产页面中可以查看当前的数据库资产。
2. 在数据库资产页面,选择所需实例,单击查看防护,跳转至零信任防护页面。
3. 在数据库资产页面,支持如下两种方式将数据库添加到域名:
方式1:单击一键接入,选择所需资产实例 ID,输入配置端口后, 单击确定即可。
方式2:选择所需资产实例 ID,单击操作列的域名接入,选择所需端口号,单击确定即可。
说明:
创建域名是指针对不同的地域创建用于访问的域名,以上域名已创建好,端口号是访问时用到的端口,可以自行定义。
步骤3:配置资产分组
使用资产分组功能对资产进行统一管理和配置。
1. 在 资产中心页面,单击资源分组 > 资产分组,进入资产分组页面。
2. 在资产分组页面,单击新建分组,输入分组名称后,单击确定。
3. 在左侧的树形结构中,选择刚刚创建的资源分组,单击
并选择添加资产到分组。
4. 在选择资产窗口中,选择所需资产后,单击确定即可。
数据库白名单配置
数据库白名单是基于 NAT 防火墙针对数据库的访问控制表,可以根据 IP、地理位置等对流量进行过滤。
1. 登录 云防火墙控制台,在左侧导航栏中,单击零信任防护 > 数据库管理 >白名单管控。
2. 在白名单管控页面,单击阻断白名单以外访问处的
经过确认后开启。否则默认是所有 IP 或者地域都能通过域名进行访问,开启之后需配置白名单规则,只有规则之内的源 IP 或者地域才能访问。
3. 在白名单管控页面,单击添加规则,访问目的选择 步骤2:数据库资产识别 所创建的数据库或资产分组,其他根据实际需求选择。
4. 配置完成后,单击确定即可。
查看数据库防护日志
零信任防护日志的数据库防护日志记录了资产所有的放通和阻断记录。
1. 登录 云防火墙控制台,在左侧导航栏中,单击日志审计 > 零信任防护日志 > 数据库访问。
2. 在数据库访问页面,可以查看数据库相关的访问控制日志。其中命中白名单策略的会被记录为观察类型,其他的则会被记录为阻断类型。
测试连接
1. 在外网通过数据库连接工具进行连接测试,配置相关参数。
参数说明
连接名:可以任意设置的。
主机名:创建接入域名时所创建的用于访问的域名。
端口:创建接入域名时设置端口,该端口并非数据库真实端口,可以任意设置。
用户名:数据库的用户名。
密码:数据库的密码。
2. 搭建好测试环境后,通过控制数据库白名单的开关来验证。
开关关闭状态
2.1.1 在 零信任防护 > 数据库管理页面,“阻断白名单以外访问”为关闭状态,也就是数据库白名单不生效这种情况。
2.1.2 单击界面左下角的测试连接,数据库访问成功,如下所示。
开关开启状态
2.1.1 在 零信任防护 > 数据库管理页面,“阻断白名单以外访问”为开启状态,即白名单生效。
2.1.2 此时如果不配置规则来放通相应 IP,访问是不成功的,如将之前创建好的规则删除或者是将开关关闭,此时连接数据库是失败的。
2.1.3 如上,将规则开关关闭,单击界面左下角的测试连接,连接过程中报错。
3. 以上测试证明了数据库白名单的作用,可以有效降低数据库连接域名的暴露面,从而避免数据库被客户进行暴力破解等攻击,保障了数据库安全。