Tair (Redis OSS-compatible) では、VPC (VPC) にデプロイされたインスタンスのパスワードなしのアクセスを有効にできます。この機能は、インスタンスに接続するための安全で便利なメソッドを提供します。VPC にデプロイされたインスタンスのパスワードなしのアクセスを有効にすると、同じ VPC 内のクライアントはパスワードなしでインスタンスにアクセスできます。必要に応じて、ユーザー名とパスワードを使用してインスタンスに接続することもできます。
前提条件
管理するインスタンスは VPC にデプロイされています。
注意事項
インスタンスのパスワードなしのアクセスを有効にすると、デフォルトアカウントを使用してインスタンスに接続します。デフォルトアカウントのユーザー名は、r-bp1zxszhcgatnx**** などのインスタンス ID と同じです。デフォルトアカウントには、インスタンスに対する読み取りおよび書き込み権限があります。
2 つの VPC が CEN を介して接続されている場合、それらは同じ VPC と見なされます。
パスワードなしのアクセスを有効にした後、パブリックエンドポイントを使用してインスタンスに接続する場合でも、セキュリティを確保するためにパスワードを入力する必要があります。
手順
コンソールにログインし、[インスタンス] ページに移動します。上部のナビゲーションバーで、管理するインスタンスが存在するリージョンを選択します。次に、インスタンスを見つけて、インスタンス ID をクリックします。
接続情報 セクションの右上隅にある パスワードなしのアクセスを設定する をクリックします。
表示されるパネルで、プロンプトを読み、[OK] をクリックします。
ページを更新します。ボタンに表示されるテキストが パスワードなしのアクセスを設定する から パスワードレスアクセスをオフにする に変更された場合、パスワードなしのアクセスが有効になります。
インスタンスが クラウドネイティブモードでデプロイされている場合、インスタンスと同じ VPC 内のクライアントの IP アドレスをインスタンスのホワイトリストに追加して、パスワードを使用せずにクライアントをインスタンスに接続します。
インスタンスが クラシックモードでデプロイされている場合、クライアントの IP アドレスをインスタンスのホワイトリストに追加しなくても、クライアントをインスタンスに接続できます。
#no_loose_check-whitelist-alwaysパラメーターを使用して、クラシックインスタンスへのアクセスを制御できます。デフォルトでは、#no_loose_check-whitelist-alwaysパラメーターはnoに設定されています。この場合、Tair インスタンスでパスワードなしのアクセスが有効になった後、インスタンスと同じ VPC 内のクライアントは、IP アドレスをインスタンスのホワイトリストに追加しなくてもインスタンスに接続できます。詳細については、「Redis Community Edition インスタンスに設定可能なパラメーター」をご参照ください。説明クラウドネイティブインスタンスでは
#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 パラメーターの値を、インスタンスのエンドポイントとポート番号に置き換えます。password パラメーターは不要です。
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();
/// ... ここで処理を実行します ... 例
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 操作が完了したら接続を閉じます。接続を閉じるには、接続を破棄するのではなく、接続プールに接続を解放します。
jedis.close();
}
}
// 終了時にこのメソッドを 1 回だけ呼び出します。
pool.destroy();関連操作
パスワードレスアクセスをオフにする をクリックして、パスワードなしのアクセスを無効にします。
インスタンスのパスワードなしのアクセスを無効にすると、クライアントはパスワードなしのアクセス機能を使用してインスタンスに接続できなくなります。
クライアントへのこの影響を防ぐために、事前にクライアントの接続検証メソッドをアカウントとパスワードによるログインに変更できます。
関連 API 操作
API 操作 | 説明 |
VPC にデプロイされているインスタンスのパスワードなしのアクセスを有効または無効にします。 |
よくある質問
Q: VPC にデプロイされたインスタンスのパスワードなしのアクセスを有効にした後、
WRONGPASS invalid username-password pairエラーメッセージが表示されるのはなぜですか?A: パスワードなしのアクセスが有効になっている Redis Community Edition 6.0 インスタンスに接続するために不正なパスワードを入力すると、上記のエラーメッセージが返されます。正しいパスワードを入力するか、パスワードフィールドを空のままにしてください。
説明パスワードは、次のルールに基づいて入力してください。
ユーザー名がインスタンス ID と同じであるデフォルトアカウントを使用する場合、パスワードのみを入力できます。
カスタムアカウントを使用する場合は、パスワードを
<user>:<password>形式で入力します。例:testaccount:Rp829dlwa。
パスワードなしのアクセスが有効になっている Tair インスタンスにクライアントを使用して接続すると、
(error) ERR illegal addressエラーが報告されるのはなぜですか?クライアントの IP アドレスがインスタンスのホワイトリストに追加されていません。クライアントの IP アドレスをインスタンスのホワイトリストに追加して、再試行してください。