RDS インスタンスの保存時の暗号化設定の確認

RDS インスタンスの実際の暗号化状態と、元のデータベースやスナップショットから引き継ぐ設定を確認してください。

説明

RDS の保存時の暗号化は、データベースのストレージと関連するログ、バックアップ、スナップショットを保護します。実際に暗号化されていないインスタンスには、この保護がありません。

通常の RDS インスタンスを新規作成するときは、必要な暗号化を明示してください。リードレプリカやスナップショットからの復元では元の暗号化設定を引き継ぎ、Aurora インスタンスの暗号化はクラスターで管理します。そのため、インスタンスのテンプレートに StorageEncrypted がないだけで非暗号化とは判断できません。

想定される影響

非暗号化データやバックアップを不正に取得されると、機密情報が漏えいするリスクが高まります。保存時の暗号化が有効でもデータベースの権限と TLS は必要であり、KMS キーが利用できなくなるとサービスが停止する可能性があります。

対処方法

  • 通常の新規インスタンスには StorageEncrypted: true と必要なキー・権限を設定してください。実際のインスタンスとバックアップの暗号化も確認します。
  • 既存の非暗号化インスタンスは、スナップショットを取得し、暗号化したコピーから新しいインスタンスを復元するなど、サポートされている手順で移行してください。バックアップ、データの整合性、接続先の切り替えを検証します。
  • 非暗号化のソースから暗号化したリードレプリカは作成できません。リージョンをまたぐ暗号化レプリカには、移行先リージョンの KMS キーも必要です。

例

リージョンをまたぐリードレプリカの抜粋です。参照するパラメーターは完全なテンプレートで定義し、実際のソース ARN とリージョン、対応するインスタンスクラス、移行先リージョンのキーを指定してください。ネットワークは別途設定が必要です。二つの例はソースの状態を比較するもので、既存データベースを暗号化する手順ではありません。

非暗号化ソースのレプリカ

yaml
Resources:
  MyDBSmall:
    Type: AWS::RDS::DBInstance
    Properties:
      DBInstanceClass: !Ref DBInstanceType
      SourceDBInstanceIdentifier: !Ref UnencryptedSourceDBArn
      SourceRegion: !Ref SourceRegion

非暗号化ソースの設定を引き継ぎます。レプリカに暗号化の設定を追加しても、元の非暗号化データを変換することはできません。

暗号化済みソースのレプリカ

yaml
Resources:
  MyDBSmall:
    Type: AWS::RDS::DBInstance
    Properties:
      DBInstanceClass: !Ref DBInstanceType
      SourceDBInstanceIdentifier: !Ref EncryptedSourceDBArn
      SourceRegion: !Ref SourceRegion
      KmsKeyId: !Ref MyKey

暗号化済みのソースと移行先リージョンの KMS キーを使用します。リードレプリカの StorageEncrypted はソースから引き継ぐため、個別には指定しません。ソースを変更する更新は、切り替えを計画してから行ってください。

参考資料