为保障Redis数据库的安全稳定,系统默认禁止所有IP地址访问Redis实例。在开始使用Redis实例前,您需要将客户端的IP地址或IP地址段添加到Redis实例的白名单中。正确使用白名单可以让Redis得到高级别的访问安全保护,建议您定期维护白名单。

前提条件

Redis实例的小版本为最新。升级方法,请参见 升级小版本

准备工作

在为Redis实例设置白名单前,您需要先根据客户端的所属位置,获取应添加的客户端IP地址。

客户端位置 连接使用的网络类型 获取客户端IP地址的方法
ECS实例(推荐) 专有网络 查询ECS实例的IP地址
说明
  • 需确保ECS实例与Redis实例属于同一专有网络(即实例基本信息中的专有网络ID一致),如果不同,您可以更换ECS实例所属的专有网络。具体操作,请参见更换ECS实例的VPC
  • 如果网络类型不同,例如ECS实例为经典网络,Redis实例为专有网络。如何连接,请参见ECS实例与Redis实例的网络类型不同时如何连接
本地或第三方云 公网 根据本地设备的操作系统,选择下述方法:
  • Linux操作系统:在本地设备上执行curl ipinfo.io |grep ip命令,获取其公网IP地址,返回示例如下。查看公网IP结果
  • Windows操作系统:在本地设备上访问淘宝IP地址库,获取其公网地址。

白名单设置方法介绍

设置方法 说明
方法一:通过白名单分组设置白名单 手动添加客户端所属的IP地址到Redis实例的白名单,以允许该客户端访问Redis实例。
方法二:通过ECS安全组设置白名单 安全组是一种虚拟防火墙,用于控制安全组中的ECS实例的出入流量。如果需要授权多个ECS实例访问Redis实例,您可以通过为Redis实例绑定ECS所属安全组的方式实现快速授权(无需手动填写ECS的IP地址),提升运维的便捷性。
说明
  • 该操作要求Redis实例的大版本为4.0及以上,升级方法,请参见升级大版本
  • 集群架构的云盘实例,暂不支持该功能。
方法三:通过阿里云App设置白名单(手机端)

阿里云App是阿里云官方出品的移动应用,为您提供随时随地触达阿里云的能力。通过阿里云App,您可以在手机端快速完成IP白名单的设置,同时还支持云资源监控、了解产品动态、购买云产品等功能。

说明 您也可以同时设置白名单分组和ECS安全组,白名单分组中的IP地址和安全组中的ECS实例都可以访问该Redis实例。

方法一:通过白名单分组设置白名单

  1. 登录Redis管理控制台
  2. 在顶部菜单栏的左上角,选择实例所属的地域。
  3. 实例列表页,单击目标实例ID。
  4. 在左侧导航栏,单击白名单设置
  5. 找到目标白名单分组,单击修改
    说明 您也可以单击 添加白名单分组创建一个新的分组。分组名称长度为2~32个字符,由小写字母、数字或下划线组成,需以小写字母开头,以小写字母或数字结尾。
  6. 在弹出的对话框中,根据要执行的操作,选择下述操作步骤:
    • 手动填写IP地址或IP地址段
      图 1. 手动修改白名单
      手动修改白名单
      说明
      • IP地址以英文逗号(,)分隔,不可重复,最多1000个。支持格式为10.23.12.24(具体IP地址)、10.23.12.24/24(CIDR模式,即无类域间路由,/24表示地址中前缀的长度,范围为1~32)。
      • 地址中的前缀长度设置为0(例如0.0.0.0/0、127.0.0.1/0)表示允许所有IP地址访问该实例,存在高安全风险,请谨慎设置。
    • 加载ECS实例的内网IP地址为白名单
      1. 单击加载ECS私网IP
      2. 根据业务需求选中对应的IP地址。
        图 2. 加载ECS内网IP地址
        加载ECS内网IP地址
        说明 为便于定位目标IP地址,您可以将鼠标指针悬浮在对应的IP地址上,系统将为您展示该IP地址所属ECS实例的ID和名称。
    • 清除白名单分组

      当某个白名单分组中的所有IP地址均需要移除且需要保留该分组时,您可以单击清除白名单分组来完成该操作。

  7. 单击确定

方法二:通过ECS安全组设置白名单

将ECS安全组添加至Redis实例后,该安全组中的所有ECS实例既可以通过内网访问Redis实例,也可以通过外网访问Redis实例(Redis实例需已申请公网连接地址,具体操作,请参见如何通过公网连接Redis实例)。

说明 通过本方法设置白名单时,要求ECS实例和Redis实例的网络类型相同(如果是专有网络,则要求属于同一个VPC ID)。
地域 Region ID(API使用) 地域 Region ID(API使用)
华东1(杭州) cn-hangzhou 华东2(上海) cn-shanghai
华北1(青岛) cn-qingdao 华北2(北京) cn-beijing
华北3(张家口) cn-zhangjiakou 华北5(呼和浩特) cn-huhehaote
华南1(深圳) cn-shenzhen 西南1(成都) cn-chengdu
中国(香港) cn-hongkong 新加坡 ap-southeast-1
澳大利亚(悉尼) ap-southeast-2 马来西亚(吉隆坡) ap-southeast-3
印度尼西亚(雅加达) ap-southeast-5 日本(东京) ap-northeast-1
德国(法兰克福) eu-central-1 英国(伦敦) eu-west-1
美国(弗吉尼亚) us-east-1 印度(孟买) ap-south-1
阿联酋(迪拜) me-east-1

  1. 登录Redis管理控制台
  2. 在顶部菜单栏的左上角,选择实例所属的地域。
  3. 实例列表页,单击目标实例ID。
  4. 在左侧导航栏,单击白名单设置
  5. 单击添加安全组
  6. 在弹出的对话框中,选择需要添加的安全组。
    图 3. 添加安全组
    添加安全组
    说明
    • 为便于定位目标安全组,您可以将鼠标指针悬浮在安全组ID上,可显示安全组的名称和描述信息;将鼠标指针悬浮在VPC图标上,可显示VPC ID信息。
    • 每个Redis实例最多可设置10个安全组。
  7. 单击确定
  8. 可选:当您需要移除所有安全组时,您可以单击清除安全组来实现。

方法三:通过阿里云App设置白名单

阿里云App是阿里云官方出品的移动应用,为您提供随时随地触达阿里云的能力。通过阿里云App,您可以在手机端快速完成IP白名单的设置,同时还支持云资源监控、了解产品动态、购买云产品等功能。

  1. 选择下述方式,下载并安装阿里云App:
  2. 登录阿里云App
  3. 打开阿里云App,在我的云产品中,找到并点击云数据库Redis版
  4. 单击目标实例右侧的阿里云App更多图标图标,并在页面下方弹出的选项中点击白名单设置
  5. 根据业务需求,选择执行下述操作:
    • 手动修改白名单:点击目标白名单分组右侧的阿里云APP更多图标图标,然后点击修改并输入IP白名单。
    • 新增白名单分组:点击右上角的阿里云App加号图标图标,输入分组名称和IP白名单。
    • 删除白名单分组:点击目标白名单分组右侧的阿里云APP更多图标图标,然后选择删除
    说明
    • IP地址以英文逗号(,)分隔,不可重复,最多1000个。支持格式为10.23.12.24(具体IP地址)、10.23.12.24/24(CIDR模式,即无类域间路由,/24表示地址中前缀的长度,范围为1~32)。
    • 地址中的前缀长度设置为0(例如0.0.0.0/0、127.0.0.1/0)表示允许所有IP地址访问该实例,存在高安全风险,请谨慎设置。
    • 默认的白名单分组(default)不可删除。

    下图以手动修改白名单为例,介绍操作流程。

    图 4. 阿里云App设置白名单
    阿里云App设置白名单

常见连接场景

相关API

API 说明
DescribeSecurityIps 查询Redis实例的IP白名单。
ModifySecurityIps 设置Redis实例的IP白名单。
DescribeSecurityGroupConfiguration 查询Redis实例白名单中已配置的安全组。
ModifySecurityGroupConfiguration 重新设置Redis实例白名单中的安全组。

常见问题

  • Q:Redis实例里有一些自动生成的白名单分组,它们的来源是什么?可以删除吗?

    A:初始情况下,Redis实例的白名单分组仅包含default,随着对实例执行某些操作,白名单分组会逐渐增多,详情请参见下表。

    白名单分组名称 来源说明
    default 系统默认白名单分组,不可删除。
    ali_dms_group 通过DMS登录Redis实例时,授权DMS自动创建的。具体操作,请参见通过DMS登录Redis。请勿删除或修改该白名单分组,否则可能导致无法通过DMS登录Redis实例。
    hdm_security_ips 使用CloudDBA相关功能时(例如通过缓存分析快速发现大Key),授权DAS自动创建的。请勿删除或修改该白名单分组,否则可能导致CloudDBA功能使用异常。
  • Q:白名单分组里除了包含客户端的IP地址,还包含了127.0.0.1,这种情况下该客户端可以连接Redis实例吗?

    A:该客户端可以正常连接,如果所有的白名单分组里仅剩下127.0.0.1,则禁止所有IP地址连接Redis实例。

  • Q:为什么通过redis-cli连上后提示(error) ERR illegal address

    A:您的redis-cli所属设备的IP地址未添加至白名单中,请确认白名单配置。

  • Q:我的设备所属的IP地址没有添加到白名单中,可以通过telnet测试端口连通性吗?
    A:可以,telnet命令会返回如下提示:
    Escape character is '^]'.
    Connection closed by foreign host.