云數據庫 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地址添加至實例的白名單中后重試。