説明
Redshift は、大量の業務データ、ログ、集計情報を保存するデータウェアハウスです。保存時の暗号化は、これらのデータとスナップショットを保護します。
現在の Redshift API は新しいクラスターを既定で暗号化し、明示的な Encrypted: false の要求を拒否します。テンプレートの設定が省略されていても非暗号化とは判断せず、以前に作成したクラスターも含めて、実際の暗号化状態とキーを確認してください。
想定される影響
実際に暗号化されていないストレージやスナップショットを不正に取得されると、分析データや機密情報が漏えいするリスクが高まります。暗号化が有効でも、データベースの権限とネットワークの制限は別途必要です。
対処方法
- 新規クラスターには
Encrypted: trueを明示し、組織のキー管理要件に合う KMS キーを選択してください。 - 既存の非暗号化クラスターでは、サポートされている暗号化への移行手順を使用してください。バックアップを確保し、移行中の読み取り専用状態や運用への影響を計画に含めてください。
- 反映後に実際の暗号化と正常なデータアクセスを確認し、必要なキーの権限を維持してください。
例
作成設定の抜粋です。参照する値は完全なテンプレートで定義し、安全に管理したパスワードと、リージョンで単一ノード構成に対応するノードタイプを指定してください。例に残っている公開アクセス設定とネットワークも別途検討が必要です。
暗号化設定の省略
yaml
Resources:
RedshiftCluster:
Type: AWS::Redshift::Cluster
Properties:
DBName: !Sub ${DatabaseName}
MasterUserPassword: !Ref MasterUserPassword
MasterUsername: !Ref MasterUsername
PubliclyAccessible: true
ClusterType: single-node
NodeType: !Ref RedshiftNodeType
Port: 5439
現在の新規作成では既定で暗号化されるため、この省略だけで平文保存を意味するわけではありません。
暗号化要件の明示
yaml
Resources:
RedshiftCluster:
Type: AWS::Redshift::Cluster
Properties:
DBName: !Sub ${DatabaseName}
MasterUserPassword: !Ref MasterUserPassword
MasterUsername: !Ref MasterUsername
PubliclyAccessible: true
ClusterType: single-node
NodeType: !Ref RedshiftNodeType
Port: 5439
Encrypted: true
暗号化の要件を明示します。既存クラスターを変更する前に、実際の状態と対応する移行手順を確認してください。