云数据库 Tair(兼容 Redis)实例支持在专有网络环境下开启免密访问,在保障安全性的前提下,实现更便捷的数据库连接。设置免密访问后,同一专有网络内的客户端无需使用密码即可连接实例,同时也继续兼容通过用户名和密码的方式连接实例。
前提条件
实例的网络类型为专有网络。
如果实例的网络类型为经典网络,您需要先将其切换为专有网络。相关操作,请参见切换为专有网络VPC。
注意事项
开启专有网络免密访问后,连接实例使用的是默认账号(即与实例ID同名的账号,例如r-bp1zxszhcgatnx****),该账号拥有读写权限。
为保障安全性,开启专有网络免密访问后,通过公网地址连接实例仍需密码验证。
操作步骤
访问实例列表,在上方选择地域,然后单击目标实例ID。
在连接信息的右侧,单击设置免密访问。
在右侧弹出的面板中,阅读相关提示并单击确定。
请刷新页面,当设置免密访问按钮转变为关闭免密访问时,表示已开启该功能。
若实例为云原生版,您必须将同一专有网络客户端的IP地址添加到实例的白名单中,才能使用VPC免密连接。
若实例为经典版,则无需添加白名单即可连接。经典版实例可以通过
#no_loose_check-whitelist-always
参数进行控制。默认情况下,#no_loose_check-whitelist-always
参数被设置为no
,即开启免密访问后,同一专有网络的客户端连接可直接访问Tair实例时,无需将其IP地址添加至实例的白名单中,更多信息请参见Redis开源版配置参数列表。说明云原生版不支持设置
#no_loose_check-whitelist-always
参数。
连接示例
开启专有网络免密后的连接示例如下。
关于如何获取实例的连接地址和密码,请参见查看连接地址。
redis-cli免密登录
redis-cli -h host -p port
// 例如:redis -h r-bp10noxlhcoim2****.redis.rds.aliyuncs.com -p 6379
Jedis免密登录
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();
相关操作
单击关闭免密访问按钮即可关闭免密功能。
关闭该功能会导致使用免密访问功能的客户端无法连接到实例。
若您需要关闭该功能,为保障不影响客户端连接,请提前将客户端的验证方式修改为账号和密码的方式。
相关API
API接口 | 说明 |
开启或关闭专有网络免密访问。 |
常见问题
Q:开启免密访问后,为什么仍会返回
WRONGPASS invalid username-password pair
报错?A:Redis开源版6.0实例开启免密访问后,若输入错误的账号密码,系统会返回以上报错。请输入正确的账号密码或不输入账号密码。
说明密码格式:
默认账号(即以实例ID命名的账号):直接填写密码。
新创建的账号:密码格式为
<user>:<password>
,例如testaccount:Rp829dlwa
。
Q:开启免密访问后,为什么使用同一专有网络的客户端连接Tair实例,仍报错
(error) ERR illegal address
?A:该客户端的IP地址未添加至实例的白名单。您可以将客户端的IP地址添加至实例的白名单中后重试。