本文介绍如何手动将客户端 IP 地址、地址段或 ECS 安全组添加到白名单,进而实现成功访问 MySQL 实例。
背景信息
白名单是数据库连接的安全防控手段,只有白名单内的 IP 地址才能访问数据库。MySQL 实例在创建后,不会绑定任何白名单,默认禁止所有 IP 地址访问实例。因此无论是通过 VPC 内网还是通过公网连接访问实例,均需要先配置实例的白名单,才能保证实例可连接。
白名单支持设置 CIDR 格式的 IP 地址段,如:192.168.0.0/32(/ 后面可输入 0~32 间的任一整数),允许该网段内 IP 地址访问。
MySQL 白名单已支持关联 ECS 安全组,支持为 MySQL 白名单绑定 ECS 安全组。绑定 ECS 安全组后,可以将对应 ECS 安全组下所有的 ECS 实例的 IP 地址导入到该白名单中,使这些 ECS 安全组下的所有 ECS 实例都可以访问该白名单绑定的 MySQL 实例。
云数据库 MySQL 版支持将某个白名单设置为默认白名单。设置为默认白名单后,在创建新实例、恢复到新实例和购买新实例时,都会自动绑定默认白名单。
如果您之前使用过数据库工作台(DBW)提供的会话管理功能,或使用过数据库传输服务(DTS)对 MySQL 实例进行过操作,实例会被添加系统内置白名单。系统内置白名单不支持编辑、解绑或删除。
- DBW 为 MySQL 实例添加的内置白名单名为 DBW_Sole_Group_Name_For_RDS。
- DTS 为 MySQL 实例添加的内置白名单名为 dts_internal_for_EndpointVolcMySQL。
白名单需要定期维护,移除不再需要访问 MySQL 实例的 IP 地址,保障数据库连接的安全性。
使用限制
- 每个租户的每个产品在每个 Region 下最多可以创建 500 个白名单。
- 每个白名单最多可以包含 300 个 IP 地址或 IP 地址段。
- 单个实例最多可以绑定 100 个白名单(含系统内置白名单)。
- 单个实例最多支持 300 个 IP 或 IP 段(绑定的所有白名单中 IP 地址或 IP 地址段的总和,含系统内置白名单中的 IP 地址和 IP 地址段)。当 IP 地址较多时,建议将零散的 IP 地址合并为 IP 地址段。
注意事项
- 如果设置 0.0.0.0/0,将允许所有地址访问;如果设置 127.0.0.1,将禁止所有地址访问。如果同时设置了 0.0.0.0/0 和 127.0.0.1,则允许所有地址访问。
- 通过跨 VPC 方式访问 MySQL 实例时,需要将 100.64.0.0/10 添加至实例白名单。
- 如设定白名单为默认白名单,在创建新实例、恢复到新实例和购买相同配置实例时,如果不做手动设置,都会自动选定默认白名单。由于每个白名单最多可绑定 500 个实例,超过 500 个实例时无法绑定。建议定期查看默认白名单绑定的实例数量,定期更新默认白名单。
- 如设定白名单为默认白名单,该白名单不可直接删除。需先通过编辑白名单修改为普通白名单并解除与实例的绑定后才能删除。
- 如果安全组在被白名单关联之后进行了更新,则需要在白名单列表中单击目标白名单的操作列的同步安全组以使该白名单获得安全组更新后的 IP。
- 如果安全组在被白名单关联之后进行了更新,编辑关联了该安全组的白名单后提交时,会自动同步安全组的更新。
- 如果创建白名单时指定其为默认白名单,该白名单会替代原有的默认白名单(如有)。
- 白名单现已支持按项目鉴权,建议将白名单的所属项目与实例所属项目设置为同一项目。避免因缺少其他项目的相关权限,进而导致白名单配置报错等问题。
操作步骤
- 单击创建白名单。在弹出的创建白名单页面中完成以下设置后,单击确定。
常见问题
MySQL 实例必须设置白名单吗?
如果有设置默认白名单,MySQL 实例在创建后会绑定默认白名单。如果没有设置默认白名单,实例创建后不绑定任何白名单,任何 IP 均无法访问该 MySQL 实例。
单个实例最多可以绑定多少个白名单?
单个实例最多可以绑定 100 个白名单。
每个白名单最多支持多少 IP 或者 IP 段?
每个白名单最多支持 300 个 IP 或 IP 段。
一个白名单支持绑定到多个实例吗?
支持。一个白名单最多支持绑定到 500 个实例。
相关 API