保存データの暗号化が無効な Neptune データベースクラスター

Neptune の保存データとバックアップを暗号化し、既存クラスターでは復元と切り替えを計画してください。

説明

Neptune の保存時の暗号化は、グラフデータと関連するログ、バックアップ、スナップショットを保護します。暗号化していないクラスターには、基盤となるストレージへの不正アクセスに対するこの保護がありません。CloudWatch に出力するログの暗号化は、別途設定が必要です。

保存時の暗号化と IAM データベース認証は、異なる保護機能です。ストレージが暗号化されていても、権限とネットワーク制御によって、必要な利用者とアプリケーションだけがデータにアクセスできるようにしてください。

想定される影響

保存データやバックアップを不正に取得されると、グラフ内の個人情報や業務上の関係が漏えいするリスクが高まります。組織のデータ保護要件を満たせない場合もあります。

対処方法

新しいクラスターには StorageEncrypted: true を設定してください。独自の KMS キーが必要な場合は作成前にキーと権限を用意し、それ以外は既定のキーで要件を満たすか確認します。キーへのアクセスを失うとデータベースの運用が停止する可能性があるため、キーとバックアップを保護してください。

既存の非暗号化クラスターを直接暗号化することはできません。スナップショットを新しい暗号化クラスターへ復元する際に KMS キーを指定するなど、サポートされている移行手順を使用してください。元のデータを保持し、データの整合性、新しい接続先、アプリケーションの切り替えを検証してください。

例

新規クラスターの作成設定を比較します。DB インスタンス、サブネット、セキュリティグループは別途設定が必要です。スナップショットの保持設定はバックアップを残しますが、データ移行やサービスの切り替えは行いません。

変更前

yaml
Resources:
  NeptuneDBCluster:
    Type: AWS::Neptune::DBCluster
    DeletionPolicy: Snapshot
    UpdateReplacePolicy: Snapshot
    Properties:
      IamAuthEnabled: true
      Port: 8182
      StorageEncrypted: false

IAM 認証を有効にしても、保存時の暗号化が同時に有効になるわけではありません。

変更後

yaml
Resources:
  NeptuneDBCluster:
    Type: AWS::Neptune::DBCluster
    DeletionPolicy: Snapshot
    UpdateReplacePolicy: Snapshot
    Properties:
      IamAuthEnabled: true
      Port: 8182
      StorageEncrypted: true

保存時の暗号化を有効にします。キーを別途指定しない場合は、リージョンの既定の Neptune 暗号化キー aws/rds を使用します。

参考資料