创建RDS MySQL或RDS MySQL Serverless实例后,需要将IP地址添加到白名单,该IP地址所属的设备才能访问该RDS实例。
前提条件
操作步骤
RDS默认已设置系统白名单,该白名单不显示,用于允许系统账号对数据库的维护操作,详情请参见系统账号说明。
访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在左侧导航栏中,单击白名单与安全组。
确认IP白名单模式。
说明版本为MySQL5.5、5.6、5.7且存储类型为高性能本地盘的实例可以切换为高安全模式。其他版本或存储类型的实例都采用通用模式。
单击default分组右侧的 修改 ,在弹出的对话框中添加IP白名单。
说明如有需要,也可以单击添加白名单分组,并自定义一个分组名称。
分组仅用于IP地址管理,不会影响实际访问权限。所有分组中的IP地址对RDS实例的访问权限是一致的。
方法一:将应用服务器IP地址添加至组内白名单框中。查看应用服务器IP,请参见附录:如何获取应用服务器IP地址。您也可以单击加载本机公网IP(如本机开启了网络代理,请先关闭),直接添加本机公网IP。
说明多个IP地址用英文逗号隔开,且逗号前后不能有空格。
单个实例最多添加1000个IP地址或IP段。如果IP地址较多,建议将零散的IP合并为IP段,例如10.10.10.0/24。
如果白名单模式是高安全模式,则需注意:
把公网IP添加至经典网络分组。
把专有网络ECS实例私网IP添加至专有网络分组。
方法二:单击加载ECS内网IP,显示当前阿里云账号以及当前地域下所有ECS实例的IP地址,快速添加ECS内网IP地址到白名单中。
添加后,该应用服务器才能访问RDS实例。
单击确定。
下一步
相关文档
常见问题
Q:为什么没有添加到白名单中的IP地址也可以访问RDS?
A:您可以按照以下方法排查:
检查所有的白名单分组,确认是否包含0.0.0.0/0。0.0.0.0/0表示允许所有IP访问RDS,存在安全风险,建议删除并仅设置可信任的IP地址。
检查所有的安全组,确认是否包含该IP地址。如果某个安全组包含该IP地址,则可以访问RDS。
Q:如果在不开通外网的情况下,让本机可以访问RDS?
A:需要打通内网,详情请参见连接本地IDC。
Q:白名单里出现了一些IP地址,如何查看添加这些IP地址的操作者?
A:在实例详情页左侧,单击操作审计,在事件名称中输入ModifySecurityIps,即可查看添加IP地址的操作者和操作详情。
Q:我的应用侧IP一直变化,没有固定IP,这种情况我应该如何设置RDS数据库的白名单?
A:如果用户没有固定IP,无法设置
0.0.0.0/0
(表示允许所有IP访问RDS,出于安全考虑不推荐设置),建议基于身份验证而非IP的访问控制。例如,使用如下方式:使用动态DNS服务:通过动态DNS获取动态IP对应的域名,并将该域名或其解析出的IP地址加入数据库白名单。
设置反向代理或负载均衡器:所有用户侧应用请求通过反向代理服务器或负载均衡器转发到数据库,仅将代理服务器的固定IP地址加入数据库白名单。
定期更新白名单:对于IP地址在一定范围内变化的情况(如家庭宽带IP由ISP分配),定期获取这些IP地址并更新至白名单中。
Q:通过RDS控制台添加白名单时报错
InvalidSecurityIPListLength.Malformed
?问题描述
用户通过RDS控制台添加白名单时,可能会出现如下报错:
错误码:InvalidSecurityIPListLength.Malformed 报错信息(中文):安全IP地址不在可用范围内或已被占用。 报错信息(英文):The security ip address is not in the available range or occupied.
解决方案
原因1:单个白名单分组中最多支持1000个IP地址/段,新增的IP超过了限制。
解决方案:确保单个白名单分组中的IP地址或IP段数量不超过1000个。建议将零散的IP地址合并为CIDR格式的IP段(如
192.168.1.0/24
),以减少占用数量。原因2:添加的IP白名单包含非法地址。
解决方案:确保输入的IP地址合法,推荐使用标准CIDR格式(如
10.23.12.0/24
),掩码范围为1~32。若需添加多个IP地址,请使用英文逗号(,)分隔。原因3:与已存在的白名单存在冲突。例如,在RDS MySQL中
192.168.1.8
会与192.168.1.1/8
发生冲突。解决方案:根据实际需求合理规划并添加白名单,避免与现有规则产生重叠或冲突。
说明请勿删除默认分组
default
(包含127.0.0.1
),也不要修改系统分组(如ali_dms_group
或hdm_security_ips
),以免影响系统功能或连接安全性。
附录:确认是否满足内网访问的条件
附录:如何获取应用服务器IP地址
表 1. 如何获取应用服务器IP地址
场景 | 需获取的IP地址 | 如何获取 |
满足内网访问的条件 | ACK集群的容器的对应IP |
您在目标ACK集群的容器组页面,查Pod IP和节点IP。 |
ECS实例私网IP | 点此打开ECS实例列表,选择地域,在实例列表查看私网IP和公网IP。 | |
不满足内网访问的条件 | ECS实例公网IP | |
需要通过本地设备访问RDS实例 | 本地设备公网IP | 通过 说明 公网IP在数据库升级或变更操作时可能会发生变化。如果已经将本地IP地址添加到白名单中,但仍然无法连接,请参见外网无法连接RDS MySQL或MariaDB:如何正确填写本地设备的公网IP地址处理。 |
附录:系统默认白名单
当DMS、DTS、DAS服务与RDS MySQL交互时,系统会自动添加以下白名单分组,以确保正常访问。
分组名称 | 说明 |
dms | 用于DMS登录RDS MySQL实例。 |
dts | 用于DTS传输数据。 |
hdm_security_ips | 用于DAS服务获取数据、优化、运维和安全管理。 重要 对于2020年12月之后的新建实例,hdm_security_ips白名单分组对用户不可见,防止误修改或删除分组,影响相关服务的使用。 |