云原生内存数据库Tair支持在专有网络环境下开启免密访问,在保障安全性的前提下,实现更便捷的数据库连接。设置免密访问后,同一专有网络内的客户端无需使用密码即可连接Tair实例,同时也继续兼容通过用户名和密码的方式连接Tair实例。

注意事项

  • 开启专有网络免密访问后,连接Tair使用的是默认账号(即与实例ID同名的账号,例如r-bp1zxszhcgatnx****),该账号拥有读写权限。
  • 为保障安全性,开启专有网络免密访问后,通过公网地址连接Tair仍需密码验证。
    说明 如果无法使用公网地址连接Tair实例,请升级实例的小版本至最新,相关操作请参见升级小版本
  • 默认情况下,实例的#no_loose_check-whitelist-always参数被设置为no,即开启免密访问后,同一专有网络的客户端连接Tair实例时,无需将其IP地址添加至Tair实例的白名单中。更多信息,请参见设置实例参数
    说明
    • 若开启免密访问后执行命令,提示错误:(error) ERR illegal address,表示当前客户端的IP地址未添加至白名单。

      您也可以将客户端的IP地址添加至Tair实例的白名单中;也可以将#no_loose_check-whitelist-always参数设置为noTair将不检查客户端的IP地址是否在白名单中。

    • 云盘版不支持设置#no_loose_check-whitelist-always参数,更多信息请参见参数支持

操作步骤

  1. 访问Tair实例列表,在上方选择地域,然后单击目标实例ID。
  2. 连接信息的右侧,单击设置免密访问
  3. 在右侧弹出的面板中,阅读相关提示并单击确定
    设置成功后刷新页面,设置免密访问按钮将转变为关闭免密访问,单击该按钮即可关闭免密功能。
    说明 关闭该功能后会导致原来使用免密访问功能的客户端无法连接到Tair实例,为保障不影响客户端连接,您需要提前将客户端的验证方式修改为账号和密码的方式。

连接示例

开启专有网络免密后的连接示例如下。

redis-cli -h host -p port
// 例如:redis -h r-bp10noxlhcoim2****.redis.rds.aliyuncs.com -p 6379 
JedisPoolConfig config = new JedisPoolConfig();
// 最大空闲连接数,需自行评估,不超过实例的最大连接数。
config.setMaxIdle(100);
// 最大连接数,需自行评估,不超过实例的最大连接数。
config.setMaxTotal(200);
config.setTestOnBorrow(false);
config.setTestOnReturn(false);
// host和port的值替换为实例的连接地址、端口,不需要密码参数。
String host = "r-bp10noxlhcoim2****.redis.rds.aliyuncs.com";
int port = 6379;
JedisPool pool = new JedisPool(config, host, port);
Jedis jedis = null;
try
{
    jedis = pool.getResource();
    /// ... do stuff here ... for example
    jedis.set("foo", "bar");
    System.out.println(jedis.get("foo"));
    jedis.zadd("sose", 0, "car");
    jedis.zadd("sose", 0, "bike");
    System.out.println(jedis.zrange("sose", 0, -1));
}
finally
{
    if(jedis != null)
    {
        // 需要在每一次API调用结束之后close,close是将连接还回连接池,不是销毁。
        jedis.close();
    }
}
// 只在最终程序退出时候调用一次。
pool.destroy();
说明 关于如何获取Tair实例的连接地址和密码,请参见查看连接地址

相关API

API接口 说明
ModifyInstanceVpcAuthMode 开启或关闭专有网络免密访问。