メニュー
Amazon ElastiCache
ユーザーガイド (API Version 2015-02-02)

Redis 用 Amazon ElastiCache 転送時の暗号化

データを安全に保つために、Amazon ElastiCache および Amazon EC2 は、サーバー上のデータへの不正アクセスに対する防御メカニズムを提供します。ElastiCache では転送時の暗号化機能を提供されるため、ある場所から別の場所に移動しているデータの保護ツールとして使用できます。たとえば、クラスター内でプライマリノードからリードレプリカノードへ、またはクラスターとアプリケーションの間で、データを移動するとします。

転送時の暗号化はオプションであり、Redis クラスターの作成時にのみ、このクラスター上で有効にできます。転送時の暗号化は、クラスターの作成時にクラスター上でパラメータ TransitEncryptionEnabled (CLI: transit-encryption-enabled) を true に設定して有効にします。これは、クラスターを AWS マネジメントコンソール、AWS CLI、または ElastiCache API のいずれを使用して作成しても、実行できます。TransitEncryptionEnabledtrue に設定されている場合、CacheSubnetGroup の値も指定する必要があります。

転送時の暗号化の概要

Amazon ElastiCache 転送時の暗号化は、データが最も脆弱になるポイント、つまりある場所から別の場所への転送時に、データの安全性を強化できるオプションの機能です。エンドポイントでデータの暗号化と復号を行うにはある程度の処理が必要であるため、転送時の暗号化を有効にするとパフォーマンスに影響を及ぼす可能性があります。転送時の暗号化の使用時と未使用時でデータのベンチマークを取得して、ユースケースにおけるパフォーマンス影響を判断する必要があります。

ElastiCache 転送時の暗号化では、次の機能が実装されます。

  • 暗号化接続 — サーバーとクライアントの両方の接続が、Secure Socket Layer (SSL) で暗号化されます。

  • 暗号化レプリケーション — プライマリノードとレプリカ ノード間を移動するデータが暗号化されます。

  • サーバー認証 — クライアントは、適切なサーバーに接続していることを認証できます。

  • クライアント認証 — Redis AUTH 機能を使用して、サーバーはクライアントを認証できます。

転送時の暗号化の制約事項

実装を計画する際は、以下の Amazon ElastiCache 転送時の暗号化の制約事項に留意する必要があります。

  • 転送時の暗号化は、Redis バージョン 3.2.6 を実行しているクラスターでサポートされます。Memcached を実行しているクラスターではサポートされません。

    転送時の暗号化は、Amazon VPC で実行しているクラスターでのみサポートされます。

  • 転送時の暗号化は、最新世代のノードタイプを実行しているクラスターでのみサポートされます。以前の世代のノードタイプで実行中のクラスターではサポートされません。詳細については、「サポートされているノードの種類」を参照してください。

  • 転送時の暗号化は、パラメータ TransitEncryptionEnabledtrue に設定することで有効化されます。TransitEncryptionEnabled のデフォルト値は false であるため、クラスターの作成時にこれをtrue に明示的に設定する必要があります。TransitEncryptionEnabledtrue に設定されている場合、CacheSubnetGroup の値も指定する必要があります。

  • 転送時の暗号化は、クラスターの作成時にのみクラスターで有効にできます。クラスターを変更して転送時の暗号化のオンとオフを切り替えることはできません。既存のクラスター上への転送時の暗号化の実装についての詳細は、「転送時の暗号化を有効にする」を参照してください。

  • 転送時の暗号化が有効なクラスターに接続するためには、データベースは Transport Layer Security (TLS) が有効である必要があります。転送時の暗号化が有効化されていないクラスターに接続する場合、データベースは TLS を有効にすることはできません。

エンドポイントでデータの暗号化と復号を行うにはある程度の処理が必要であるため、転送時の暗号化の実装によりパフォーマンスが低下する可能性があります。自身のデータで転送時の暗号化使用時のベンチマークを暗号化なしの場合と比較して、実装におけるパフォーマンスの影響を判断してください。

新しい接続の作成には高い負荷がかかる場合があるため、SSL 接続を持続させることで転送時の暗号化のパフォーマンスへの影響を軽減させることができます。

転送時の暗号化を有効にする

AWS マネジメントコンソール、AWS CLI,、または ElastiCache API を使用して、Redis 用 ElastiCache のクラスターの作成時に転送時の暗号化を有効にできます。

 

既存のクラスター上で転送時の暗号化を有効にする

転送時の暗号化は、Redis クラスターの作成時にのみ有効化できます。転送時の暗号化を有効化したい既存クラスターがある場合は、次の操作を行います。

既存の Redis クラスター上で転送時の暗号化を有効にするには

  1. クラスターの手動バックアップを作成します。詳細については、「手動バックアップの作成」を参照してください。

  2. エンジンバージョンを 3.2.6 に設定し、パラメータ TransitEncryptionEnabledtrue に設定して (CLI: --transit-encryption-enabled)、バックアップから新しいクラスターを復元します。詳細については、「クラスターのサイズ変更 (オプション) によるバックアップからの復元」を参照してください。

  3. アプリケーション内のエンドポイントを、新しいクラスターのエンドポイントに更新します。詳細については、「ElastiCache エンドポイントの検索」を参照してください。

  4. 古いクラスターを削除します。詳細については、以下を参照してください。

 

AWS マネジメントコンソール を使用して転送時の暗号化を有効にする

AWS マネジメントコンソール を使用してクラスターの作成時に転送時の暗号化を有効にするには、以下のように選択します。

  • エンジンとして Redis を選択します。

  • エンジンバージョン 3.2.6 を選択します。

  • [Encryption in-transit] リストから、[Yes] を選択します。

詳しいステップについては、以下を参照ください。

 

AWS CLI を使用して転送時の暗号化を有効にする

AWS CLI を使用して Redis クラスターの作成時に転送時の暗号化を有効にするには、パラメータ transit-encryption-enabled を使用します。

レプリカのない Redis (クラスターモードが無効) クラスター上で転送時の暗号化を有効にする (CLI)

AWS CLI オペレーション create-cache-cluster と以下のパラメータを使用して、転送時の暗号化が有効な単一ノード Redis クラスターを作成します。

  • --engineredis に指定します。

  • --engine-version を 3.2.6 に指定します。

  • --transit-encryption-enabled。転送時の暗号化を有効にする場合、--cache-subnet-group パラメータの値も指定する必要があります。

詳細については、以下を参照してください。

レプリカを持つ Redis (クラスターモードが無効) クラスター上で転送時の暗号化を有効にする (CLI)

AWS CLI オペレーション create-replication-group と以下のパラメータを使用して、転送時の暗号化が有効な、レプリカを持つ Redis クラスターを作成します。

  • --engineredis に指定します。

  • --engine-version を 3.2.6 に指定します。

  • --transit-encryption-enabled。転送時の暗号化を有効にする場合、--cache-subnet-group パラメータの値も指定する必要があります。

  • --num-cache-clusters には、少なくとも 2 (プライマリノードと少なくとも 1 つのリードレプリカ) を指定する必要があります。このパラメータの最大値は 6 です。

詳細については、以下を参照してください。

Redis (クラスターモードが有効) クラスター上で転送時の暗号化を有効にする (CLI)

AWS CLI オペレーション create-replication-group と以下のパラメータを使用して、転送時の暗号化が有効な、レプリカを持つ Redis (クラスターモードが有効) クラスターを作成します。

  • --engineredis に指定します。

  • --engine-version を 3.2.6 に指定します。

  • --transit-encryption-enabled。転送時の暗号化を有効にする場合、--cache-subnet-group パラメータの値も指定する必要があります。

  • 次のいずれかのパラメータセットを使用して、クラスターのノード グループの構成を指定します。

    • --num-node-groups を使用して、クラスター内のシャード数 (ノードグループ数) を指定します。このパラメータの最大値は 15 です。

      --replicas-per-node-groupを使用して、各ノードグループ内のレプリカノードの数を指定します。ここで指定される値は、このクラスターのすべてのシャードに適用されます。このパラメータの最大値は 5 です。

    • --node-group-configuration を使用して、各シャードの構成を個別に指定します。

詳細については、以下を参照してください。

 

AWS API を使用して転送時の暗号化を有効にする

Redis クラスターの作成時に ElastiCache API を使用して転送時の暗号化を有効にするには、単一ノード Redis クラスターの場合は CreateCacheCluster を使用し、リードレプリカを持つクラスターの場合は CreateReplicationGroup を使用して、TransitEncryptionEnabled パラメータを true に設定します。

レプリカのない Redis (クラスターモードが無効) クラスター上で転送時の暗号化を有効にする (API)

ElastiCache API オペレーション CreatCacheCluster と以下のパラメータを使用して、転送時の暗号化が有効な単一ノード Redis クラスターを作成します。

  • Engineredis に指定します。

  • EngineVersion を 3.2.6 に指定します。

  • TransitEncryptionEnabledtrue に設定する必要があります。TransitEncryptionEnabledtrue に設定されている場合、CacheSubnetGroup の値も指定する必要があります。

詳細については、以下を参照してください。

レプリカを持つ Redis (クラスターモードが無効) クラスター上で転送時の暗号化を有効にする (API)

ElastiCache API オペレーション CreateReplicationGroup と以下のパラメータを使用して、転送時の暗号化が有効な、レプリカを持つ Redis (クラスターモードが無効) クラスターを作成します。

  • Engineredis に指定します。

  • EngineVersion を 3.2.6 に指定します。

  • TransitEncryptionEnabledtrue に設定する必要があります。

    TransitEncryptionEnabledtrue に設定されている場合、CacheSubnetGroup の値も指定する必要があります。

  • NumCacheClusters には、少なくとも 2 (プライマリノードと少なくとも 1 つのリードレプリカ) を指定する必要があります。このパラメータの最大値は 6 です。

詳細については、以下を参照してください。

Redis (クラスターモードが有効) クラスター上で転送時の暗号化を有効にする (API)

ElastiCache API オペレーション CreateReplicationGroup と以下のパラメータを使用して、転送時の暗号化が有効な、レプリカを持つ Redis (クラスターモードが有効) クラスターを作成します。

  • Engineredis に指定します。

  • EngineVersion を 3.2.6 に指定します。

  • TransitEncryptionEnabledtrue に設定する必要があります。

  • 次のいずれかのパラメータセットを使用して、クラスターのノード グループの構成を指定します。

    • NumNodeGroups を使用して、クラスター内のシャード数 (ノードグループ数) を指定します。このパラメータの最大値は 15 です。

      ReplicasPerNodeGroupを使用して、各ノードグループ内のレプリカノードの数を指定します。ここで指定される値は、このクラスターのすべてのシャードに適用されます。このパラメータの最大値は 5 です。

    • NodeGroupConfiguration を使用して、各シャードの構成を個別に指定します。

詳細については、以下を参照してください。

以下の資料も参照してください。