Redshift の VPC とサブネットグループの確認

Redshift の実際の VPC とサブネットグループを確認し、セキュリティグループで必要なデータベース接続だけを許可してください。

説明

Redshift クラスターは承認されたネットワークに配置し、必要なクライアントだけが接続できるよう管理する必要があります。サブネットグループや VPC セキュリティグループを明記していないことだけでは、実際の VPC 配置や公開状態は判断できません。セキュリティグループを省略すると、VPC のデフォルトグループが使われる場合があります。

VPC に配置していても、公開アクセス設定とセキュリティグループが許可すれば外部から接続できるため、実際の設定を併せて確認する必要があります。

想定される影響

意図しない経路や広すぎる許可ルールにより、データベースの公開範囲が広がる可能性があります。サブネットとセキュリティグループの VPC が一致しないと、デプロイや接続が失敗する場合があります。

対処方法

承認されたサブネットでクラスターサブネットグループを構成し、同じ VPC のセキュリティグループを関連付けてください。PubliclyAccessible、ルーティング、受信許可範囲、データベース認証を確認し、必要な接続だけを許可してください。

例

ネットワーク選択だけを示す抜粋です。ノードタイプ、クラスタータイプ、認証情報など、作成に必要な設定は省略しています。サブネットとセキュリティグループの参照には、同じ VPC の実際のリソースを指定してください。

変更前

yaml
Resources:
  RedshiftCluster:
    Type: AWS::Redshift::Cluster
    Properties:
      ClusterIdentifier: tf-redshift-cluster
      DBName: mydb

ネットワーク選択を明記していません。これだけで、実際のクラスターが VPC の外にある、または公開されているとは判断できません。

変更後

yaml
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 セキュリティグループを指定します。グループの関連付けだけでは、ルールの縮小や公開アクセスの無効化は行われません。

参考資料