雲原生記憶體資料庫Tair支援在專用網路環境下開啟免密訪問,在保障安全性的前提下,實現更便捷的資料庫連接。設定免密訪問後,同一專用網路內的用戶端無需使用密碼即可串連Tair執行個體,同時也繼續相容通過使用者名稱和密碼的方式串連Tair執行個體。
注意事項
開啟專用網路免密訪問後,串連Tair使用的是預設帳號(即與執行個體ID同名的帳號,例如r-bp1zxszhcgatnx****),該帳號擁有讀寫權限。
為保障安全性,開啟專用網路免密訪問後,通過公網地址串連Tair仍需密碼驗證。
操作步驟
訪問Tair執行個體列表,在上方選擇地區,然後單擊目標執行個體ID。
在串連資訊的右側,單擊設定免密訪問。
在右側彈出的面板中,閱讀相關提示並單擊確定。
請重新整理頁面,當設定免密訪問按鈕轉變為關閉免密訪問時,表示已開啟該功能。
若執行個體為雲原生版,您必須將同一專用網路用戶端的IP地址添加到執行個體的白名單中,才能使用VPC免密串連。
若執行個體為經典版,則無需添加白名單即可串連。經典版執行個體可以通過
#no_loose_check-whitelist-always
參數進行控制。預設情況下,#no_loose_check-whitelist-always
參數被設定為no
,即開啟免密訪問後,同一專用網路的用戶端串連可直接存取Tair執行個體時,無需將其IP地址添加至執行個體的白名單中,更多資訊請參見Tair配置參數列表。說明雲原生版不支援設定
#no_loose_check-whitelist-always
參數。
串連樣本
開啟專用網路免密後的串連樣本如下。
關於如何擷取Tair執行個體的串連地址和密碼,請參見查看串連地址。
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();
常見問題
Q:開啟免密訪問後,為什麼使用同一專用網路的用戶端串連Tair執行個體,仍報錯
(error) ERR illegal address
?A:該用戶端的IP地址未添加至執行個體的白名單。您可以將用戶端的IP地址添加至執行個體的白名單中後重試。
相關操作
單擊關閉免密訪問按鈕即可關閉免密功能。
關閉該功能會導致使用免密訪問功能的用戶端無法串連到Tair執行個體。
若您需要關閉該功能,為保障不影響用戶端串連,請提前將用戶端的驗證方式修改為帳號和密碼的方式。
相關API
API介面 | 說明 |
開啟或關閉專用網路免密訪問。 |