Redis 用 ElastiCache での保管時の暗号化 - Redis 用 Amazon ElastiCache

Redis 用 ElastiCache での保管時の暗号化

データを安全に保つために、Amazon ElastiCache と Amazon S3 には、キャッシュ内のデータへのアクセスを制限するさまざまな方法が用意されています。詳細については、「Amazon VPC と ElastiCache のセキュリティ」および「Amazon ElastiCache の Identity and Access Management」を参照してください。

Redis 用 ElastiCache の保存時の暗号化は、ディスク上のデータを暗号化することでデータのセキュリティを強化するオプションの機能です。レプリケーショングループに対して有効にすると、以下の側面が暗号化されます。

  • 同期、バックアップ、およびスワップオペレーション中のディスク

  • Amazon S3 に保存されたバックアップ

Redis 用 ElastiCache では、保管時のデフォルト (サービス管理) の暗号化が用意されているだけでなく、お客様独自のカスタマー管理の対称カスタマーマスタ―キーを AWS Key Management Service (KMS) で使用することもできます。

保管時の暗号化は、レプリケーショングループに対してその作成時にのみ有効にできます。データの暗号化と復号を行うにはある程度の処理が必要であるため、保管時の暗号化を有効にすると、これらのオペレーションの実行中のパフォーマンスに影響を与える可能性があります。保管時の暗号化の使用時と未使用時でデータのベンチマークを取得して、ユースケースにおけるパフォーマンスの影響を判断する必要があります。

転送時の暗号化については、「Redis 用 ElastiCache 転送時の暗号化 (TLS)」を参照してください。

保管時の暗号化の条件

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

  • 保管時の暗号化は、Redis バージョン 3.2.6 または 4.0.10 以降で実行しているレプリケーショングループでサポートされます。

  • 保管時の暗号化は、Amazon VPC で実行されているレプリケーショングループでのみサポートされます。

  • 保管時の暗号化は、以下のノードタイプを実行しているレプリケーショングループでのみサポートされます。

    • R5、R4、R3

    • M5、M4、M3

    • T2

    詳細については、「サポートされているノードの種類」を参照してください。

  • 保管時の暗号化は、パラメータ AtRestEncryptionEnabled を明示的に true に設定することで有効化されます。

  • 保管時の暗号化は、レプリケーショングループの作成時にのみレプリケーショングループで有効にできます。レプリケーショングループを変更して保管時の暗号化のオンとオフを切り替えることはできません。既存のレプリケーショングループ上への保管時の暗号化の実装の詳細については、「保管時の暗号化を有効にする」を参照してください。

  • 保管時のデータの暗号化は、cn-north-1 (北京)、cn-northwest-1 (寧夏)、ap-northeast-3 (アジアパシフィック (大阪ローカル)) リージョンでは利用できません。また、AWS GovCloud (us-gov-east-1 および us-gov-west-1) リージョンでは、保存時の暗号化にカスタマー管理の CMK を使用することを選択できません。

保管時の暗号化を実装することで、バックアップオペレーションおよびノード同期オペレーションの実行中にパフォーマンスが低下する場合があります。自身のデータで保管時の暗号化使用時のベンチマークを暗号化なしの場合と比較して、実装におけるパフォーマンスの影響を判断してください。

AWS KMS のカスタマー管理の CMK の使用

Redis 用 ElastiCache は、保管時の暗号化用にカスタマー管理の対称カスタマーマスターキー (CMK) をサポートしています。カスタマー管理の CMK は、AWS アカウントで作成、所有、管理する暗号化キーです。詳細については、AWS Key Management Service 開発者ガイドの「カスタマーマスターキー」を参照してください。キーは、Elasticache で使用する前に AWS KMS で作成する必要があります。

AWS KMS マスターキーの作成方法については、AWS Key Management Service 開発者ガイドの「キーの作成」を参照してください。

Redis 用 ElastiCache を使用すると、AWS KMS と統合できます。詳細については、AWS Key Management Service 開発者ガイドの「許可の使用」を参照してください。Amazon ElastiCache と AWS KMS の統合を有効にするために、お客様の作業は必要ありません。

現在、Amazon ElastiCache は kms:ViaService をサポートしていません。ViaService を使用して Amazon ElastiCache へのアクセスを許可/拒否しても、キーのアクセス許可には影響しません。

AWS CloudTrail を使用して、Amazon ElastiCache によってお客様に代わって AWS Key Management Service に送信されるリクエストを追跡できます。カスタマー管理の CMK に関連する AWS Key Management Service へのすべての API コールには、対応する CloudTrail ログがあります。ListGrants KMS API コールを行うことで、ElastiCache によって作成される許可を表示することもできます。

カスタマー管理の CMK を使用してレプリケーショングループが暗号化されると、レプリケーショングループのすべてのバックアップは以下のように暗号化されます。

  • 毎日の自動バックアップは、クラスターに関連付けられたカスタマー管理の CMK を使用して暗号化されます。

  • レプリケーショングループが削除されたときに作成される最終バックアップも、レプリケーショングループに関連付けられたカスタマー管理の CMK を使用して暗号化されます。

  • 手動で作成されたバックアップは、デフォルトで、レプリケーショングループに関連付けられた CMK を使用して暗号化されます。この動作は、別のカスタマー管理の CMK を選択して上書きできます。

  • バックアップをコピーするとき、デフォルトでは、ソースバックアップに関連付けられたカスタマー管理の CMK が使用されます。この動作は、別のカスタマー管理の CMK を選択して上書きできます。

注記
  • 選択した Amazon S3 バケットにバックアップをエクスポートするとき、カスタマー管理の CMK は使用できません。ただし、Amazon S3 にエクスポートされたすべてのバックアップは、サーバー側の暗号化を使用して暗号化されます。 バックアップファイルを新しい S3 オブジェクトにコピーし、カスタマー管理の CMK を使用して暗号化するか、デフォルトの暗号化が設定された別の S3 バケットにコピーし、CMK を使用して暗号化するか、ファイル自体の暗号化オプションを変更できます。

  • また、暗号化にカスタマー管理の CMK を使用しないレプリケーショングループに手動で作成されたバックアップを、カスタマー管理の CMK を使用して暗号化することもできます。このオプションでは、データが元のレプリケーショングループで暗号化されていなくても、Amazon S3 に保存されているバックアップファイルは CMK を使用して暗号化されます。

バックアップから復元するときは、新しいレプリケーショングループの作成時に使用できるものと同様の暗号化オプションから選択できます。

また、以下の点を考慮してください。

  • キーを削除するか、キーを無効にして、レプリケーショングループの暗号化に使用したキーの許可を取り消すと、レプリケーショングループは回復不可能になります。つまり、ハードウェア障害の後に変更も回復もできなくなります。マスターキーは 7 日間以上の待機期間後にのみ AWS KMS によって削除されます。キーが削除された後、別のカスタマー管理の CMK を使用して、アーカイブ目的のバックアップを作成できます。

  • 自動キー更新は KMS マスターキーのプロパティを保持するため、お客様が ElastiCache データにアクセスできるかどうかには影響しません。暗号化された Amazon ElastiCache レプリケーショングループは、手動キー更新をサポートしていないため、新しいマスターキーの作成や古いキーへの参照の更新などを行うことはできません。詳細については、AWS Key Management Service 開発者ガイドの「カスタマーマスターキーの更新」を参照してください。

  • CMK を使用して ElastiCache レプリケーショングループを暗号化するには、レプリケーショングループごとに 1 つの許可が必要です。この許可はレプリケーショングループの有効期間を通じて使用されます。また、バックアップの作成中、バックアップごとに 1 つの許可が使用されます。この許可はバックアップの作成後に無効になります。

  • AWS KMS の許可と制限の詳細については、AWS Key Management Service 開発者ガイドの「制限」を参照してください。

保管時の暗号化を有効にする

ElastiCache 保管時の暗号化は、Redis レプリケーショングループの作成時にパラメーター AtRestEncryptionEnabledtrue に設定して有効にできます。既存のレプリケーショングループ上で保管時の暗号化を有効にすることはできません。

Redis 用 ElastiCache レプリケーショングループを作成するときに、保管時の暗号化を有効にできます。これを行うには、AWS マネジメントコンソール、AWS CLI、または ElastiCache API を使用します。

レプリケーショングループを作成するときに、以下のオプションのいずれかを選択できます。

  • デフォルト - このオプションでは、サービス管理の保存時の暗号化が使用されます。

  • カスタマー管理の CMK - このオプションでは、AWS KMS からのキー ID/ARN を保管時の暗号化に使用できます。

AWS KMS マスターキーの作成方法については、AWS Key Management Service 開発者ガイドの「キーの作成」を参照してください。

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

保管時の暗号化は、Redis レプリケーショングループの作成時にのみ有効化できます。保管時の暗号化を有効化したい既存レプリケーショングループがある場合は、次の操作を行います。

既存のレプリケーショングループ上で保管時の暗号化を有効にするには

  1. 既存のレプリケーショングループの手動バックアップを作成します。詳細については、「手動バックアップの作成」を参照してください。

  2. バックアップから復元して新しいレプリケーショングループを作成します。新しいレプリケーショングループで、保管時の暗号化を有効にします。詳細については、「クラスターのサイズ変更 (オプション) によるバックアップからの復元」を参照してください。

  3. アプリケーションのエンドポイントを、新しいレプリケーショングループのエンドポイントに更新します。

  4. 古いレプリケーショングループを削除します。詳細については、「クラスターの削除」または「レプリケーショングループの削除」を参照してください。

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

AWS マネジメントコンソール を使用してレプリケーショングループの作成時に保管時の暗号化を有効にするには、以下のように選択します。

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

  • エンジンのバージョンとしてバージョン 3.2.6、4.0.10 またはそれ以降を選択します。

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

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

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

AWS CLI を使用して Redis クラスターを作成するときに保管時の暗号化を有効にするには、レプリケーショングループの作成時に --at-rest-encryption-enabled パラメーターを使用します。

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

次のオペレーションでは、3 つのノード (--num-cache-clusters)、1 つのプライマリと 2 つのリードレプリカを持つ Redis (クラスターモードが無効) レプリケーショングループ my-classic-rg を作成します。保管時の暗号化は、このレプリケーショングループに対して有効です (--at-rest-encryption-enabled)。

以下のパラメーターとその値は、このレプリケーショングループで暗号化を有効にするために必要です。

主要パラメータ

  • --engineredis を指定してください。

  • --engine-version—3.2.6 または 4.0.10 以降を指定する必要があります。

  • --at-rest-encryption-enabled—保管時の暗号化に必要です。

例 1: レプリカのある Redis (クラスターモードが無効) クラスター

Linux, macOS, or Unix 用:

aws elasticache create-replication-group \ --replication-group-id my-classic-rg \ --replication-group-description "3 node replication group" \ --cache-node-type cache.m4.large \ --engine redis \ --engine-version 4.0.10 \ --at-rest-encryption-enabled \ --num-cache-clusters 3 \ --cache-parameter-group default.redis4.0

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id my-classic-rg ^ --replication-group-description "3 node replication group" ^ --cache-node-type cache.m4.large ^ --engine redis ^ --engine-version 4.0.10 ^ --at-rest-encryption-enabled ^ --num-cache-clusters 3 ^ --cache-parameter-group default.redis4.0

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

 

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

次のオペレーションでは、3 つのノードグループまたはシャード (--num-node-groups) を持つ Redis (クラスターモードが有効) レプリケーショングループ my-clustered-rg を作成します。各レプリケーショングループには、1 つのプライマリ、および 2 つのリードレプリカ (--replicas-per-node-group) があります。保管時の暗号化は、このレプリケーショングループに対して有効です (--at-rest-encryption-enabled)。

以下のパラメーターとその値は、このレプリケーショングループで暗号化を有効にするために必要です。

主要パラメータ

  • --engineredis を指定してください。

  • --engine-version—3.2.6 または 4.0.10 以降を指定する必要があります。

  • --at-rest-encryption-enabled—保管時の暗号化に必要です。

  • --cache-parameter-group—このクラスターをモード有効レプリケーショングループにするには、default-redis4.0.cluster.on またはそれから派生したいずれかに指定します。

例 2: Redis (クラスターモードが有効) クラスター

Linux, macOS, or Unix 用:

aws elasticache create-replication-group \ --replication-group-id my-clustered-rg \ --replication-group-description "redis clustered cluster" \ --cache-node-type cache.m3.large \ --num-node-groups 3 \ --replicas-per-node-group 2 \ --engine redis \ --engine-version 4.0.10 \ --at-rest-encryption-enabled \ --cache-parameter-group default.redis4.0.cluster.on

Windows の場合:

aws elasticache create-replication-group ^ --replication-group-id my-clustered-rg ^ --replication-group-description "redis clustered cluster" ^ --cache-node-type cache.m3.large ^ --num-node-groups 3 ^ --replicas-per-node-group 2 ^ --engine redis ^ --engine-version 4.0.10 ^ --at-rest-encryption-enabled ^ --cache-parameter-group default.redis4.0.cluster.on

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

ElastiCache API を使用して保管時の暗号化を有効にする

ElastiCache API を使用して Redis レプリケーショングループの作成時に保管時の暗号化を有効にするには、パラメーター AtRestEncryptionEnabledtrueCreateReplicationGroup に設定します。

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

次のオペレーションでは、3 つのノード (NumCacheClusters)、1 つのプライマリと 2 つのリードレプリカを持つ Redis (クラスターモードが無効) レプリケーショングループ my-classic-rg を作成します。保管時の暗号化は、このレプリケーショングループに対して有効です (AtRestEncryptionEnabled=true)。

以下のパラメーターとその値は、このレプリケーショングループで暗号化を有効にするために必要です。

  • Engineredis を指定してください。

  • EngineVersion—3.2.6 または 4.0.10 以降を指定する必要があります。

  • AtRestEncryptionEnabled—保管時の true の暗号化に必要です。

例 3: レプリカのある Redis (クラスターモードが無効) クラスター

読みやすくするために改行が追加されます。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &AtRestEncryptionEnabled=true &CacheNodeType=cache.m3.large &CacheParameterGroup=default.redis4.0 &Engine=redis &EngineVersion=4.0.10 &NumCacheClusters=3 &ReplicationGroupDescription=test%20group &ReplicationGroupId=my-classic-rg &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

 

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

次のオペレーションでは、3 つのノードグループ/シャード (NumNodeGroups) を持つ Redis (クラスターモードが有効) レプリケーショングループ my-clustered-rg を作成します。各ノードグループ/シャードには、1 つのプライマリ、2 つのリードレプリカ (ReplicasPerNodeGroup) の 3 つのノードが含まれます。保管時の暗号化は、このレプリケーショングループに対して有効です (AtRestEncryptionEnabled=true)。

以下のパラメーターとその値は、このレプリケーショングループで暗号化を有効にするために必要です。

  • Engineredis を指定してください。

  • AtRestEncryptionEnabled—保管時の true の暗号化に必要です。

  • EngineVersion—3.2.6 または 4.0.10 以降を指定する必要があります。

  • CacheParameterGroupdefault-redis4.0.cluster.on、またはこれから派生したいずれかを Redis (クラスターモードが有効) クラスターに指定します。

例 4: Redis (クラスターモードが有効) クラスター

読みやすくするために改行が追加されます。

https://elasticache.us-west-2.amazonaws.com/ ?Action=CreateReplicationGroup &AtRestEncryptionEnabled=true &CacheNodeType=cache.m3.large &CacheParemeterGroup=default.redis4.0.cluster.on &Engine=redis &EngineVersion=4.0.10 &NumNodeGroups=3 &ReplicasPerNodeGroup=2 &ReplicationGroupDescription=test%20group &ReplicationGroupId=my-clustered-rg &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

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

 

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