RDS ストレージ暗号化設定の確認が必要

RDS の保存時暗号化を明示的に設定し、既存の未暗号化インスタンスは対応するコピー・復元手順で移行してください。

説明

RDS の保存時暗号化は、DB ストレージと関連するバックアップ・スナップショットを保護します。通常の RDS インスタンスを新規作成する場合は storage_encrypted: true を明示し、必要な KMS キーと使用権限を設定してください。Aurora の暗号化はインスタンスではなくクラスターで管理します。

既存のリソースやスナップショットからの復元では、そのリソースと操作に応じた暗号化状態を確認する必要があります。プレイブックにキーの値があるだけで、既存 DB が暗号化されているとは判断できません。

想定される影響

  • 実際に未暗号化の DB と関連バックアップは保存時暗号化による保護を受けられず、組織の暗号化要件を満たせない場合があります。
  • 保存時暗号化を適用しても、DB 認証、アクセス権限、転送中の暗号化は別途必要です。

対処方法

  • 新規インスタンスには storage_encrypted: true と必要な KMS キー・使用権限を設定してください。Aurora ではクラスターの設定を確認してください。
  • 既存の未暗号化インスタンスは、フラグを変更するだけでは暗号化できません。対応するスナップショットの暗号化コピーと復元によって移行し、データの整合性、接続先の切り替え、停止時間を計画してください。
  • 適用後は実際のインスタンスの StorageEncrypted、KMS キー、バックアップとレプリカを検証してください。DB のアクセス制御と TLS も確認してください。

例

実際のユーザー名、安全に管理したパスワード、ストレージ容量、エンジンとリージョンに対応するインスタンスクラスを変数に指定してください。ネットワークとアクセス制御は別途設定する必要があります。

暗号化を要求しない新規インスタンス

yaml
---
- name: foo
  community.aws.rds_instance:
    id: test-encrypted-db
    state: present
    engine: mariadb
    storage_encrypted: false
    db_instance_class: "{{ db_instance_class }}"
    username: "{{ username }}"
    password: "{{ password }}"
    allocated_storage: "{{ allocated_storage }}"

新しい MariaDB インスタンスを作成するときに、ストレージ暗号化を要求しません。同じ識別子のインスタンスが既にある場合は、実際の暗号化状態を確認してください。

暗号化を要求する新規インスタンス

yaml
- name: foo
  community.aws.rds_instance:
    id: test-encrypted-db
    state: present
    engine: mariadb
    storage_encrypted: true
    db_instance_class: "{{ db_instance_class }}"
    username: "{{ username }}"
    password: "{{ password }}"
    allocated_storage: "{{ allocated_storage }}"

新規インスタンスに保存時暗号化を要求します。既存の未暗号化インスタンスの識別子でこの設定だけを適用しても、暗号化への移行にはなりません。

参考資料