説明
Redshift は分析用データを長期間保存することが多いため、データウェアハウスとスナップショットの暗号化が重要です。実際に暗号化されていない既存クラスターは、保存データの保護要件を満たせない場合があります。
現在の Redshift クラスター作成 API は既定で暗号化を使用し、Encrypted: false を許可しません。そのため、暗号化設定の省略を、新しいクラスターでの平文保存と解釈しないでください。以前に作成したクラスターとスナップショットは、実際の状態を確認してください。
想定される影響
未暗号化のストレージやスナップショットを権限のない相手が取得すると、運用データや機密情報が漏えいするおそれがあります。KMS キーが利用できなくなると、データへのアクセスや復旧にも支障が生じる場合があります。
対処方法
encrypted = trueを明示し、実際のクラスターとスナップショットの状態、組織で必要な KMS キーを確認してください。- 既存の未暗号化クラスターでは、サポートされる暗号化への移行手順と Terraform の計画を確認してください。移行中の書き込み制限や中断に備えて、アプリケーションと処理ジョブを準備してください。
- 必要なキーの権限とバックアップを保持し、移行後にデータの整合性、接続、復旧を検証してください。
例
対象リージョンと単一ノード構成でサポートされるノードタイプを指定してください。パスワードを安全な方法で渡し、Terraform の状態へのアクセスを制限してください。ネットワークとバックアップ方針は別途設定する必要があります。
暗号化の無効化を要求
hcl
resource "aws_redshift_cluster" "analytics" {
cluster_identifier = "tf-redshift-cluster"
database_name = "mydb"
master_username = "foo"
master_password = var.redshift_password
node_type = var.redshift_node_type
cluster_type = "single-node"
encrypted = false
}
未暗号化クラスターを要求する設定ですが、現在の作成 API では拒否されます。新しい未暗号化クラスターを作成するための有効な手順ではありません。
暗号化の有効化を要求
hcl
resource "aws_redshift_cluster" "analytics" {
cluster_identifier = "tf-redshift-cluster"
database_name = "mydb"
master_username = "foo"
master_password = var.redshift_password
node_type = var.redshift_node_type
cluster_type = "single-node"
encrypted = true
}
保存時暗号化を明示しています。既存クラスターに適用する前に、サポートされる移行方法と運用への影響を確認してください。