7

Redis Cluster がまだ不安定であることは承知していますが、かなり前からすべての単体テストに合格しているので、使い始めました。

ノードに認証が必要な場合、Redis クラスターがうまく機能するかどうかを知りたいです。それらは別のポートを介して接続し、別のプロトコルを使用するため、私はそう思う傾向がありますが、これを確認するためのドキュメントや仕様に関するものを見つけることができませんでした.

また、redis クラスタ プロトコルが認証バリアを飛び越えるとしたら、セキュリティ ホールではありませんか? 外部からデータベースにアクセスできますか? (ポートは、他のノードと通信できるように、少なくともアクセス可能である必要があります)

4

3 に答える 3

6

SSH トンネルは簡単な解決策かもしれません:

  1. redis ポートを外部に公開する必要はありません。ssh のみ。
  2. SSH はデータ圧縮をサポートしているため、データセンター間の転送を減らすことができます。

簡単な例: ssh -f -L 1234:localhost:6379 server.com -NC

これにより、localhost:1234 への着信接続がリモートの server.com:6379 にルーティングされます。したがって、redis 構成ファイルで server.com:6379 を localhost:1234 に置き換えることができます。

詳細を確認できman sshます。

于 2013-11-07T03:58:33.890 に答える
3

プロトコルがインターネット上を飛ぶ場合、データセンター間などで暗号化 (「ssl」) が必要になります。これは一般にパフォーマンスに影響します。Redisの現在のセキュリティ仕様では -

http://redis.io/topics/security

SSL はサポートされておらず、SSL プロキシが必要になることをお勧めします。これは一般に、考慮しなければならない遅延などのシステム パフォーマンス ヒットを引き起こすはずです。

したがって、理想的には、クラスタ ノードは同じ場所に配置する必要があります。それができない場合は、サイト間のデータ転送を制限するか、リアルタイムの制約なしにオフラインで実行するようにクラスターを設計する必要があります。

また、ノードごとに必要に応じてコマンドを無効/有効にすることも選択しました (上記のセキュリティ仕様の詳細を参照してください)。これがクラスターモードでサポートされているかどうかはわかりません。

于 2012-09-24T08:53:06.380 に答える
0

SSL を使用した Redis クラスターは、R​​edis がクラスターで動作する方法のため、使用できません。

Redis デプロイメントで SSL を機能させるには、stunnel またはトンネリング アプリケーションをインストールして構成する必要があります。

Redis のドキュメントから: Redis クラスターが適切に機能するためには、ノードごとに以下が必要であることに注意してください: クライアントとの通信に使用される通常のクライアント通信ポート (通常は 6379) は、クラスターに到達する必要があるすべてのクライアントに対して開かれている必要があります。他のすべてのクラスター ノード (キーの移行にクライアント ポートを使用するノード)。クラスター バス ポート (クライアント ポート + 10000) は、他のすべてのクラスター ノードから到達可能である必要があります。

あるポートでトラフィックを受信し、トラフィックを 6379 または redis-server がリッスンしている他のポートにリダイレクトするように stunnel を構成できます。クラスターモードでは、redis-server はその「cluster_port」をアナウンスして、クライアントや他のノードがこの接続ポートに接続できるようにします。設定「cluster_announce_port」をオーバーライドすると、ssl-clients はノードへの接続に成功しますが、cluster_port を介した redis-cli およびノー​​ド間通信は失敗します。

AWS ElastiCache/Redis Enterprise はクラスターで SSL をサポートしていますが、オープン ソース Redis はサポートしていないようです。

于 2019-03-06T18:49:28.580 に答える