説明
Redshift クラスターは承認されたネットワークに配置し、必要なクライアントだけが接続できるよう管理する必要があります。サブネットグループや VPC セキュリティグループを明記していないことだけでは、実際の VPC 配置や公開状態は判断できません。セキュリティグループを省略すると、VPC のデフォルトグループが使われる場合があります。
VPC に配置していても、公開アクセス設定とセキュリティグループが許可すれば外部から接続できるため、実際の設定を併せて確認する必要があります。
想定される影響
意図しない経路や広すぎる許可ルールにより、データベースの公開範囲が広がる可能性があります。サブネットとセキュリティグループの VPC が一致しないと、デプロイや接続が失敗する場合があります。
対処方法
承認されたサブネットでクラスターサブネットグループを構成し、同じ VPC のセキュリティグループを関連付けてください。PubliclyAccessible、ルーティング、受信許可範囲、データベース認証を確認し、必要な接続だけを許可してください。
例
ネットワーク選択だけを示す抜粋です。ノードタイプ、クラスタータイプ、認証情報など、作成に必要な設定は省略しています。サブネットとセキュリティグループの参照には、同じ VPC の実際のリソースを指定してください。
変更前
Resources:
RedshiftCluster:
Type: AWS::Redshift::Cluster
Properties:
ClusterIdentifier: tf-redshift-cluster
DBName: mydb
ネットワーク選択を明記していません。これだけで、実際のクラスターが VPC の外にある、または公開されているとは判断できません。
変更後
Resources:
RedshiftSubnetGroup:
Type: AWS::Redshift::ClusterSubnetGroup
Properties:
Description: Subnet group for Redshift
SubnetIds:
- !Ref Subnet1
- !Ref Subnet2
RedshiftCluster:
Type: AWS::Redshift::Cluster
Properties:
ClusterIdentifier: tf-redshift-cluster
DBName: mydb
ClusterSubnetGroupName: !Ref RedshiftSubnetGroup
VpcSecurityGroupIds:
- !Ref RedshiftSecurityGroup
サブネットグループと VPC セキュリティグループを指定します。グループの関連付けだけでは、ルールの縮小や公開アクセスの無効化は行われません。