暗号化されていない接続を許可する Redis

Redis の非 TLS ポートを許可すると、クライアントがキャッシュデータや認証情報を暗号化せずに送信できるようになります。

説明

Crossplane の Azure Redis 設定で enableNonSslPort: true を指定すると、TLS を使用しない接続を許可します。Redis にはセッションデータ、キャッシュされたユーザー情報、内部サービス間で共有するデータなどが保存されるため、通信の暗号化が重要です。

この設定ですべての接続が平文になるわけではありませんが、非 TLS ポートを使うクライアントのデータは暗号化されません。内部ネットワークでも、TLS とサーバー証明書の検証を使用するようクライアントを設定する必要があります。

想定される影響

  • ネットワーク通信を観察できる攻撃者に、暗号化せずに送信したデータや認証情報が漏えいする可能性があります。
  • 通信経路を操作できる場合、データの完全性も脅かされる可能性があります。

対処方法

  • 先にクライアントを TLS 接続へ移行し、サーバー証明書とホスト名を検証するよう設定してください。
  • enableNonSslPort を明示的に false にして、暗号化されていないポートを無効にしてください。
  • 認証とネットワークのアクセス制限も維持し、正常な TLS 接続の成功と、暗号化されていない接続の拒否を試験してください。

例

以下は非 TLS ポートの設定を比較する部分的な例です。キャッシュの作成に必要なほかの設定は省略しています。

変更前

yaml
apiVersion: cache.azure.crossplane.io/v1beta1
kind: Redis
spec:
  forProvider:
    location: West Europe
    enableNonSslPort: true

非 TLS ポートが有効なため、クライアントは暗号化されていない接続を使用できます。

変更後

yaml
apiVersion: cache.azure.crossplane.io/v1beta1
kind: Redis
spec:
  forProvider:
    location: West Europe
    enableNonSslPort: false

非 TLS ポートを無効にしています。接続を維持するには、アプリケーション側も TLS を使用する設定に変更する必要があります。

参考資料