説明
Redshift の保存時暗号化は、データベースと関連するスナップショットを保護します。現在の CreateCluster API は新しいプロビジョニングされたクラスターを既定で暗号化し、明示的な Encrypted: false を拒否します。この既定値の変更で既存クラスターやスナップショットからの復元も暗号化されるとは限りません。実際のリソースを確認してください。
既存の未暗号化クラスターには、対応する手順で KMS 暗号化を適用できます。AWS が新しい暗号化クラスターへデータを移行する処理を管理するため、キーの権限とサービスへの影響を考慮して変更を計画してください。
想定される影響
- 既存の未暗号化クラスターとスナップショットは、組織の保存時暗号化の要件を満たせない場合があります。
- 対応していないオプションやツールを使うと、デプロイが失敗したり、実際の暗号化状態が変わらなかったりするおそれがあります。
対処方法
- 実際のクラスターと関連スナップショットの暗号化、KMS キーと使用権限を確認してください。新規クラスターには現在の API の暗号化要件を適用してください。
- 既存クラスターは、暗号化変更に対応するツールや
ModifyClusterAPI で移行してください。community.aws1.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
クラスターの新規作成時に暗号化を明示的に要求します。既存クラスターを暗号化するには、前述の対応する変更手順が必要です。