保存時の暗号化が無効な ElastiCache Redis レプリケーショングループ

ElastiCache Redis OSS のディスク上のデータとバックアップを暗号化し、既存グループの移行を計画してください。

説明

ElastiCache Redis OSS の保存時の暗号化は、同期・バックアップ・スワップ処理でディスクに書き込まれるデータとバックアップを保護します。セッション、トークン、個人情報をキャッシュする場合は、保存されたコピーも保護が必要です。保存時の暗号化は、クライアント通信の暗号化やユーザー認証の代わりにはなりません。

想定される影響

暗号化していない保存データやバックアップを不正に取得されると、機密情報の漏えいリスクが高まります。キャッシュに適用される組織のデータ保護要件を満たせない場合もあります。

対処方法

新規レプリケーショングループには AtRestEncryptionEnabled: true を指定し、必要な KMS キーと権限を確認してください。Redis OSS ではこのオプションの既定値は false のため、実際の状態を確認してください。

既存グループでは、この設定の有効・無効を切り替えられません。暗号化した新しいグループにデータを復元または移行し、アプリケーションの接続とデータの整合性を検証してから接続先を切り替えてください。切り替え前にバックアップと復旧の計画を立て、通信の暗号化と認証も別途設定してください。

例

実際の VPC 内のキャッシュサブネットグループと、必要なアクセスだけを許可するセキュリティグループを指定します。単一ノードの作成設定を比較する例であり、高可用性や既存データの移行は構成しません。

変更前

yaml
Parameters:
  CacheSubnetGroupName:
    Type: String
  CacheSecurityGroups:
    Type: List<AWS::EC2::SecurityGroup::Id>
Resources:
  ReplicationGroup:
    Type: AWS::ElastiCache::ReplicationGroup
    Properties:
      ReplicationGroupDescription: example
      AtRestEncryptionEnabled: false
      Engine: redis
      CacheNodeType: cache.t3.micro
      NumCacheClusters: 1
      CacheSubnetGroupName: !Ref CacheSubnetGroupName
      SecurityGroupIds: !Ref CacheSecurityGroups

変更後

yaml
Parameters:
  CacheSubnetGroupName:
    Type: String
  CacheSecurityGroups:
    Type: List<AWS::EC2::SecurityGroup::Id>
Resources:
  ReplicationGroup:
    Type: AWS::ElastiCache::ReplicationGroup
    Properties:
      ReplicationGroupDescription: example
      AtRestEncryptionEnabled: true
      Engine: redis
      CacheNodeType: cache.t3.micro
      NumCacheClusters: 1
      CacheSubnetGroupName: !Ref CacheSubnetGroupName
      SecurityGroupIds: !Ref CacheSecurityGroups

参考資料