Redshift の暗号化設定の確認が必要

実際の Redshift クラスターとスナップショットの暗号化を確認し、対応するツールで必要な KMS 暗号化を適用してください。

説明

Redshift の保存時暗号化は、データベースと関連するスナップショットを保護します。現在の CreateCluster API は新しいプロビジョニングされたクラスターを既定で暗号化し、明示的な Encrypted: false を拒否します。この既定値の変更で既存クラスターやスナップショットからの復元も暗号化されるとは限りません。実際のリソースを確認してください。

既存の未暗号化クラスターには、対応する手順で KMS 暗号化を適用できます。AWS が新しい暗号化クラスターへデータを移行する処理を管理するため、キーの権限とサービスへの影響を考慮して変更を計画してください。

想定される影響

  • 既存の未暗号化クラスターとスナップショットは、組織の保存時暗号化の要件を満たせない場合があります。
  • 対応していないオプションやツールを使うと、デプロイが失敗したり、実際の暗号化状態が変わらなかったりするおそれがあります。

対処方法

  • 実際のクラスターと関連スナップショットの暗号化、KMS キーと使用権限を確認してください。新規クラスターには現在の API の暗号化要件を適用してください。
  • 既存クラスターは、暗号化変更に対応するツールや ModifyCluster API で移行してください。community.aws 1.5.0 の変更処理は encrypted を送らないため、オプションを追加するだけでは暗号化されません。
  • スナップショットの扱いとサービスへの影響を確認してから変更し、完了後の暗号化とデータアクセスを検証してください。ネットワーク・DB 権限と TLS も別途維持してください。

例

パスワードは安全に管理する変数で提供してください。redshift_node_type には、インストール済みの community.aws モジュールで対応し、対象リージョンの単一ノード構成で利用できるタイプを指定し、ネットワークと認証を実環境に合わせて設定してください。

現在の API が拒否する暗号化の無効化

yaml
- name: Basic cluster provisioning example
  community.aws.redshift:
    identifier: tf-redshift-cluster
    command: create
    db_name: mydb
    username: foo
    password: "{{ redshift_admin_password }}"
    node_type: "{{ redshift_node_type }}"
    cluster_type: single-node
    encrypted: false

明示的な encrypted: false は現在の作成 API で拒否されます。この例は未暗号化クラスターを作成するためのデプロイ手順ではありません。

新規クラスターの暗号化を要求する

yaml
- name: Basic cluster provisioning example
  community.aws.redshift:
    identifier: tf-redshift-cluster
    command: create
    db_name: mydb
    username: foo
    password: "{{ redshift_admin_password }}"
    node_type: "{{ redshift_node_type }}"
    cluster_type: single-node
    encrypted: true

クラスターの新規作成時に暗号化を明示的に要求します。既存クラスターを暗号化するには、前述の対応する変更手順が必要です。

参考資料