セキュリティグループのVPC選択を確認

意図したVPCにセキュリティグループを作成してください。

説明

AWS::EC2::SecurityGroupのVpcIdを省略すると、リージョンのデフォルトVPCが使われます。デフォルトVPCもなければ作成に失敗します。省略によってVPCに属さないグループが作られるわけではありません。

想定される影響

環境によってデフォルトVPCが異なる、または存在しない場合、意図しないネットワークに作成されたり、デプロイに失敗したりするおそれがあります。

対処方法

意図したVpcIdを明示し、利用するリソースとの互換性を確認してください。既存グループのVPC変更ではリソースが置き換えられるため、接続への影響も確認してください。

例

デフォルトVPCに依存する構成に、明示的なVPC参照を追加します。AdminCidrには承認された管理用アドレス範囲を、myVPCには実際のVPC参照を指定してください。

変更前

yaml
Resources:
  InstanceSecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupName: My Group Name
      # 22番ポートでSSH接続を許可
      GroupDescription: Enable SSH access via port 22
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: '22'
          ToPort: '22'
          CidrIp: !Ref AdminCidr

変更後

yaml
Resources:
  InstanceSecurityGroup:
    Type: 'AWS::EC2::SecurityGroup'
    Properties:
      GroupName: My Group Name
      # 22番ポートでSSH接続を許可
      GroupDescription: Enable SSH access via port 22
      VpcId:
        Ref: myVPC
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: '22'
          ToPort: '22'
          CidrIp: !Ref AdminCidr

参考資料