web-dev-qa-db-ja.com

AWS Redis暗号化転送中+ TLS EC2接続

すでにAWS Elasticache Redisを使用していますが、「暗号化転送中」を使用していません。この暗号化を有効にして新しいsmall/tempクラスターを作成しましたが、接続できません-

redis-cli error: Connection reset by peer

eg: redis-cli -h aws.Host.name -p 6379

注:Redisクラスターで転送中の暗号化が有効になっていない場合、接続は正常に行われます。

これは、EC2インスタンスからTLS暗号化を使用していないためだと思います。

「転送中の暗号化が有効なクラスターに接続するには、データベースでトランスポート層セキュリティ(TLS)が有効になっている必要があります。転送中の暗号化が有効になっていないクラスターに接続するには、データベースでTLSを有効にすることはできません。」

質問:

  • EC2でTLS暗号化を有効にする方法が本当にわかりません。どうすればいいですか? stunnelを使用する必要がありますか、それともAWS SSL証明書を使用できますか?
  • パフォーマンスにどのような影響がありますか?
  • Redis AUTHパスワードも調べています。これは大きなパフォーマンスヒットですか? Redisが頻繁にヒットするかどうかはよくわかります。

本当にありがとう。

4
Adam

標準クライアントであるredis-cliは暗号化をサポートしていません。 https://redislabs.com/blog/secure-redis-ssl-added-to-redsmin-and-clients/ に、ssl/TLS暗号化をサポートするredisクライアントのリストがあります。

4
  • Stunnelを使用する必要はありません。標準 redis-cli -h aws.Host.name -p 6379はEC2インスタンスから動作するはずです。ホストとポートに接続できることを確認します(単にtelnet Host 6379)。接続がない場合は、ElastiCacheクラスターのセキュリティグループ設定を確認します(EC2タブの[セキュリティグループ]セクションで設定された受信ポート6379ルールが必要です)。
  • ある程度のネットワークオーバーヘッドがあります( https://stackoverflow.com/questions/1615882/how-much-network-overhead-does-tls-add-compared-to-a-non-encrypted-connection を参照) =)と追加のCPU( HTTPと比較したHTTPSオーバーヘッド を参照)。これがほとんどのアプリケーションにとって重要であるとは思いません。すべては使用方法に依存するため、独自のテストを実行してください。
  • Redis AUTH交換は、セッションを確立したときにのみ発生します。その後の追加のオーバーヘッドはないはずです。
0
Anton Roslov

標準のredisクライアント(別名redisサーバーに付属するredis-cli)はTLSをサポートしていません。

そのため、転送中の暗号化が無効になっていると、サーバーに正常に接続されます。 TLSをサポートするクライアントを使用する必要があります。

0