説明
公開アクセスを有効にした Redshift クラスターは、ネットワーク条件が整うとインターネットから接続できます。実際の到達性はセキュリティグループやルーティングに依存し、データへのアクセスには DB 認証と権限が適用されます。公開設定と実際の接続許可対象を合わせて確認してください。
想定される影響
- 不要な外部接続やパスワードの推測が増えるおそれがあります。
- 脆弱なアカウントやサービスが侵害されると、分析データの漏えいや業務の中断につながる可能性があります。
対処方法
- 公開接続が不要なら publicly_accessible = false を明示してください。変更前に、アプリケーションと管理者のプライベート接続経路を準備してください。
- サブネット、ルーティング、セキュリティグループをまとめて確認し、必要なクライアントと DB ポートだけを許可してください。
- 変更の影響を検討し、実際のエンドポイントで必要な接続と不要なアクセスの拒否を確認してください。DB 認証、権限、通信の暗号化も維持してください。
例
クラスター作成設定の抜粋です。redshift_node_type には対象リージョンと single-node 構成をサポートするノードタイプを渡してください。パスワードを安全に供給して 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"
publicly_accessible = true
}
公開アクセスを有効にします。実際のインターネット接続は、ルーティングとセキュリティグループの許可にも依存します。
変更後
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"
publicly_accessible = false
}
公開アクセスを無効にします。この設定だけでサブネットが変わったり、クライアントのプライベート経路が作成されたりするわけではありません。