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 バージョン 4.0.10 以降を実行しているレプリケーショングループでサポートされます。

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

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

    • R6g、R5、R4、R3

    • M6g、M5、M4、M3

    • T3、T2

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

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

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

  • 保管時の暗号化にカスタマー管理の CMK を使用するオプションは、AWS GovCloud (us-gov-east-1 および us-gov-west-1) リージョンでは使用できません。

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

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

Redis 用 ElastiCache は、保管時の暗号化用にカスタマー管理の対称カスタマーマスターキー (CMK) をサポートしています。カスタマー管理の CMKs は、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 の統合を有効にするために、お客様のアクションは必要ありません。

条件キーは、AWS KMS カスタマーマスターキー (CMK) の使用を、指定された AWS サービスからのリクエストに制限します。kms:ViaServicekms:ViaService を使用するには、条件キー値に両方の ElastiCache 名を含めます。ViaServiceelasticache.AWS_region.amazonaws.com および dax.AWS_region.amazonaws.com。 詳細については、「kms:ViaService」を参照してください。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

主要パラメータ

  • --engine — である必要があります。redis

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

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

主要パラメータ

  • --engine — である必要があります。redis

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

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

  • Engine — である必要があります。redis

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

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

  • Engine — である必要があります。redis

  • 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>

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

 

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