クライアント アプリケーションと Memorystore for Redis Cluster 間で移動するすべてのデータを安全に暗号化できます。これは転送中の暗号化です。転送中の暗号化を使用すると、すべての Redis トラフィックが Transport Layer Security(TLS)プロトコルで暗号化されます。これにより、アプリケーションと Memorystore for Redis Cluster 間で移動するすべてのデータが機密性を維持し、改ざんされないようになります。
転送中の暗号化が有効になっている場合、Redis クライアントは安全な接続を介してのみ通信を行います。TLS 用に構成されていない Redis クライアントはブロックされます。転送中の暗号化を使用する場合は、Redis クライアントが TLS プロトコルを使用できることを確認する必要があります。
転送中の暗号化を使用するユースケースの例を次に示します。
- 機密性の高いキャッシュ データを保護する: Memorystore for Redis Cluster を使用して、セッション トークン、個人情報(PII)、API キーなどの価値の高い情報を保存する場合、転送中の暗号化により、VPC アクセス権を持つ攻撃者がデータにアクセスすることを防ぐことができます。
- 業界標準に準拠する: 医療業界の HIPAA や金融データの PCI DSS など、多くのセキュリティ フレームワークでは、規制と業界のコンプライアンスを目的として、保存データと転送中の両方で機密情報を暗号化することが義務付けられています。
- 安全な IAM(Identity and Access Management)認証: IAM 認証を使用してデータへのアクセスを管理する場合、Memorystore for Redis Cluster では、転送中の認証トークンの漏洩を防ぐために TLS が必要です。
- 中間者攻撃を防ぐ: TLS は、認証局(CA)を使用してサーバー エンドポイントを認証します。CA は、アプリケーションと Memorystore for Redis Cluster 間でデータが移動する際に、サーバーのなりすましや不正なデータ変更からアプリケーションを保護します。
転送中の暗号化の前提条件
Memorystore for Redis Cluster で転送中の暗号化を使用するには、次のものが必要です。
TLS またはサードパーティの TLS サイドカーをサポートする Redis クライアント。
クラスタにアクセスするクライアント マシンにインストールされている CA 証明書。
組み込み TLS は、Redis バージョン 6.0 以降でのみサポートされていました。そのため、すべての Redis クライアント ライブラリで TLS がサポートされているわけではありません。TLS をサポートしていないクライアントを使用している場合は、クライアントの TLS を有効にするサードパーティ プラグインを使用することをおすすめします。転送中の暗号化が有効になっている Memorystore for Redis Cluster のクラスタに接続する方法の例をご覧ください。
認証局(CA)
転送中の暗号化を使用するクラスタには、クラスタ内のマシンの証明書を認証する認証局(CA)があります。Memorystore for Redis Cluster では、サーバー CA モードを選択できます。CA モードは、クラスタのデジタル証明書の発行に使用される CA 階層を決定します。
Memorystore for Redis Cluster には、次の CA モードがあります。
- インスタンスごとの CA: Memorystore for Redis Cluster は、各クラスタに独自の固有の CA インフラストラクチャをプロビジョニングします。クラスタに安全にアクセスするには、この CA 階層を信頼するようにクライアントを構成する必要があります。これには、クラスタにアクセスするクライアントごとに CA 証明書をダウンロードしてインストールする必要があります。
- 共有 CA: 管理されたリージョン化された CA インフラストラクチャ。リージョンごとに、単一の CA 証明書バンドルをダウンロードできます。このバンドルは、共有 CA を使用するように構成したリージョンにあるすべてのクラスタで有効です。共有 CA を使用すると、クライアントが管理する必要がある証明書の数が減ります。
- 顧客管理の CA: Certificate Authority Service でホストされている独自の CA プールを使用します。クライアント アプリケーションがこの CA を信頼するように構成されている場合、追加の CA 証明書をダウンロードしてインストールしなくても、アプリケーションをクラスタに接続できます。これにより、制御が強化され、コンプライアンス要件を満たすことができます。
サーバー証明書のローテーション
Memorystore for Redis Cluster は、インスタンス単位の CA、共有 CA、顧客管理の CA モードを使用するクラスタに対して、毎週サーバーサイドの証明書ローテーションを実施します。新しいサーバー証明書は新しい接続にのみ適用され、このローテーション中も既存の接続は維持されます。
Memorystore for Redis Cluster では、サーバーサイドの証明書のローテーションが毎週行われますが、顧客管理の CA モードでは、証明書をオンデマンドでローテーションできます。
転送中の暗号化を有効にした場合のパフォーマンスへの影響
転送中の暗号化機能では、処理にオーバーヘッドを伴うデータの暗号化と復号を行います。このため、転送中の暗号化を有効にすると、クライアントのパフォーマンスが低下する可能性があります。また、転送中の暗号化を使用する場合、追加の接続のそれぞれに関連リソースのコストがかかります。
転送中の暗号化に関連するレイテンシを判断するには、クライアントのパフォーマンスを比較します。これを行うには、転送中の暗号化が有効になっているクラスタと無効になっているクラスタのパフォーマンスをベンチマークします。
パフォーマンスを改善するためのガイドライン
クラスタのパフォーマンスを改善するには、次のガイドラインを使用します。
可能なときは、クライアントの接続数を減らします。オンデマンドの有効期間が短い接続を作成するのではなく、長期の接続を確立してそれを再利用します。
クラスタのサイズを増やします。
クライアントのホストマシンの CPU リソースを増やします。クライアント マシンの CPU 数が多くなるほど、パフォーマンスが向上します。Compute Engine VM を使用する場合は、最適化されたクラスタを使用することをおすすめします。
クライアントのトラフィックに関連付けられたペイロード サイズを減らします。ペイロードが大きければ大きいほど、より多くの往復が必要となります。