セキュリティグループの単一IP許可範囲を確認

接続に必要な最小限のアドレス範囲を維持してください。

説明

IPv4の/32とIPv6の/128は、単一アドレスを許可する有効なCIDRです。特定のホストだけに接続を許可する場合は適切な最小権限の設定であり、単一アドレスという理由だけで範囲を広げるべきではありません。

想定される影響

許可したアドレスが変わると接続が中断する場合がありますが、不要に範囲を広げると、より多くのホストが接続できるようになります。

対処方法

実際に必要な送信元アドレスだけを許可してください。頻繁に変わる場合は、適用可能なセキュリティグループ参照や管理された接続経路を検討し、必要なアドレス変更を規則に反映してください。

例

単一アドレスとネットワーク範囲からのHTTP接続を比較します。範囲全体からの接続が必要な場合だけ拡大してください。例示用アドレスを実際に承認されたアドレスに、myVPCを実際のVPC参照に置き換えてください。

変更前

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      # クライアントホストへのHTTP接続を許可
      GroupDescription: Allow http to client host
      VpcId:
        Ref: myVPC
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 192.0.2.10/32

  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: tcp
      FromPort: 80
      ToPort: 80
      GroupId: !GetAtt InstanceSecurityGroup.GroupId
      CidrIpv6: 2001:db8:1234::10/128

変更後

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      # クライアントホストへのHTTP接続を許可
      GroupDescription: Allow http to client host
      VpcId:
        Ref: myVPC
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 192.0.2.0/24

  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: tcp
      FromPort: 80
      ToPort: 80
      GroupId: !GetAtt InstanceSecurityGroup.GroupId
      CidrIpv6: 2001:0DB8:1234::/48

参考資料